层次数据模型2025年5月26日 | 阅读10分钟 在本文中,我们将详细了解层级数据模型。 引言众所周知,数据库模型构成了任何数据库管理系统(DBMS)的基础框架,决定了数据的存储、组织和检索方式。在这种情况下,最早也是最具影响力的数据库模型之一就是“层级模型”,它主要以树状结构组织数据。它通常是在 20 世纪 60 年代开发的,旨在满足大型企业系统有效处理数据日益增长的需求。尽管后来出现了关系型数据库和面向对象数据库等更新的模型,但层级模型在特定场景下仍然具有相关性,尤其是在结构化、高性能数据导航至关重要的情况下。 然而,随着 IBM 的推出,层级数据模型变得流行,IBM 是唯一仍在使用的商业层级数据库,主要用于旧的主机。它以树形数据结构的形式组织记录。它包含 2 个主要概念:
记录:它是字段值的集合,提供了任何实体的相关信息。相同类型的记录被分组到记录类型中。 父子关系:在层级数据模型中,父子关系是两个记录类型之间的 1:N 关系。 让我们举个例子 考虑世界的组织结构。在顶层,我们有世界,下面有几个洲。每个洲包含几个国家。每个国家下面有几个邦,邦下面有几个区。一个给定的区属于列表中最靠近它的邦,而邦则属于其上方列表中的国家,依此类推。 ![]() 在上图中,世界充当树状结构根节点,它有许多子节点,如亚洲、欧洲等。这些子节点位于第 1 层,并为亚洲的印度、中国等国家充当父节点。同样,这些子节点位于第 2 层,并为印度、旁遮普邦、哈里亚纳邦等不同邦充当父节点。阿姆利则的子节点有一个在旁遮普邦的父节点,接着是一个在印度的父节点,依此类推。 层级模型的工作原理层级数据库模型主要通过将数据排列成类似树的结构来工作。该模型主要从一个单一的根节点开始,所有数据都以自顶向下的方式从中分支出来。在这里,数据的每个部分通常存储在一个“节点”中,这些节点通过父子关系相互连接。可以说,当信息按级别组织时,例如公司的员工结构或计算机上的文件夹,这种方法效果很好。
我们知道,在层级模型中,所有相关信息通常保存在称为记录或节点的单元中。所有这些节点都链接在一起以显示关系。每个子节点连接到一个父节点,形成一对多关系。最顶层的节点称为根节点,它没有父节点。它作为数据库的入口点。在这种设置中,一个主项可以在其下方有多个相关项,但这些项中的每一个只能链接回一个主项。这种简单、有组织的结构使得跟踪所有可用信息并有效管理它们变得更容易。“ 例如:在一个公司数据库中,CEO 可能是根节点,经理是子节点,员工是它们的子节点。
由于其结构化设计,层级模型中的数据检索被认为是直接的。该过程始终从根节点开始,向下穿过分支以到达所需数据。由于每个子节点直接与其父节点链接,数据库会遵循预定义的路径。这使得数据访问快速且可预测,尤其是在用户知道所需信息在层级结构中的位置时。无需扫描不相关的数据,从而节省了时间和处理能力。 尽管如此,这种模型在数据元素之间的关系不经常改变的情况下效果最好。虽然它可能不如现代关系模型灵活,但对于需要一致结构和快速访问分层信息的应用程序来说,它仍然是一个可靠且高效的选择。 分层模型
让我们举一个例子,一个包含 3 种记录类型的数据库:书籍 (Books)、店主 (Shopkeeper) 和订单 (Book_Order)。 书籍表
店主表
Book_Order 表
我们假设一个特定的店主可以订购许多书籍。此外,每本书在 BOOK 表中都有唯一的 BID,每个店主在 shopkeepers 表中都有唯一的 SID。现在考虑以下层级图,它代表了批发商数据库的一部分。该图代表了树状结构。 ![]() 在上图中,每棵树都以书籍记录作为父节点,店主记录作为其子节点。对于特定书籍的每个订单,都有一个店主记录。店主记录的出现与书籍记录的出现之间存在链接,代表关联的书籍订单。关系或链接描绘了特定书籍的订购数量,这在 Book_Order 表中显示。现在从这些树状图中可以看出,书籍 B1 由店主 S1 和 S2 订购。书籍 B2 由店主 S1、S2 和 S3 订购,书籍 B3 由店主 S1 订购。没有人订购书籍 B4。 层级数据模型上的操作以下是层级数据模型上各种操作的列表 插入操作:用于将新记录插入数据库。 例如:如果我们想插入一个未被任何店主订购的新记录,例如 B5,那么插入将没有任何困难,因为父节点可以存在而没有子节点。但是,如果我们想插入一个店主记录,例如 S4,他没有订购任何书籍,那么这就会产生问题,因为子节点在没有父节点的情况下无法插入。 ![]() 删除操作:用于从数据库中删除记录。
更新操作:用于更新数据库中的记录。
检索操作:用于在数据库中搜索和获取记录。 示例 1:查找所有为特定书籍 b2 下单的店主。 查询 在上述查询中,首先我们将从 Book_Order 记录类型中搜索 Book 记录 B2。然后它将搜索该特定书籍的所有订单。最后打印或显示检索到的数据。 示例 2:查找被特定店主 S1 订购的所有书籍。 查询 在上述查询中,我们首先必须在 Book_Order 记录类型中为每本书搜索 S1。如果找到店主,则显示相应的 BID,否则 do 循环将继续,直到所有部分都被搜索为订单 S1。 层级数据模型的优点![]() 以下是层级数据模型的各种优点的列表
层级数据模型的缺点![]() 以下是层级数据模型的各种缺点的列表
层级模型的应用![]() 与层级模型相关的各种应用如下
关于层级数据模型的选择题1. 在以下数据结构列表中,层级数据模型使用哪种结构?
答案:b 解释:层级数据模型使用树形数据结构。 2. 下列哪一个是基于记录的表?
答案:d 解释:层级模型是基于记录的模型之一。 3. 在 ______________ 数据库中,父记录可以有多个子记录,但子记录只有一个父记录。
答案:d 解释:层级模型包含 1:N 型关系。 4. 层级数据模型是否以表格形式组织数据?
答案:b 解释:它以树形形式组织记录。 下一主题文件系统方法的局限性 |
我们请求您订阅我们的新闻通讯以获取最新更新。