简介
用有向图结构表示实体类型及实体间联系的数据结构模型称为网状模型(Network Model)。网状模型的典型代表是DBTG系统,也叫CODASYL系统
特点
用网络结构表示实体类型及其实体之间联系的模型。顾名思义,一个事物和另外的几个都有联系……这样构成一张网状图。网状模型的数据结构主要有以下两个特征:
(1)允许一个以上的节点无双亲。
(2)一个节点可以有多于一个的双亲。
实例
以学生选课为例讨论网状模型如何组织数据。通常一个学生可以选修若干门课程,某一课程可以被多个学生选修,因此,学生与课程之间是多对多的联系。这样的实体联系图不能直接用网状模型来表示,因为网状模型中不能直接表示实体之间多对多的联系,为此引入一个学生选课的联结记录。它由3个数据项组成,即学号、课程号、成绩,表示某个学生选修某一门课程及其成绩。这样,学生选课数据库包括3个记录类型:学生、课程和选课。每个学生可以选修多门课程。显然对于学生记录中的一个值,选课记录中可以有多个值与之联系。而选课记录中的一个值,只能与学生记录中的一个值联系。学生与选课之间的联系是一对多的联系,联系名为学生-选课。同样,课程与选课之间的联系也是一对多的联系,联系名为课程-选课。
数据操作与完整性约束
网状模型的数据操作主要包括查询、插入、删除和更新。进行插入操作时,允许插入尚未确定双亲结点值的子结点值。进行删除操作时,只允许删除双亲结点值。进行更新操作时只需更新指定记录即可因此,一般来说,网状模型没有层次模型那样严格的完整性约束条件,但具体的网状数据库系统(如DBTG)对数据操作都加了一些限制,提供了一定的完整性约束。DBTG在模式DDL中提供了定义DBTG数据库完整性的若干概念和语句,
主要有:
(1) 支持记录码的概念,码是唯一标识记录的数据项的集合。(2) 保证一个联系中双亲记录和子记录之间是一对多的联系。
(3) 可以支持双亲记录和子记录之间某些约束条件。如有些子记录要求双亲记录存在才能插入,双亲
记录删除时也连同删除。
优点与缺点
优点
(1) 能够更为直接地描述现实世界。如一个结点可以有多个双亲,结点之间可以有多种联系。(2) 具有良好的性能,存取效率较高。
缺点
(1) 结构比较复杂,而且应用环境越大,数据库的结构就变得越复杂,不利于最终用户掌握。(2) 其数据定义语言(DDL)、数据操作语言(DML)复杂,用户不容易使用。