数据库复习-3.常用的概念模型
目前,在数据库领域中常用的数据模型有四种,它们是:
- 非关系模型
- 层次模型(Hierarchical Model)
- 网状模型(Network Model)
- 关系模型(Relational Model)
- 面向对象模型(Object Oriented Model)
- 对象关系模型(Object Relational Model)
在关系模型中,
- 实体表示为记录
- 属性表示为数据项(或字段)
- 联系表示为记录之间的两辆联系
非关系模型中数据结构的单位是基本层次联系。
基本层次联系:指两个记录以及它们之间的一对多(包括一对一)的联系。
层次模型
层次模型的数据结构
满足以下两个条件的基本层次联系的集合为层次模型。
1.有且只有一个结点没有双亲结点,这个结点称为根节点;
2.根节点以外的其他结点有且只有一个双亲结点。
在层次结构中常用术语:根节点、双亲节点、兄弟节点,叶节点
基本特点:
- 结点的双亲是唯一的
- 只能直接处理一对多的实体联系
- 每个记录类型定义一个排序字段,也称为码字段
- 任何记录值只有按其路径查看时,才能显出它的全部意义
- 没有一个子女记录值能够脱离双亲记录值而独立存在
表示方法:
实体型:用记录类型描述。每个结点表示一个记录类型。
属性:用字段描述。每个记录类型可包含若干个字段。
联系:用结点之间的连线表示记录(类)型之间的一对多的联系。
层次结构的数据操纵
- 查询
- 插入
- 删除
- 更新
数据进行插入、删除、修改操作时要满足层次模型的完整性约束条件。
- 插入 若没有相应的双亲结点值就不能插入子女结点值
- 删除 若删除双亲结点值,则相应的子女值也被同时删除
- 修改 应修改所有相应记录,保证数据的一致性
层次模型的存储结构
链接法
用指引来反映数据之间的层次联系
1. 子女–兄弟链接法
每一记录设两类指针,分别指向最右边的子女(每一记录对应一个)和最近的兄弟。
2. 层次序列链接法
按树的前序穿越顺序链接各记录指。
层次模型的优缺点
- 优点
- 层次模型的数据结构比较简单清晰
- 查询效率高,性能优于关系模型,不低于网状模型
- 层次数据模型提供了良好的完整性支持
-缺点 - 多对多联系表示不自然
- 对插入和删除操作的限制多,应用程序的编写比较复杂
- 查询子女结点必须通过双亲结点
- 由于结构严密,层次命令趋于程序化
网状模型
网状数据库系统采用网状模型作为数据的组织方式。
典型代表是DBTG系统:
- 亦称CODASYL系统
- 70年代由DBTG提出的一个系统方案
- 奠定了数据库系统的基本概念、方法和技术
实际系统:
- Cullinet Software Inc.公司的 IDMS
- Univac公司的 DMS1100
- Honeywell公司的IDS/2
- HP公司的IMAGE
在数据库中,满足下面两个条件的基本层次联系的集合为网状模型。
1. 允许一个以上的结点无双亲;
2. 一个结点可以有多于一个的双亲。
网状模型的数据结构
分析:允许两个结点之间有多种联系(复合联系);层次模型实际上是网状模型的一个特例;为每个联系命名并指出与该联系有关的双亲记录和子女记录。
表示方法(与层次数据模型相同)
1. 实体型:用记录类型描述。每一结点表示一个记录类型。
2. 属性:用字段描述。每个记录类型可包含若干个字段。
3. 联系:用结点之间的连线表示记录(类)型之间的一对多的父子联系。
特点:
1. 只能直接处理一对多的实体联系。
2. 每个记录类型定义一个排序字段,也称为码字段。
3. 任何记录值只有按其路径查看时,才能显出它的全部意义。
网状模型与层次模型的区别:
- 网状模型允许多个结点没有双亲结点
- 网状模型允许结点有多个双亲结点
- 网状模型允许两个结点之间有多种联系(复合联系)
- 网状模型可以更直接地去描述现实世界
- 层次模型实际上是网状模型的一个特例
网状模型的数据操纵
- 查询
- 插入
- 删除
- 更新
网状模型的完整性约束
网状数据库系统(如DBTG)对数据操作加了一些限制,提供了一定的完整性约束。
码:唯一标识记录的数据项的集合
- 一个联系中双亲记录与子女记录之间是一对多联系
- 支持双亲记录和子女记录之间某些约束条件
网状模型的存储结构
关键:实现记录之间的联系
常用方法:
- 单向链接
- 双向链接
- 环状链接
- 向首链接
网状模型的优缺点
优点
- 能够更为直接地描述现实世界,如一个结点可以有多个双亲
- 具有良好的性能,存取效率较高
缺点
- 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
- DDL、DML语言复杂,用户不容易使用
关系模型
关系数据库系统采用关系模型作为数据的组织方式。
1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型。
计算机厂商新推出的数据库管理系统几乎都支持关系模型。
关系模型的数据结构
在用户观点下,关系模型中数据的逻辑结构是一张二维表。
关系模型的基本概念
- 关系(Relation):一个关系对应常说的一张二维表。
- 元祖(Tuple):二维表中的一行即为一个元祖。
- 属性(Attribute):二维表中的一列即为一个属性,给定每一个属性起一个名称,即属性名。
- 主码(Key):表中的某个属性组,它可以唯一确定一个元祖。
- 域(Domain):属性的取值范围。
- 关系模型:
- 对关系的描述。
- 关系名(属性1,属性2,…,属性3)
关系数据模型的数据结构
实体及实体间的 联系的表示方法
- 实体型:具有相同属性的实体必然具有共同的特征和性质。用实体名及描述它的各属性名,可以刻画出全部同质实体的共同特征和性质,称为实体型。例如,学生(学号,姓名,性别,出生年月,所在院系,入学时间)就是一个实体型。
- 属性:用属性名表示。
- 一对一联系:隐含在实体对应的关系中。
- 一对多联系:隐含在实体对应的关系中。
- 多对多关系:直接用关系表示。
关系必须是规范化的,满足一定的规范条件。
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。
关系模型的数据操纵
通常使用的操作:
- 查询
- 插入
- 删除
- 更新
数据操作是集合操作,操作对象和操作结果都是关系,即如干元祖的集合。
存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说“如何干”。
关系模型的完整性约束
- 实体完整性
实体完整性要求每一个二维表中的主键字段都不能为空或者重复的值。实体完整性指表中行的完整性。要求表中的所有行都有唯一的标识符,称为主关键字(主键)。主关键字是否可以修改,或整个列是否可以被删除,取决于主关键字与其他二维表之间要求的完整性。 - 参照完整性
- 是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散
- 若属性或属性组F是基本关系R的外键,它与基本关系S的主键Ks相对应(基本关系R和S不一定是不同的关系),则对于R中的每个元组在F上的值必须为: (1)空值,F的每个属性值均为空值。(2)S中某个元组中的主键值(主码值)。
- 用户定义完整性
任何关系数据库系统都应该支持实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的唯一约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
实体及实体间的联系都用表来表示。
表以文件形式存储。
- 有的DBMS一个表对应一个操作系统文件
- 有DBMS自己设计文件结构
关系模型的优缺点
优点
- 建立在严格的数学概念的基础上
- 概念单一。数据结构简单、清晰,用户易懂易用
- 实体和各类联系都用关系来表示。
- 对数据的检索结果也是关系。
- 关系模型的存取路径对用户透明
- 具有更高的数据独立性,更好的安全保密性
- 简化了程序员的工作和数据库开发建立的工作
缺点
- 存取路径对用户透明导致查询效率往往不如非
关系数据模型 - 为提高性能,必须对用户的查询请求进行优化。增加了开发数据库管理系统的难度。