网络模型是层次结构的扩展,因为它允许以允许多个父级的树状结构管理多对多关系。
网络模型有两个基本概念-
记录包含需要分层组织的字段。
集用于定义包含一个所有者,多个成员的记录之间的一对多关系。
记录可以在任何数量的集合中充当所有者,并在任何数量的集合中充当成员。
PS集不得与数学集混淆。
借助循环链接列表设计一个集合,其中一个记录类型(该集合的所有者也称为父记录)在每个圆中出现一次,而第二种记录类型(也称为下属或子对象)可能出现多个每个圈中的次数。
在任何两种记录类型之间建立层次结构,其中一种类型(A)是另一种类型(B)的所有者。同时,可以开发另一组,其中后一组(B)是前一组(A)的所有者。在此模型中,所有权是由方向定义的,因此所有集合都包含一个通用的有向图。通过循环链接列表的索引结构来开发对记录的访问。
网络模型具有以下主要功能-
它可以比分层模型更有效地表示数据冗余。
从上一个节点到后继节点可能有多个路径。
网络模型的操作由链接列表(循环列表)的索引结构维护,在该列表中程序保持当前位置并通过遵循记录参与的关系从一个记录导航到另一个记录。
还可以通过提供键值来定位记录。
下图描述了网络模型。代理代表多个客户并管理多个演艺人员。每个客户安排任何数量的约定并向代理商付款以为其服务。每个演艺人员都要进行几次演出,并且可以演奏各种音乐风格。
记录的集合由一个节点表示,并且一个集结构有助于在网络中建立关系,这有助于通过使用一个节点作为所有者并将另一个节点作为成员来将一对节点关联在一起。一对多关系由集合结构管理,这意味着所有者节点中的一条记录可以与成员节点中的一条或多条记录相关,而成员节点中的一条记录仅与其中的一条记录相关。所有者节点。
此外,成员节点中的记录必须与所有者节点中的现有记录相关联才能存在。例如,必须将一个客户端分配给一个代理,但是没有客户端的代理仍可以在数据库中列出。
上图显示了基本集合结构的图。可以在特定的一对节点之间定义一个或多个集合(连接),并且单个节点也可以与数据库中的其他节点一起包含在其他集合中。
借助适当的集合结构,可以轻松地在网络模型内部访问数据。选择根节点没有任何限制,可以通过任何节点访问数据,并在相关集的帮助下向后或向前运行数据。
例如,当用户想要查找预订特定参与的代理商时。他/她首先在ENGAGEMENTS节点中找到适当的参与记录,然后通过Schedule集合结构确定哪些客户“拥有”该参与记录。最后,他/她通过“代表集”结构识别“拥有”客户记录的代理。
快速的数据访问。
它还允许用户创建比使用分层数据库创建的查询更复杂的查询。因此,可以在此模型上运行各种查询。
用户必须非常熟悉数据库的结构才能完成设置的结构。
在此数据库中进行更新是一项繁琐的任务。在不影响使用该结构浏览数据的应用程序的情况下,不能更改设置的结构。如果更改集合结构,则还必须修改从应用程序内部对该结构所做的所有引用。