1. 层次数据模型的数据结构 - 树
层次模型
满足下面两个条件的基本层次联系的集合为层次模型。
– 1. 有且只有一个结点没有双亲结点,这个结点称为根结点
– 2. 根以外的其它结点有且只有一个双亲结点
表示方法
– 记录类型 : 每个结点表示一个记录类型。
– 属性:用字段描述。每个记录类型可包含若干个字段。
– 联系:用结点之间的连线表示记录(类)型之间的一对多的联系。
– 每个记录类型可以定义一个排序字段,也称为码字段
特点
– 结点的双亲是唯一的
– 只能直接处理一对多的实体联系
– 任何记录值只有按其路径查看时,才能 显出它的全部意义
– 没有一个子女记录能够脱离双亲记录值而独立存在
操作约束
无相应的双亲结点值就不能插入子女结点值
如果删除双亲结点值,则相应的子女结点值也被同时删除
更新操作时,应更新所有相应记录,以保证数据的一致性
层次数据模型存储结构的特点
-数据与数据间的联系结合在一起存储
–数据间的联系用位置相邻表达或用指针表达
两种常用的实现方法
- 邻接法
按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。
- 链接法
用指针来反映数据之间的层次联系
子女-兄弟链接法
层次序列链接法
2.网状数据模型的数据结构
网状模型
满足下面两个条件的基本层次联系的集合为网状模型。
– 1. 允许一个以上的结点无双亲;
– 2. 一个结点可以有多于一个的双亲。
表示方法(与层次数据模型相同)
– 记录类型 : 每个结点表示一个记录类型。
– 属性:用字段描述。每个记录类型可包含若干个字段。
– 联系:用结点之间的连线表示记录(类)型之间的一对多的父子联系。
– 每个记录类型定义一个排序字段,也称为码字段
特点
– 只能直接处理一对多的实体联系
– 任何记录值只有按其路径查看时,才能 显出它的全部意义
完整性约束条件不严格
– 允许插入尚未确定双亲结点值的子女结点值
– 允许只删除双亲结点值
网状数据模型的存储结构
关键
– 实现记录之间的联系
常用方法:
用指针实现记录之间的联系
– 单向链接
– 双向链接
– 环状链接
– 向首链接
关系模型
关系模型的基本概念
关系( Relation ):一个关系对应通常说的一张表。
元组( Tuple ):表中的一行即为一个元组。
属性( Attribute ): 表中的一列即为一个属性,给每一个属性起一个名称即属性名 。
主码( Key ):表中的某个属性组,它可以唯一确定一个元组 。
域( Domain ):属性的取值范围。
分量:元组中的一个属性值。
关系模式 对关系的描述
关系名(属性 1 ,属性 2 ,…,属性 n )
学生(学号,姓名,年龄,性别,系,年级)
实体及实体间的联系的表示方法
– 实体型:直接用关系(表)表示。
– 属性:用属性名表示。
– 一对一联系:隐含在实体对应的关系中。
– 一对多联系:隐含在实体对应的关系中。
– 多对多联系:直接用关系表示。
关系必须是规范化的,满足一定的规范条件
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项 , 不允许表中还有表