网状数据库是采用网状原理和方法,以网状数据模型为基础建立的数据库。一般是指由网状数据库管理系统产生的网状数据库系统。网状数据模型是以记录类型为结点的
网络结构,即一个结点可以有一个或多个下级结点,也可以有一个或多个上级结点,两个结点之间甚至可以有多种联系,例如“教师”与“课程”两个记录类型,可以有“任课”和“辅导”两种联系,称之为复合链。两个记录类型之间的值可以是多对多的联系,例如一门课程被多个学生修读,一个学生选修多门课程。
数据库技术是20世纪60年代初开始发展起来的一门数据管理自动化的综合性新技术,它是应数据管理任务的需要而产生的,是数据管理最有效的手段。数据库就是为了一定的目的,在计算机系统中与特定的结构组织、存储和应用相关联的数据集合。在数据库出现之前,计算机管理数据经过了程序管理和文件管理两个阶段。数据库是数据管理的高级阶段,它与传统的数据管理相比有许多明显的差别,其中主要的有两点:一是使数据独立于应用程序而集中管理,实现了数据共享,减少了数据冗余,提高了数据的效益;二是在数据间建立了联系,从而能反映出现实世界中信息的联系。
网状数据库 (network database) 是采用网状模型的数据库。网状模型用网状结构表示各类实体及其间的联系。在网状结构中:允许一个以上的结点没有双亲;一个结点可以有多于一个的双亲。网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,此外它还允许两个结点之间有多种联系(称之为复合联系)。因此网状数据模型可以更直接地去描述现实世界。而层次结构实际上是网状结构的一个特例。但是,和
层次数据库一样,网状数据库的操作语言也是过程性的,数据的逻辑独立性仍然不高。
网状数据库系统在20 世纪 70 年代与 80 年代初非常流行,在数据库系统产品中占主导地位,虽然近年来逐渐被关系数据库系统取代,在美国、加拿大等国家 ,由于历史原因 ,网状数据库的用户数仍然很多。如富士通公司M系列机上配制AIM系统,UNIVAC上配制的DMS1100,HONEYWELL公司机器上配制的IDS系统和CINCON的TOTAL等系统都是网状方法。在网状数据库系统中,有许多系统是以美国的DBTG为标准实现的。在DBTG系统中,数据库的记录类型用结点表示,记录类型之间的联系用有向边表示,称为系型,则数据库的全局逻辑结构为一有向图。记录类型由数据项和数据集组成的命名集合。系型定义为记录类型之间命名的联系,系型是一个二级树。一个系型有且仅有一个记录类型定义为首记录类型。其它记录类型为成员记录类型。根据系型的结构特点可划分为三种类型:单成员系、多成员系和奇异系。
系类型是二个或二个以上的记录类型之间联系的一种描述。在一个
系类型中,有一个记录类型处于主导地位,称为系主记录类型,其它称为成员记录类型。系主和成员之间的联系是一对多的联系。网状数据库的代表是DBTG系统。1969年美国的CODASYL组织提出了一份“DBTG报告”,以后,根据DBTG报告实现的系统一般称 为DBTG系统。现有的网状
数据库系统大都是采用DBTG方案的。DBTG系统是典型的三级结构体系:子模式、模式、存储模式。相应的
数据定义语言分别称为子模式定义语言SSDDL,模式定义语言SDDL,设备介质控制语言DMCL。另外还有
数据操纵语言DML。
第一代数据库系统的数据模型为层次模型和网状模型。层次模型是将数据组织成有向有序的树结构。层次模型由处于不同层次的各个结点组成。除根结点外,其余各结点有且仅有一个上一层结点作为其“双亲”,而位于其下的较低一层的若干个结点作为其“子女”。结构中结点代表数据记录,连线描述位于不同结点数据间的从属关系(限定为一对多的关系)。层次模型反映了现实世界中实体间的层次关系,层次结构是众多空间对象的自然表达形式,并在一定程度上支持数据的重构。但它在应用时存在以下问题:1)由于层次结构的严格限制,使得对低层次对象的处理效率低、数据更新的插入和删除操作复杂,难以进行反向查询。2)层次命令具有过程式性质,它要求用户了解数据的物理结构,并在数据操纵命令中显式地给出存取途径。3)模拟多对多联系时导致物理存贮上的冗余。4)数据独立性较差。
网状数据库是处理以记录类型为结点的网状数据模型的数据库。网络模型用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的
数据组织方式,网络模型将数据组织成
有向图结构。结构中结点代表数据记录,连线描述不同结点数据间的关系。它反映着现实世界中实体间更为复杂的联系,其基本特征是,结点数据间没有明确的从属关系,一个结点可与其它多个结点建立联系。有向图结构比层次结构具有更大的灵活性和更强的数据建模能力。网络模型的优点是可以描述现实生活中极为常见的多对多的关系。其数据存贮效率高于层次模型。但其结构的复杂性限制了它在空间数据库中的应用。它在应用时存在以下问题: 1)网状结构的复杂性增加了用户查询和定位的困难。它要求用户熟悉数据的逻辑结构。知道自身所处的位置。2)网状数据操作命令具有过程式性质。3)不直接支持对于层次结构的表达。