数据库原理及应用-数据模型之层次与网状模型

2018-01-22 20:55:42

一、层次模型

最先出现的数据模型,因为现实世界中的很多数据本身就存在层次关系,层次模型将客观世界描述成树状结构

由IBM于1968年推出的IMS(Information Management System)数据库管理系统是第一个层次模型数据库管理系统,也是最典型的一个。

1、记录(record)和字段(field)

记录是用来描述某个事物或者事物间关系的可命名的数据单位。它包含若干字段,每个字段也是可命名的,字段只能是简单的数据类型,比如整形,字符串类型等。

左图是一个名为系的记录,它里面有4个字段,这是记录型的定义,也就是记录的数据模式;右图是记录的一个实例。

2、双亲子女关系(Parent-Child relationship,PCR)

这是层次模型中最基本的数据数据关系。它代表了两个记录型之间的一对多的关系。

3、层次数据模式(Hierarchical Data Schema)

层次数据模式包含了多个PCR关系。

左图是一个层次数据模式的例子,其中每个方框代表一个记录型,每个弧线代表一个PCR型。层次数据模式应该是一个树,所以每个记录型只有一个双亲,但可以有多个子女。

右图是层次数据模式的一个实例,层次数据模式可以有多个实例,这些实例构成一个森林。

 

4、虚拟记录(Virtual Record)

在现实世界中,很多时候并不只是存在一对多的关系,也就是可能存在多对多,多对一,三元关系等等,因此层次数据模型必须推广到模拟非层次的数据上才具有普遍意义。

为了避免冗余,虚拟记录的概念被引入进来用来解决提到的问题,所谓虚记录,其本质就是一个指针,也就是在本该存记录的地方用一个指针代替。

 

二、网状数据模型

网状数据模型和层次数据模型类似也以记录(record)为数据的存储单位,记录包含若干的数据项(data items),这里的数据项要比字段的功能强,字段只能是简单的数据类型,数据项可以是复杂的数据类型(数组,其他记录等)。在网状数据类型中,每个记录项可以是多个记录的主记录,也可以是多个主记录的属记录。另外,网状数据模型还引入了联系记录(LINK record)来解决自连接,多元等的联系。

1、系(set)

网状数据模型中使用系来表示记录型之间一对多的联系,少的一方称为主记录,多的称为属记录。网状数据模型在计算机中是以链表的形式存储的。

我们看到,不论是层次数据模型还是网状数据模型,在查询的时候都需要自己手动编写程序,比如层次数据模型需要会遍历树,网状数据模型需要会遍历链表。

 

posted @ 2018-02-04 23:05  hyserendipity  阅读(1823)  评论(0编辑  收藏  举报