数据库原理
本笔记参考《数据库系统概论(第5版)》 (王珊 萨师煊)
第一章 绪论
1.1 基本概念:
-
数据:描述事物的符号记录叫做数据,数据的含义称为数据的语义,数据与其语义是不可分割的
-
数据库:数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有 较小的冗余度 、 较高的数据独立性 和 易扩展性 ,并可为各种用户共享。
-
数据库管理系统:高效的获取和维护数据,是计算机的基础软件,也是一个大型复杂的软件系统。
数据管理系统的功能包括以下几个方面:
- 数据定义功能:数据库管理系统提供数据定义语言(DDL),用户通过它可以方便的对数据库中的数据对象的组成与结构进行定义
- 数据组织、存储和管理
- 数据操纵功能:数据操纵语言(DML),对数据进行插入、删除、查询和修改等
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
- 其他功能
- 数据库系统:数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。

1.2 数据管理系统的产生和发展
人工管理阶段 ⇒ \Rightarrow ⇒ 文件系统阶段 ⇒ \Rightarrow ⇒ 数据库系统阶段
三个阶段的比较:

1.3 数据库系统的特点
- 数据结构化 :所谓“整体”结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体也是结构化的,数据之间是有联系的。

-
数据的共享性高、冗余度低且易扩充 :数据共享可以大大减少数据冗余,节约存储空间,还可以避免数据之间的不相容性与不一致性。数据面向系统,是有结构的数据,不仅尅呗多个应用共享使用,还很容易增加新的应用,这使得数据库系统弹性大、易扩充。
-
数据独立性高 :独立性包括物理独立性和逻辑独立性
物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的 逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说数据的逻辑结构改变时用户程序也可以改变 -
数据由数据库管理系统统一管理和控制 :
数据库管理系统还必须提供一下几方面的数据控制功能: (1)数据的安全性保护 (2)数据的完整性检查 (3)并发控制 (4)数据库恢复
1.4 数据模型
数据模型是对现实数据特征的抽象,也就是说数据模型是用来描述数据、组织数据和对数据进行操作的,数据模型是数据库系统的核心和基础。
数据模型分为两类:
- 概念模型:也称信息模型,它是按照用户的观点来对数据和信息建模,主要用于数据库设计。
- 逻辑模型和物理模型:逻辑模型是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。物理模型描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法。
逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型等。
人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。

1.5 概念模型
信息世界中的基本概念:
- 实体(entity):客观存在并可相互区别的事物称为实体
- 属性(attribute):实体所具有的某一特性称为属性
- 码(key):唯一识别实体的属性集称为码
- 实体型(entity type):用实体名及属性名集合来抽象刻画同类实体,称为实体型
- 实体集(entity set):同一类型的实体的集合称为实体集
- 联系(relationship):实体之间的联系通常指不同实体集之间的联系,联系有一对一、一对多和多对多等多种类型
概念模型的一种表示方法:实体-联系方法(E-R模型)
1.6 数据模型的组成要素
数据模型通常由 数据结构、数据操作和数据包的完整性约束条件 三部分组成
-
数据结构
数据结构描述数据库的组成对象以及对象之间的联系。也就是说,数据结构描述的内容有两类:一类是与对象类型、内容、性质有关的,另一类是与数据之间联系有关的对象。
-
数据操作
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则
数据库主要有查询和更新两大类操作,数据模型必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言
-
数据的完整性约束条件
数据的完整性约束条件是一组完整性规则,完整性规则是给定的数据模型中数据及其联系所具有的的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
1.7 常用的数据模型
- 层次模型
- 网状模型
- 关系模型
- 面向对象数据模型
- 对象关系数据模型
- 半结构化数据模型
下面具体介绍三种模型:
-
层次模型
在数据库中定义满足下面两个基本层次联系的集合为层次模型:
(1)有且只有一个节点没有双亲结点,叫做根节点
(2)根以外的节点有且只有一个双亲节点
在层次模型中,每个节点表示一个记录类型,记录类型之间的联系用结点之间的连线表示,这种联系是父子之间的一对多的联系
每个记录类型可能包含若干个字段,这里记录类型代表实体,字段岱庙实体的属性
各个记录类型及其字段必须命名
各个记录类型,同一记录类型中的各个字段不能同名
每个记录类型可以定义一个排序字段,也称为码字段,如果定义该排序字段的值是唯一的,则它能唯一的标识一个记录值

可以看出层次模型像一颗倒立的树,节点的双亲是唯一的
教员学生层次模型:


层次模型的数据操纵主要有查询、插入、删除和更新。进行插入时,如果没有相应的双亲节点就不能插入它的子女结点值;进行删除时,删除双亲节点的值,则相应的子女结点的值也会被同时删除
层次模型的优点:
- 层次模型的数据结构比较简单清洗
- 层次数据库查询效率高
- 层次数据模型提供了良好的完整性支持
层次模型的缺点:
- 现实生活中很多不适用
- 如果具有多个双亲结点就不能使用
- 查询子女结点必须通过双亲
- 由于结构严密,层次命令趋于程序化
-
网状模型
在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:
(1) 允许一个以上的结点无双亲
(2)一个结点可以有多于一个的双亲
与层次模型相比,网状模型更普遍,子女与双亲的联系可以不唯一

例子:学生选课

网状模型的数据操作与完整性约束(DGBT):
- 支持纪录妈的概念,码即唯一标识记录的数据项的集合。例如学号是唯一的
- 保证一个联系中双亲记录和子女记录之间是一对多的关系
- 可以支持双亲记录和子女记录之间的某些约束条件
网状模型的优点:
- 能更直接的描述真实世界
- 具有良好的性能,存取效率高
网状模型的缺点:
- 结构比较复杂
- 网状模型的DDL、MDL复杂,并且要嵌入到某一种高级语言中,掌握难度大
- 用户必须了解系统结构的细节来通过适当的存取路径来访问数据
-
关系模型
关系模型的严格定义在后面详写,这里只简单介绍

- 关系:一张如上的表格
- 元组:表中的一行为一个元组
- 属性:表中的一列为一个属性
- 码:可以为已确定一个元组的属性组,例如通过学号可以确定一个学生
- 域:域是一组具有相同数据类型的值的集合,属性的取值来自某个域。例如年龄的域是(15~45),性别的域是{男、女}
- 分量:元组中的一个属性值
- 关系模式:关系名(属性1、属性2、……、属性n),例如 学生(学号、姓名、……)
关系和表格对应的术语对比:

关系模型要求关系必须是规范化的、关系的每一个分量必须是一个不可分的数据项。不允许表中还有表。下图的表就不属于关系模型

关系模型的优点:
- 关系模型建立在严格的数学概念基础上
- 关系模型概念单一
- 关系模型的存取路径对用户透明
1.8 数据库系统模式的概念
在数据模型中有“型”(type)和“值”(value)的概念。例如,“姓名”是型,“李华”是值
模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。
模式是相对未定的,而实例是相对变动的
1.9 数据库系统的三级模式结构
数据库系统的三级模式是指数据库是由 外模式、模式和内模式 三级构成

- 模式
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
数据库管理系统提供模式数据定义语言(模式DDL)来严格地定义模式
就像一个学校的官网
- 外模式
外模式也称子模式或用户模式,他是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
数据库管理系统提供模式数据定义语言(外模式DDL)来严格地定义模式
就像学生选课窗口、教务处窗口、教师窗口等
- 内模式
内模式也称存储模式,一个数据库只有一个内模式,他是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式
例如,排序是升序还是降序,用的B+树还是hash索引等
1.10 数据库的二级影像功能与数据独立性
为了能够在系统内部实现这三个抽象层次的联系和转化,数据库管理系统在这三级模式之间提供了两层映像: 外模式/模式映像 和 模式/内模式映像
-
外模式/模式映像
当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必改变,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
-
模式/内模式映像
当数据库的存储结构改变时,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
本文介绍了数据库原理,涵盖了数据的概念、数据库管理系统功能、发展过程、特点(如数据结构化、共享性、数据独立性)、数据模型(如概念模型、逻辑模型、物理模型和常用模型),以及数据库系统的三级模式结构和数据独立性的实现。
474

被折叠的 条评论
为什么被折叠?



