首页 理论教育层次模型数据结构-数据库技术与应用教程

层次模型数据结构-数据库技术与应用教程

【摘要】:层次模型中的每个记录可以定义一个排序字段,排序字段也称为码字段,其主要作用是确定记录的顺序。在该层次数据结构中,院系与教研室、教研室与教师、院系与学生的联系均是一对多的联系。例如对于图3-13中的学生记录值,如果不指出它的双亲节点,就不知道它是哪个系的学生。

1.层次模型的定义

在数据结构中,定义满足下面两个条件的基本层次联系的集合为层次模型。

(1)有且仅有一个节点没有双亲节点,这个节点称为根节点。

(2)除根节点之外的其他节点有且只有一个双亲节点。

2.层次模型的数据表示方法

层次模型中的数据用下列方法表示。

在层次模型中:实体集使用记录表示;记录型包含若干个字段,字段用于描述实体的属性;记录值表示实体;记录之间的联系使用基本层次联系表示。层次模型中的每个记录可以定义一个排序字段,排序字段也称为码字段,其主要作用是确定记录的顺序。如果排序字段的值是唯一的,则它能唯一地标识一个记录值。

在层次模型中,使用节点表示记录。记录之间的联系用节点之间的连线表示,这种联系是父子之间的一对多的实体联系。层次模型中的同一双亲的子女节点称为兄弟节点(Twin或Sibling),没有子女节点的节点称为叶节点。图3-11给出了一个层次模型的例子。图3-11中,R1为根节点,R2和R3都是R1的子女节点,R2和R3为兄弟节点;R4和R5是R3的子女节点,R4和R5也为兄弟节点;R2、R4和R5为叶节点。

图3—11 层次模型的一个示例

3.层次模型的特点(www.chuimin.cn)

层次模型像一棵倒立的树,只有一个根节点,有若干个叶节点,节点的双亲是唯一的。图3-12是一个教学院系的数据结构,该层次数据结构中有4个记录。

图3—12 教学院系的数据模型

院系记录是根节点,它有院系编号、院系名称和办公地点3个数据项,其两个子女节点是教研室和学生记录;教研室记录是院系的子女节点,它还是教师的双亲节点,教研室记录由教研室编号、教研室名两个数据项组成;学生记录由学号、姓名、年龄3个数据项组成;教师记录由职工号、姓名和专业方向3个数据项组成。学生与教师是叶节点,它们没有子女节点。在该层次数据结构中,院系与教研室、教研室与教师、院系与学生的联系均是一对多的联系。图3-13是教学院系数据库的一个实例。

图3—13 教学院系数据库的一个实例

图中表示:根记录值为“D10,计算机系,9号楼”,它与教研室的“C01,硬件教研室”和“C02,软件教研室”有联系,同时,也与学生的“00001,王平,20”和“00002,李丽,20”有联系。这4个位于子女节点的记录值是它对应的上层节点记录值的属性记录值,而它们对应的上层记录值是首记录值。图3-13中还表示,硬件教研室有属性记录值“92001,王海,电器”和“92002,张铮,自动化”,软件教研室有“92003,许明,数据库”和“92004,陈真,人工智能”。层次结构数据的一个实例由一个根记录值和它的全部属性记录值组成,全部属性记录值包括属性记录、属性记录的属性记录、……、直到位于叶节点的属记录为止。

层次模型具有一个基本特点:对于任何一个给定的记录值,只有按其路径查看,才能显示出它的全部意义。没有一个子女记录值能够脱离双亲记录值而独立存在。例如对于图3-13中的学生记录值(00001,王平,20),如果不指出它的双亲节点,就不知道它是哪个系的学生。

虽然理论上认为一个层次模型可以包含任意多的记录和字段数据,但任何实际的数据库系统都会因为存储容量或者实现复杂度的原因,对层次模型中包含的记录个数和字段个数进行限制。