1.2.5 层次模型
层次模型是用树形结构来表示各类实体以及实体之间的联系
1. 层次模型中的数据结构
在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:
- 有且仅有一个节点没有双亲节点,这个节点为根节点
- 根节点以外的其他节点有且仅有一个双亲节点
在层次模型中,每个节点表示一个记录类型,记录类型之间的联系用节点之间的连线表示,这种联系是父子之间的一对多的联系
每个记录可以包含多个字段
层次模型像一个倒立的树,节点的双亲是唯一的
只能直接处理一对多的实体联系
任何记录值只有按照路径查看(上到下 从根开始)
没有一个子女记录可以脱离双亲记录独立存在
2. 层次模型的数据操作与完整性约束
数据操作:
增删改查
完整性约束:
没有相应的双亲节点就不能插入它子女的节点值,如果删除了双亲节点,相应的子女节点也会被删除,更新操作时应该更新所有相应的记录保证数据的一致性
3. 层次模型的优缺点
优点:
- 数据结构简单清晰
- 查询效率高
- 提供了良好的完整性支持
缺点:
- 不适合表示多对多的联系
- 插入删除麻烦
- 查询子节点必须通过双亲节点
1.2.6网状模型
网状数据库采用网状模型作为数据的组织方式
1. 网状模型的数据结构
在数据库中,把满足下面两个条件的基本层次联系集合称为网状模型:
- 允许一个以上的节点无双亲
- 一个节点可以有多于一个的双亲
与层次模型一样,网状模型中每个节点表示一个记录类型(实体), 每个记录类型可以包含多个字段(实体的属性),节点间的连线表示记录类型(实体)之间一对多的父子联系
允许多个节点没有双亲
允许一个节点有多个双亲
允许两个节点之间有多种联系
要为每个联系命名并指出与该联系有关的双亲记录和子女记录
多对多联系在网状模型中的表示:
网状模型间接表示多对多联系的方法:将多对多联系分解成多个一对多的联系
网状模型允许插入未确定双亲节点值的子女节点,允许只删除双亲节点的值
2. 网状模型的完整性约束
支持记录码的概念
保证一个联系中双亲节点和子女节点之间是一对多的联系
支持双亲记录和子女记录之间的某些约束条件
1.2.7 关系模型
关系型数据库系统采用关系模型作为数据的组织形式
1. 关系模型的数据结构
在关系模型中,每个关系的数据结构都是一张二维表
关系模型中的概念:
- 关系:一个关系对应一张表
- 元组:表中的一行
- 属性:表中的一列
- 码(key):可以唯一确定一个元组
例如,学生的学号 - 域:一组相同数据类型的值的集合,是属性的取值范围
例如,一个域中存放了所有学生的姓名,则学生的姓名这个属性的取值都来自这个域
不同的属性取值可以来自同一个域
例如,一个域中存放了老师和学生的姓名,则学生的姓名这个属性取值可以来自这个域,每个学生的老师姓名也可以来自这个域 - 分量:元组中的一个属性值
- 关系模式:对关系的描述
一般表示为:关系名( 属性1,属性2,属性3,、、、 )
例如,学生( 学号,姓名,年龄,、、、、 )
关系模型要求关系必须规范化,关系的每一个分量必须是一个不可分割的数据项,即表中不能含有表
2. 关系模型数据操作和完整性约束
数据操作:增删改查
完整性约束:实体完整性、参照完整性、用户定义的完整性
实体完整性、参照完整性为两个不变性
关系模型中的数据操作是集合操作,操作对象和操作结果都是关系
1.3 数据库系统的结构
1.3.1 数据库系统模式的概念
在数据库模型中有“型”和“值”的概念。
- 型:指对某一类数据的结构和属性的说明
- 值:型的一个具体赋值
例如,学生(学号,姓名,、、、)为一个型,(20200000,张三,、、、)为一个值,后者是前者的一个具体赋值
模式:数据库中全体数据的逻辑结构和特征的描述,仅仅涉及型的描述,不涉及具体的值。
模式的一个具体的值为模式的一个实例,同一个模式可以有多个实例
模式是相对稳定的
实例是相对变动的,实例随着数据库中的数据更新而变动
1.3.2 数据库系统的三级模式结构
数据库系统的三级模式结构:指数据库系统是由 外模式、模式、内模式 三级构成
1. 模式
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式是数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境,与具体的应用程序、所使用的应用开发工具即高级程序设计语言无关
模式是数据库系统模式结构的中心
一个数据库一个模式
定义模式时要定义数据的逻辑结构,和定义数据之间的联系,定义与数据有关的安全性、完整性要求
数据库管理系统提供数据库定义语言(DDL)来定义模式
2. 外模式
外模式也称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式通常为模式的子集。
一个数据库可以有多个外模式
同一个外模式可以为某一用户的多个应用系统所用,但一个应用程序只能使用一个外模式
外模式是保证数据库安全性的一个有力措施
3. 内模式
内模式也称存储模式,一个数据库只有一个内模式,是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
1.3.3 数据库的二级映像功能与数据独立
数据库系统的三级模式是数据的三个抽象级别
实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像、模式/内模式映像
这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性
1. 外模式/模式映像
外模式/模式映像保证了数据的逻辑独立性
对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。映像定义通常包含在各自外模式的描述中。
当模式改变时,由数据库的管理员对各个外模式/模式映像作出相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不用改变,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
2. 模式/内模式映像
模式/内模式映像保证了数据的物理独立性
数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。
该映像通常包含在模式描述中。
当数据的存储结构改变时,由数据库管理员对模式/内模式映像作出相应的改变,可以使得模式保存不变,从而应用程序不用改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
1.4 数据库系统的组成
数据库系统一般由数据库、数据库管理系统(及其应用开发工具)、应用程序、数据库管理员构成。