JeeStudy 发表于 2020-3-19 00:22:32

MySQL8.0大师之路:第3章:数据模型-3.5层次模型

3.5层次模型
    层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。层次数据库系统的典型代表是IBM公司的IMS(Information Management System),这是1968年IBM公司推出的第一个大型商用数据库管理系统,曾经得到广泛的使用。
    层次模型用树形结构来表示各类实体以及实体间的联系。现实世界中许多实体之间的联系本来就呈现出一种很自然的层次关系,如行政机构、 家族关系等。
1. 层次模型的数据结构
    在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:
(1)有且只有一个结点没有父结点,这个结点称为根结点;
(2)根以外的其他结点有且只有一个父结点。
    在层次模型中,每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。这就使得层次数据库系统只能处理一对多的实体联系。
    每个记录类型可包含若干个字段,这里记录类型描述的是实体,字段描述实体的属性。 各个记录类型及其字段都必须命名。各个记录类型、 同一记录类型中各个字段不能同名。每个记录类型可以定义-个排序字段,也称为码字段,如果定义该排序字段的值是唯一的, 则它能唯一地标识一个记录值。
    一个层次模型在理论上可以包含任意有限个记录类型和字段,但任何实际的系统都会因为存储容量或实现复杂度而限制层次模型中包含的记录类型个数和字段的个数。
    在层次模型中,同一父节点的子结点称为兄弟结点(twin 或 sibling),没有子结点的结点称为叶结点。
    层次模型的一个基本的特点是,任何一个给定的记录值只能按其层次路径查看,没有一个子记录值能够脱离父记录值而独立存在。
2. 层次模型的数据操纵与完整性约束
    层次模型的数据操纵主要有查询、插入、删除和更新。进行插入、删除、更新操作时要满足层次模型的完整性约束条件。
    进行插入操作时,如果没有相应的父结点值就不能插入它的子结点值。
3. 层次模型的优缺点
    层次模型的优点主要有:
(1)层次模型的数据结构比较简单清晰。
(2)层次数据库的查询效率高。因为层次模型中记录之间的联系用有向边表示,这种联系在DBMS中常常用指针来实现。因此这种联系也就是记录之间的存取路径。当要存取某个结点的记录值,DBMS就沿着这一条路径很快找到该记录值,所以层次数据库的性能优于关系数据库,不低于网状数据库。
    (3)层次数据模型提供了良好的完整性支持。
    层次模型的缺点主要有:
(1)现实世界中很多联系是非层次性的,如结点之间具有多对多联系,不适合用层次模型表示。
(2)如果一个结点具有多个父结点等,用层次模型表示这类联系就很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据结构(引入虚拟节点)来解决。
对插入和删除操作的限制比较多,因此应用程序的编写比较复杂。
(3)查询子结点必须通过父结点。
(4)由于结构严密,层次命令趋于程序化。
    可见用层次模型对具有一对多的层次联系的部门描述非常自然、直观,容易理解。这是层次数据库的突出优点。










页: [1]
查看完整版本: MySQL8.0大师之路:第3章:数据模型-3.5层次模型