【数据库】一、数据库基础知识整理(关系数据库、非关系型数据库、三级模式、二级映象、数据模型、层次模型 网状模型 关系模型、实体完整性 参照完整性 用户定义完整性、关系模式)
文章目录
数据库
Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。
Database:数据库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。
DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件系统,用于科学地组织、存储和管理数据、高效地获取和维护数据。
DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员(DBA)构成。
数据库系统DBS:由数据库DB、数据库管理系统DBMS、应用系统和数据库管理员构成。
数据库就是一个存储结构化数据的仓库。
数据库系统由数据库、数据库管理系统、应用系统和数据库管理员构成。
关系数据库
关系数据库是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。
几乎所有的数据库管理系统都配备了一个开放式数据库连接(ODBC)驱动程序,令各个数据库之间得以互相集成。
典型代表有:MySQL、Oracle、Microsoft SQL Server、Access、PostgreSQL、DB2、MariaDB
非关系型数据库 NoSQL
非关系型数据库也被称为 NoSQL 数据库,NoSQL 并不是某个具体数据库,它泛指所有非关系型数据库。
非关系型数据库种类有很多,我们列举其中较为流行的几种。
- 键值(Key-Value)存储数据库
键值数据库主要是使用一个哈希表,表中有一个特定的键和一个指针指向特定的数据。Key/value 模型的键值数据库的优势在于,通过键的 hash 码可以快速查询到 value,并且能够应对高并发。
市面上成熟的产品有,Memcached、Redis、MemcacheDB、Berkeley DB。前两个可能比较有名,做缓存的数据库。
- 列存储(Column-oriented)数据库
列存储数据库又被称为面向可扩展性的分布式数据库,它反转了传统的行存储数据库。
最典型的产品应用就是,Hbase,大数据存储用的非常多。
- 面向文档数据库
文档数据库是一种非关系数据库,旨在将半结构化数据存储为文档,其中文档包括 XML、YAML、JSON、BSON、office 文档等。
简而言之,就是将数据保存到以上类似格式的文档中,数据库中的每个记录都是以文档形式存在的,相互之间不再存在关联关系。
典型的应用就是,MongoDB、CouchDB。
三级模式、二级映象
数据库的三级系统结构:外模式、模式和内模式。
内模式:又称为存储模式,是对数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
模式:是对数据库中全体数据的逻辑结构和特征的描述。
外模式:又称为子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。通常是模式的子集。一个数据库可有多个外模式。
二级映像:外模式/模式映像、模式/内模式映像。
数据库三级模式通过二级映象在 DBMS 内部实现这三个抽象层次的联系和转换。
外模式面向应用程序, 通过外模式/模式映象与逻辑模式建立联系, 实现数据的逻辑独立性。 模式/内模式映象建立模式与内模式之间的一对一映射, 实现数据的物理独立性。
数据模型
数据模型:是用来抽象、表示和处理现实世界中的数据和信息的工具,是对现实世界的模拟,是数据库系统的核心和基础。
其组成元素有数据结构、数据操作和完整性约束。
常见的数据模型包括:关系、层次、网状、面向对象、对象关系映射等几种。
关系模型的完整性约束包括:实体完整性、参照完整性和用户定义完整性。
3种数据模型
层次模型
定义:层次数据模型是用树状<层次>结构来组织数据的数据模型。
其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录类型的各个字段对应实体的各个属性。各个记录类型及其字段都必须记录。
1.有且只有一个结点没有双亲结点,这个结点称为根节点;2.根以外的其它结点有且仅有一个双亲结点。

网状模型
定义:用有向图表示实体和实体之间的联系的数据结构模型称为网状数据模型。
其实,网状数据模型可以看做是放松层次数据模型的约束性的一种扩展。网状数据模型中所有的节点允许脱离父节点而存在,也就是说说在整个模型中允许存在两个或多个没有根节点的节点,同时也允许一个节点存在一个或者多个的父节点,成为一种网状的有向图。因此节点之间的对应关系不再是1:n,而是一种m:n的关系,从而克服了层次状数据模型的缺点。
1.允许一个以上的结点无双亲;2.一个结点可以有多余一个的双亲

关系模型
关系型数据模型对应的数据库自然就是关系型数据库了,这是目前应用最多的数据库。
**定义:**使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。
关系型数据库是目前最流行的数据库,同时也是被普遍使用的数据库,如MySQL就是一种流行的数据库。支持关系数据模型的数据库管理系统称为关系型数据库管理系统。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。

- 关系(Relation):一个关系对应通常所说的一张表。
- 元组(Tuple):表中的一行即为一个元组。
- 属性(Attrubute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
- 码(Key):表中的某个属性组,它可以唯一确定一个元组。
- 域(Domain):属性的取值范围。
- 分量:元组中的一个属性值。
- 关系模式:对关系的描述,如:学生(学号,姓名,年龄,性别,系,年级)
- 关系数据库: 依照关系模型建立的数据库称为关系数据库。 它是在某个应用领域的所有关系的集合。
- 主键: 能够唯一地标识一个元组的属性或属性组称为关系的键或候选键。 若一个关系有多个候选键则可选其一作为主键(Primary key)。
- 外键:如果一个关系的一个或一组属性引用(参照)了另一个关系的主键,则称这个或这组属性为外码或外键(Foreign key)。
关系最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。

3种约束完整性
关系数据模型定义了三种约束完整性:实体完整性、参照完整性以及用户定义完整性。
实体完整性
实体完整性是指实体的主属性不能取空值。实体完整性规则规定实体的所有主属性都不能为空。实体完整性针对基本关系而言的,一个基本关系对应着现实世界中的一个主题,例如上例中的学生表对应着学生这个实体。现实世界中的实体是可以区分的,他们具有某种唯一性标志,这种标志在关系模型中称之为主码,主码的属性也就是主属性不能为空。
参照完整性
在关系数据库中主要是值得外键参照的完整性。若A关系中的某个或者某些属性参照B或其他几个关系中的属性,那么在关系A中该属性要么为空,要么必须出现B或者其他的关系的对应属性中。如上表中的选课关系的stu_id和cour_id分别是参考学生和课程的外键,那么对于现实的系统而言,stu_id和cour_id必须分别出现在学生和课程关系中,这就是外键参考的完整性,同时删除的时候根据设置的不同有不同的处理方式。
用户定义完整性
用户定义完整性是针对某一个具体关系的约束条件。它反映的某一个具体应用所对应的数据必须满足一定的约束条件。例如,某些属性必须取唯一值,某些值的范围为0-100等。
例如:
学生(学号,姓名,课程号,性别,…)
课程(课程号,课程名,学分);
选修(学号,课程名,成绩)
如
这里学生的性别只能取“男”,“女”
学分只能取1-…分
成绩只能取1-100分
- 数据库及数据仓库模型设计的三个主要步骤
概念模型设计 , 逻辑模型设计 , 物理模型设计 是数据库及数据仓库模型设计的三个主要步骤。
概念模型:也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
逻辑模型:是按计算机系统的观点对数据建模,用于DBMS实现。
物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
实体和属性:客观存在并可相互区别的事物称为实体。实体所具有的某一特性称为属性。
实体型之间的联系分为一对一、一对多和多对多三种类型。
E-R图:即实体-关系图,用于描述现实世界的事物及其相互关系,是数据库概念模型设计的主要工具。
关系模式:从用户观点看,关系模式是由一组关系组成,每个关系的数据结构是一张规范化的二维表。
型/值:型是对某一类数据的结构和属性的说明;值是型的一个具体赋值,是型的实例。
数据库模式:是对数据库中全体数据的逻辑结构(数据项的名字、类型、取值范围等)和特征(数据之间的联系以及数据有关的安全性、完整性要求)的描述。
关系
现实中实体与实体间的各种联系均用关系来表示。
关系模式
关系模式(Relational Model)是一种在数据库中组织和表示数据的方式。它基于关系理论,使用表格(也称为关系)来存储和表示数据。在关系模型中,数据被组织为行(记录)和列(字段)的二维表格。
关系模式:(关系模式是型)(关系是值)
(关系模式是对关系的描述),例如,设有一个关系U有属性值A,B,C,则关系模式可简单描述为为U(A,B,C)
关系模型的核心概念包括:
- 表格(Relation):表格是关系模型中的基本组织单位,也称为关系。每个表格具有一个唯一的名称,并包含多个列和行。每列代表一个属性或字段,每行代表一个记录或实例。
- 列(Attribute):列是表格中的一个字段,用于存储特定类型的数据。每个列都有一个名称和数据类型,例如整数、字符串、日期等。
- 行(Tuple):行是表格中的一个记录,包含了一组相关的数据。每行中的值与对应列的数据类型相匹配。
- 主键(Primary Key):主键是表格中的一个列或一组列,用于唯一标识每个记录。主键的值在表格中必须是唯一的。
- 外键(Foreign Key):外键是表格中的一个列,用于建立与其他表格之间的关联关系。它引用了其他表格的主键,用于实现表格之间的关联和关系。
关系模型的使用步骤如下:
- 根据应用需求和数据特性,确定需要存储的数据和各个数据实体的属性。
- 设计表格结构,确定每个表格的名称、列和数据类型。确保每个表格有适当的主键和外键定义。
- 创建数据库,使用数据库管理系统(如MySQL、Oracle、SQL Server等)来创建表格结构。
- 插入数据,将实际数据插入到相应的表格中。
- 使用SQL(Structured Query Language)进行数据查询、更新和操作。通过SQL语句可以执行数据的增删改查等操作。
关系和关系模式的联系与区别
联系:关系模式是对关系的描述,关系是关系模式在某一时刻的状态或内容。关系模式和关系往往笼统称为关系。
区别:关系模式是静态的、稳定的,而关系时动态的、随时间不断变化的。
关系数据库
关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库
关系数据库的型和值:
- 型:关系数据模式,是对关系数据库的描述
- 值:关系模式在某一时刻对应的关系的集合
关系数据库语言分为关系代数、关系演算和结构化查询语言三大类。
关系运算
关系的 5 种基本操作是选择、投影、并、差、笛卡尔积。
关系模式是对关系的描述,五元组形式化表示为:R(U,D,DOM,F),其中:
R —— 关系名
U —— 组成该关系的属性名集合
D —— 属性组 U 中属性所来自的域
DOM —— 属性向域的映象集合
F —— 属性间的数据依赖关系集合
笛卡尔乘积,选择和投影运算如下:

更多推荐




所有评论(0)