数据库原理--网状数据模型

网状数据模型

在现实世界中,许多事物之间的联系更多的是非层次结构的,用层次模型表示非树形结构是很不直接的,网状模型则可以克服这一弊端,可以清晰的表示这种非层次关系。网状模型的典型代表是DBTG系统(也称CODASYL系统)。它是20世纪70年代数据库系统语言研究会(conference on data m languageCODASYL)下属的数据库任务组(DBTG)提出的一个系统方案。

1. 网状模型的数据结构

满足下列两个条件的基本层次联系为网状模型:

l     有一个以上的结点没有双亲结点;

l     一个结点可以有多于一个的双亲结点。

网状数据模型是一种比层次模型更具普遍性的结构,它取消了层次模型的两个限制,允许多个结点没有双亲结点,允许结点可以有多个双亲结点,此外,它还允许两个结点之间有多种联系(称之谓符合联系)。因此网状模型可以更直接地描述现实世界,而层次结构实际上是网状结构的一个特例。

与层次模型一样,网状模型也使用记录与记录值表示实体集和实体;每个结点也表示一个记录实体,每个记录类型可包含若干字段,结点间的连线表示记录类型(实体)之间的父子关系。

网状数据结构可以有很多种,如图1.11中。其中(a),(b),(c)都是网状模型的例子。网状模型中的联系用结点间的有向线段表示。每个有向线段表示一个记录间的一对多的联系。网状模型中的联系简称为系。由于网状模型中的系比较复杂,两个记录间可以存在多种系,一个记录允许有多个双亲记录,所以网状模型中的系必须命名。用系名标识不同的系。例如1.11a)中R3有两个有两个双亲记录R1R2,因此我们把R1R3之间的联系命名为L1R2R3之间的联系命名为L2。另外网状模型中允许有复合链,即两个记录之间可以有两种以上的联系,如图1.11c)。

a

b

c

1.11  网状数据结构

实例1.4  利用网状模型组织数据图,描述学生社团、专业系、教研室、教师、学生及课程间的关系。

这是一个复杂网状结构(如图1.12所示)。学生社团与学生、专业系与学生、专业系与教师之间、教研室与教师这三个实体之间都是都是1n联系(假设一个学生只能参加一个社团)。学生与课程之间是mn的联系,即一个学生可以选修多门课程,一门课程可以由多个学生选修。

 

1.12  学生与课程的网状模型

用网状结构表示实体类型及实体之间联系的数据模型称为网状模型。在网状模型中,一个子结点可以有多个父结点,在两个结点之间可以有一种或多种联系。记录之间联系是通过指针实现的,因此,数据的联系十分密切。网状模型的数据结构在物理上易于实现,效率较高,但是编写应用程序较复杂,程序员必须熟悉数据库的逻辑结构。

2.网状数据模型的操纵与完整性约束

网状模型的数据操纵主要包括查询、插入、删除和修改数据。网状数据模型记录间的联系比较复杂。一般地说,它没有层次模型那样严格的完整性约束条件,但具体的网状数据库系统对数据操作都加了一些限制,提供了一定的完整性约束。

l     插入数据时,允许插入尚未确定双亲结点值的子女结点值,如可增加一名尚未分配到某个教研室的新教师,也可增加一些刚来报到,还未分配宿舍的学生。

l     删除数据时,允许只删除双亲结点值,如可删除一个教研室,而该教研室所有教师的信息仍保留在数据库中。

l     修改数据时,可直接表示非树形结构,而无需像层次模型那样增加冗余结点,因此,修改操作时只需更新指定记录即可。

3. 网状模型的优缺点

网状数据模型的优点:

l     能更为直接地描述客观世界,可表示实体间的多种复杂联系。如一个结点可以有多个双亲、允许结点之间为多对多的联系;

l     具有良好的性能,存储效率较高。

网状模型的缺点:

l     结构复杂,其DDL语言极其复杂。

l     数据独立性差。由于实体间的联系本质上是通过存取路径表示的,因此应用程序在访问数据时要指定存取路径。

转载于:https://www.cnblogs.com/JimmyShen/archive/2011/10/09/2204901.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值