网状数据库模型

2025年5月26日 | 阅读10分钟

由于层次模型存在一些局限性,设计者们开发了网络数据库模型。在本文中,我们将详细讨论网络数据库模型及其操作、优点和缺点以及各种示例。

DBMS 中网络模型简介

我们都知道,在选定的数据库系统中,数据模型通常定义数据的结构、存储和访问方式。各种模型通常用于以有效的方式表示数据,包括层次模型关系模型面向对象模型网络模型。每种模型主要提供不同的方法来组织数据和处理各种数据点集之间存在的关系。

Network Database Model

网络模型主要是作为层次模型的增强而引入的。层次模型以树状结构排列数据,具有严格的父子关系——每个子节点只有一个父节点——但是,相应的网络模型通过支持多个关系来提供更大的灵活性。这意味着一个记录可以连接到多个父记录和子记录,从而可以表示复杂的多对多关系。

然而,在网络模型中,数据组织得更像图而不是树。这种设置使得对现实世界中实体之间经常与其他实体有联系的情况进行建模更加容易。例如,在大学数据库中,一个学生可以注册多门课程,而每门课程也可以有许多学生。与严格的层次方法相比,网络模型能更有效地处理这种关系。尽管如此,这种模型在早期数据库系统中特别有用,这些系统通常用于大规模业务应用程序。它提供了一种通过预定义关系轻松访问所有相关数据的方法。虽然现代系统通常出于简单性和灵活性的考虑而偏爱关系模型,但网络模型在数据库技术的发展中起到了关键作用,并且在理解数据库设计的历史和基础方面仍然具有相关性。

通过允许不同数据集之间的所有多重连接,网络模型在现代关系数据库成为标准之前,为组织和导航信息提供了一种强大的方式。

什么是网络数据库模型?

网络数据库模型被标准化为 CODASYL DBTG 模型。使用有向图,其中一个节点可以有多个父节点。此模型用于处理多对多(M: N)关系。为了在此模型中表示多对多关系,通过引入一个称为交叉记录或连接记录的附加记录类型,将关系分解为两个一对多(1: N)关系。

例如:一个图书数据库,其中一位作者可以有多本书,而一本书可能有不止一位作者。

此模型中使用以下两个基本术语:

  • 记录
  • 集合 (Sets)

记录(Record):它包含有关分类为记录类型的数据的详细信息。

集合(Set):它表示记录类型之间的关系,并使用链表来表示这些关系。

让我们举个例子,数据库包含 3 种记录类型:书籍、店主和订购单。

书籍表

BID标题作者出版商价格
B1CAnshumanLPB175
B2C++YashwantBPB200
B3UNIXRobertTata250
B4JAVAHerbtPHI195

店主表

SID名称Ph_No城市
S1Ram9874689014LPB
S2Mohan9674689014BPB
S3Ravi9774689015Tata
S4穆斯坎9574689017PHI

Book_Order 表

BIDSIdQty
B1S175
B2S220
B3S325
B4S495

我们假设一个特定的店主可以订购许多书籍。此外,每本书在 BOOK 表中都有唯一的 BID,每个店主在 shopkeepers 表中都有唯一的 SID。现在考虑以下网络图,它表示了批发商数据库的一部分。该图表示图结构。

Network Database Model

在上图中,它显示了一种使用称为连接记录的新类型记录来实现多对多关系的方法。连接记录包含描述 BOOKS 和 SHOPKEEPER 记录之间关联的公共数据,以及两个指针,分别指向它参与的每个集合。给定店主的所有连接记录实例都放置在一个链上,从该链开始并返回到该链。这意味着每个所有者记录(S1、S2 或 S3)必须具有指向其所有成员记录的指针,然后每个成员记录((50、10、20)、(30、20)、(15))以及为了能够从成员记录找到所有者记录,每个成员记录(B1、B2、B3 或 B4)都需要具有指向其所有所有者的指针。

例如:在上述关系中,店主 S1 订购书籍 B1 数量为 50,书籍 B2 数量为 10,书籍 B3 数量为 20。同样,B1 被 S1 订购数量为 50,被 S2 订购数量为 30。所有这些关系都通过从记录开始,经过各种连接记录,然后返回到同一记录的指针来表示。

网络数据库模型上的操作

网络数据库模型上的各种操作列表如下:

  • 插入(Insert):用于将新记录插入数据库。
    • 如果用户想要插入包含新店主 S4 详细信息的新记录,用户可以轻松插入,因为不会有连接记录。新店主 S4 将包含一个从店主指向它的简单指针。
    • 同样,如果用户想要插入包含新书 B5 详细信息的新记录,用户也可以轻松插入。
    • 考虑一种情况,店主 S2 为书籍 b3 订购了 40 件。要插入此记录,用户将不得不更改指针的位置。S2 的指针将不得不经过新的连接记录 40。
    • 同样,B3 的指针现在将不得不经过新的连接记录 40。
    • 因此,这些指针的修改可以轻松执行。因此,在此模型中,插入操作没有插入问题。
      Network Database Model
  • 删除(Delete):用于从数据库中删除记录。
    • 考虑要删除的书籍记录 B4。由于没有店主订购这本书,因此其指针将仅开始和结束。删除此记录很容易,因为不需要更改连接记录和指针。
    • 类似地,如果存在尚未下订单的店主记录,也可以删除此记录。
    • 考虑一种情况,店主 S1 为书籍 B1 下的某个订单被取消了。那么可以通过移除连接记录并调整相应的指针来完成此操作,而不会影响书籍和店主,如下图所示。
      Network Database Model
    • 考虑要删除的记录书籍 B1,可以通过移除相应的指针和连接记录来删除该记录实例,而不会影响订购书籍 B1 的店主(S1、S2),如下图所示。
      Network Database Model
    • 类似地,我们可以删除店主的信息,而不会影响书籍记录。
  • 更新(Update):记录在网络模型中只出现一次,因此对记录任何属性的更改可以轻松执行,而不会出现不一致。
    例如:如果我们更改书籍 B1 的价格从 175 到 300,那么由于该记录在网络模型中只出现一次,因此可以轻松执行此操作,而无需进行搜索和不一致问题。
  • 检索(Retrieve):用于将记录提取到数据库中。它也称为检索异常。与层次模型不同,检索操作(即搜索和提取记录的过程)是对称但复杂的。对对称的理解是,无论我们想查找一个店主订购的某本书,还是一个店主订购的不同书籍,查询都几乎相似。

让我们通过以下示例来演示如何检索数据。

示例 1:查找订购特定书籍 B2 的所有店主。

查询

在上述查询中,要检索信息,我们首先搜索特定的书籍 B2,它在数据库中只有一个实例。然后,我们将构建一个循环,该循环将访问 B2 下的每个连接记录。然后,连接记录会检查该连接记录上的店主以及订购数量,并打印相关的店主记录实例。

示例 2:查找被特定店主 S1 订购的所有书籍。

查询

在上述查询中,首先我们搜索 S1,它只出现一次。然后,我们将构建一个循环,该循环将访问 S2 下的每个连接记录。然后,对于每个连接记录,我们检查连接记录上的书籍以及 BID,最终打印出来。

网络数据库模型的优点

Network Database Model

网络数据库模型各种优点的列表如下:

  • 消除数据冗余:在网络模型中,数据库中特定记录只有一个出现。
  • 数据独立性:在网络模型中,可以在不修改应用程序的情况下更改数据结构,从而实现数据独立性。
  • 易于访问数据:由于网络模型中的记录通过指针相互链接,因此可以非常容易地从一个父记录移动到另一个父记录。
  • 存储需求较低:记录只出现一次,没有重复,因此数据库存储记录的存储需求较低。
  • 可以处理多种关系:现实世界的情况存在大量的不同类型关系,如一对一、一对多和多对多关系等。
  • 促进数据完整性:网络模型促进数据完整性。

网络数据库模型的缺点

Network Database Model

网络数据库模型的各种缺点的列表如下:

  • 复杂性:网络模型的概念设计非常简单,但硬件级别的设计非常复杂,因为需要大量的指针。
  • 缺乏结构独立性:网络模型实现了数据独立性,但未能实现结构独立性,因为各种记录通过指针链接,形成导航链。
  • 数据查询困难:在网络模型中查询数据时,程序员被迫以链接的方式进行思考,以及如何遍历它们以获取所需的信息。

DBMS 中网络模型的关键特征

众所周知,数据库管理系统(DBMS)中的网络模型主要因其有效处理数据之间可能存在的各种复杂关系的能力而脱颖而出。它是在早期层次模型的基础上进行改进开发的;它在组织和访问信息方面提供了更大的灵活性和效率。以下是定义此模型的一些关键特征:

  1. 支持多对多关系:网络模型的主要优势之一是能够表示数据项之间通常存在的多对多关系。与限制记录只能有一个父节点的层次模型不同,网络模型允许每个记录链接到多个父记录和子记录。这更准确地反映了现实世界的情况,其中数据经常以复杂的方式进行交互。
  2. 有效利用所有者和成员关系:在此模型中,数据通过“集合”系统连接。每个集合包含一个所有者(父节点)和一个或多个成员(子节点)。所有这些记录之间存在的关系形成一个链接,帮助个人定义数据点之间的关联方式。这种所有者-成员结构使得管理和维护记录之间的连接更加容易。
  3. 导航式数据访问:在网络模型中访问数据通常涉及通过已建立的链接从一个记录导航到另一个记录。与仅仅依靠跨表进行广泛搜索的查询不同,用户遵循特定路径来访问所需数据。这种方法由数据语言的有效操作支持,该语言提供穿越网络的命令,从而提供对信息检索方式的精确控制。
  4. 快速高效的数据检索:能够沿着记录之间的多条路径进行跟踪,有助于减少查找特定数据所需的时间。尤其是在大型或复杂数据库中,此模型可能比其他模型更有效,因为它能有效避免重复扫描不相关的数据。
  5. 强大的数据完整性:通过集合和链接管理连接,网络模型确保记录之间的关系保持一致。这将减少数据丢失或损坏的风险,并有助于维护一个可靠的结构,即使数据库随着时间的推移而增长或发生变化。
  6. 高灵活性:网络模型非常适用于各种用例。它适用于需要表示复杂结构的应用,例如组织图、供应链或通信网络,使其成为数据库设计的通用工具。

关于网络模型的选择题

1. 在下面的数据结构列表中,网络数据库模型使用哪种结构?

  1. Array
  2. Tree
  3. Graph
  4. 链表
 

答案:c

解释:网络模型使用有向图结构。


2. 网络数据库模型不支持哪种类型的关系?

  1. 一对一关系
  2. 一对多关系
  3. 多对一关系
  4. 多对多关系
 

答案:c

解释:此模型用于处理多对多(M: N)关系。


3. 在网络模型中,哪个术语描述了记录及其关系的集合?

  1. 模式
  2. 子模式
  3. 数据类型
  4. 集合类型
 

答案:d

解释:集合类型表示记录类型之间的关系,该模型使用链表来表示这些关系。


4. 下列哪一项不是基于记录的表?

  1. 实体关系模型
  2. 关系模型
  3. 网络模型
  4. 分层模型
 

答案:a

解释:有三种类型的基于记录的模型。

  • 关系模型
  • 网络模型
  • 分层模型