📜  DBMS 中的网络模型

📅  最后修改于: 2021-09-08 15:37:15             🧑  作者: Mango

网络模型:
该模型由数据库任务组在 1960 年代正式确定。该模型是层次模型的推广。该模型可以由多个父段组成,这些段按级别分组,但属于任何级别的段之间存在逻辑关联。大多数情况下,两个段中的任何一个之间都存在多对多的逻辑关联。我们称图为段之间的逻辑关联。因此,该模型用类似图的结构代替了层次树,从而在不同节点之间可以有更多的通用连接。它可以有 M:N 关系,即多对多关系,允许一条记录具有多个父段。
在这里,一个关系称为一个集合,每个集合由至少 2 种类型的记录组成,如下所示:

  • 与分层模型中父项相同的所有者记录。
  • 与分层模型中的 child 相同的成员记录。

网络模型的结构:

网络数据模型

在上图中,成员二只有一个所有者“一”,而成员五有两个所有者,即二和三。这里,两个记录类型之间的每个链接代表它们之间的 1:M 关系。该模型由节点之间的横向和自上而下的连接组成。因此,它允许给定实体之间存在 1:1、1:M、M:N 关系,这有助于避免数据冗余问题,因为它支持到同一记录的多条路径。有各种示例,例如 Cincom Systems Inc. 的 TOTAL、Xerox Corp. 的 EDMS 等。

示例:财务部门的网络模型。

下面我们设计了一个财务部门的网络模型:

财务部网络模型。

因此,在网络模型中,一对多 (1:N) 关系在两种记录类型之间具有链接。现在,在上图中,SALES-MAN、CUSTOMER、PRODUCT、INVOICE、PAYMENT、INVOICE-LINE 是公司销售记录的类型。现在,正如您在给定的图中所见,INVOICE-LINE 归 PRODUCT & INVOICE 所有。 INVOICE 也有两个所有者 SALES-MAN & CUSTOMER。

让我们看另一个例子,其中我们有两个部分,教师和学生。假设学生 John 在 CS 和 EE 系都学习课程。现在,找出将有多少个实例?

对于上面的例子,一个学生实例至少可以有 2 个父实例,因此,学生实例和教员段之间存在关系。该模型可能非常复杂,就好像我们使用其他部分说课程和逻辑关联,如学生注册和教师课程。因此,在此模型中,学生可以在逻辑上与学院和课程的各种实例相关联。

网络模型的优点:

  • 该模型非常简单,易于设计,就像分层数据模型一样。
  • 该模型能够处理多种类型的关系,这有助于模拟现实生活中的应用程序,例如,1:1、1:M、M:N 关系。
  • 在这个模型中,我们可以轻松访问数据,并且应用程序也有机会访问集合中所有者和成员的记录。
  • 该网络不允许成员在没有所有者的情况下存在,这导致了数据完整性的概念。
  • 和分层模型一样,这个模型也没有任何数据库标准,

网络模型的缺点:

  • 该数据库的模式或结构本质上非常复杂,因为所有记录都是通过使用指针来维护的。
  • 由于使用指针进行导航,这进一步导致复杂的实现,因此存在操作异常。
  • 该模型的设计或结构不是用户友好的。
  • 此模型没有任何自动查询优化范围。
  • 即使网络数据库模型能够实现数据独立,该模型也无法实现结构独立。