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)
网状数据模型中使用系来表示记录型之间一对多的联系,少的一方称为主记录,多的称为属记录。网状数据模型在计算机中是以链表的形式存储的。
我们看到,不论是层次数据模型还是网状数据模型,在查询的时候都需要自己手动编写程序,比如层次数据模型需要会遍历树,网状数据模型需要会遍历链表。