什么是分层数据?

分层数据是数据项在整个树结构以父子关系相互关联时形成的数据结构。可以将数据想象成家谱,祖父母、父母、子女和孙子构成互联数据的层次结构。通常,它用于显示组织结构图、包含任务的项目或语言术语分类。

分层数据示例

在分层数据中,每个 “子” 节点只有一个 “父节点”,但每个父节点可以有多个子节点。位于层次结构顶部的第一个节点称为根节点。当需要检索信息时,将从根节点向下扫描整棵树。由于每次用户进行查询时都需要扫描整棵树,因此系统不灵活、速度慢。现代数据库已经发展到在相同数据上使用多个层次结构,以便更快、更轻松地进行搜索。

但是,分层数据当前仍然非常广泛地使用。分层数据结构的常见用途是人员配备信息。在组织结构图结构下,CEO 根节点位于顶部,下面是人员配置结构。

分层数据模型由 IBM 在 20 世纪 60 年代开发,是最早的模型类型之一。但是,它很快就被关系数据模型所取代,以克服该模型固有的一些重大结构性问题。

为什么数据结构很重要?

组织的数据结构至关重要。要使企业能够输入、处理、检索和维护信息,选择数据结构类型绝对至关重要。想象一下,在您的计算机上,如果没有文件夹结构或命名约定。查找或使用任何东西的能力将受到严重影响。

相反,在企业中,你会发现用逻辑部门名称排列的文件夹。在这些部门中,文件夹可以按财务季度或适用于该业务的其他逻辑方式进行排列。然后,在这些文件夹中,对单个文件进行描述性命名,通常以特定格式记录日期或版本。这些都是按字母顺序存储的。这意味着当员工需要访问某个文件时,直接找到所需的文件是一项非常简单的任务。同样,良好的数据结构可以实现良好、快速、高效的业务实践。

总的来说,数据科学的一个巨大局限性在于,尽管世界是易变的、立体的,但计算机认为它是扁平且不可改变的。虽然人们知道有 200 种犬种和 200 种蛇,但计算机只知道有 400 种物品。数据结构对于以计算机可解释的方式对数据进行分组、访问、处理和查看至关重要。

了解用于治理、管理和使用所有共享数据资产的单一解决方案
了解用于治理、管理和使用所有共享数据资产的单一解决方案
通过一体化方法来管理整个企业的数据资产,避免孤岛。

组织应在何时使用分层数据?

目前,银行和电信等组织在其应用程序中使用分层数据。这是因为他们需要快速且高度准确的性能。大多数计算机上的 Windows 注册表也是分层数据结构的一个示例。由于数据量大,复杂的制造项目也经常使用分层数据模型。

在以下情况下最好使用分层数据:

  • 数据可以以 “树” 形式存储,具有清晰的父子结构
  • 有必要捕捉层次结构
  • 对数据量有很高的要求
  • 现有系统过于复杂,无法迁移到关系模型或网络模型

分层数据的替代方案

关系型数据

最常见的数据模型是将数据分组到关系中。变量集合按真、假或空类别分组在一起。然后,将数据项与共享变量和属性的其他项放在一起。各组通过关系联系在一起。这组项目与那组类似。与受一对多性质限制的分层数据不同,关系数据中可能存在多对多关系。关系数据库使用结构化查询语言 (SQL),即标准查询语言。

关系模型非常适合维护实例间的数据一致性。例如,如果客户从自动柜员机取款,则该更改将反映在手机应用程序的余额中。这使得它非常适合确保各种系统中的多个数据实例正确无误。

与分层结构相比,关系模型不是以树状结构存储数据,而是以表的形式存储。

网络模型

与关系数据模型一样,网络模型的创建是为了解决分层数据库模型固有的缺陷。在网络数据模型中,一个子项可以链接到多个父项,尽管它们被称为所有者和成员。

该模型支持一系列关系,并且比分层模型更具流动性。但是,它们要复杂得多,因此难以管理和维护。它并不像关系数据模型那样灵活,而且并非所有关系都能准确建模并与所有者和成员关联。

分层数据结构的优势

数据容易检索

由于数据节点之间的链接定义非常明确,因此查找和检索数据非常容易。由于父项和子项紧密存储在一起,因此导航和数据检索速度也很快。

参照完整性

数据的完整性始终得到保持,因为在父表中所做的所有更改都会在子表中自动更改。

结构简单

上下颠倒的父子关系结构可以立即轻松理解。它在概念上很简单,在数据库中有明确的命令链,因此它提供了很高的性能。由于结构简单,它还能促进数据共享。

安全性好

数据库安全由数据库管理系统提供并强制执行。它安全到以至于一些结构化查询语言开发人员说,你必须成为魔术师才能获取数据。

统一数据基础设施电子书
O'Reilly 报告:构建统一的数据基础架构
只有三分之一的企业发展成为数据驱动型组织。解决方案是什么?在这本电子书中找到答案!

分层数据结构的挑战

不灵活

模型僵化不灵活,添加节点或关系可能会破坏整个结构。如果父表和子表不相关,则很难在子表中添加新条目,因为必须要先在父表中输入额外的数据。同样,将子项从一个级别移动到另一个级别也有很大难度。

只适合一对多关系

当一位父母有许多孩子时,这些关系很容易表现出来。但是,当存在多对多关系时,这些关系就比较难表达了。分层数据中不支持任何比父子关系更复杂的内容。孩子无法与其他父母关联,也无法与来自不同父母的孩子关联。

删除

如果父项被删除,则所有子项(以及其他子项)也会自动删除。想象一下,在台式计算机中,如果删除一个文件夹,则会删除其中的所有文件。这与分层数据库的删除操作方式类似。

缺少标准

没有特定的数据定义或数据操纵语言。总的来说,该系统依赖于严格性来执行标准,但这并不总是有效。

实施复杂

实施分层数据系统需要了解数据存储特征,并了解组织结构。与其他系统相比,这使得其实施起来既复杂又困难。

分层数据模型的未来

尽管今天仍然存在一些具有等级性质的模型,但它们已不再受欢迎了。在新系统中实施分层数据模型并不常见。由于其僵化、实施困难且有极多限制,实施起来不但不经济,而且效率低下。

尽管它们在访问数据方面效率很高,但它们的局限性使其难以应对各种数据类型和数据量所带来的挑战。

作为最早的数据模型之一,人们无法预见技术的迅速性会将其淘汰;但这就是现实情况。未来是多变的,而且也是分层数据无法提供的特性。网络和生态系统正在迅速取代层次结构,使用更自然的方式存储和访问数据。