层次模型概述

树形结构表示实体之间联系的模型叫层次模型。层次模型是最早用于商品数据库管理系统的数据模型。

层次型数据库管理系统是紧随网状数据库模型而出现的。
现实世界中很多事物是按层次组织起来的。层次数据模型的提出,首先是为了模拟这种按层次组织起来的事物。层次数据库也是按记录来存取数据的。
层次数据模型中最基本的数据关系是基本层次关系,它代表两个记录型之间一对多的关系,也叫做双亲子女关系(PCR)。数据库中有且仅有一个记录型无双亲,称为根节点。其他记录型有且仅有一个双亲。在层次模型中从一个节点到其双亲的映射是惟一的,所以对每一个记录型(除根节点外)只需要指出它的双亲,就可以表示出层次模型的整体结构。层次模型是树状的。
最著名最典型的层次数据库系统是于1969由IBM公司的IMS(Information Management System),这是IBM公司研制的最早的大型数据库系统程序产品。从60年代末产生起,如今已经发展到IMSV6,提供群集、N路数据共享、消息队列共享等先进特性的支持。

层次模型的结构

层次模型的表示方法是:树的结点表示实体集(记录的型),结点之间的连线表示相连两实体集之间的关系,这种关系只能是“1一M”的。通常把表示1的实体集放在上方,称为父结点,表示M的实体集放在下方,称为子结点。层次模型的结构特点是:

(1) 有且仅有一个根结点。
(2) 根结点以外的其它结点有且仅有一个父结点。

因而层次模型只能表示“1一M”关系,而不能直接表示“M—M”关系。在层次模型中,一个结点称为一个记录型,用来描述实体集。每个记录型可以有一个或多个记录值,上层一个记录值对应下层一个或多个记录值,而下层每个记录值只能对应上层一个记录值。例如,系记录型有:计算机系、电信系等记录值。而计算机系的下层记录值有软件、结构、应用等研究室和数据结构、操作系统、数据库等课程,软件研究室下层又有员工和项目记录值,如图所示:

关于层次模型中实体集之间多对多的联系的处理,解决的方法是引入冗余结点。例如,学生和课程之间的多对多的联系,引入学生和课程的冗余结点,转换为两棵树:一棵树的根是学生,子结点是课程,它表现了一个学生可以选多门课程;一棵树的根是课程,子结点是学生,它反映了一门课程可以被多个学生选。
至于冗余结点可以用虚拟结点实现:在冗余结点处仅存放一个指针,指向实际结点。

层次模型的物理存储

层次模型的物理存储有两种实现方法:

  • 顺序法:按照层次顺序把所有的记录邻接存放,即通过物理空间的位置相邻来实现层次顺序。
  • 指针法:各个记录存放时不是按层次顺序,而是用指针按层次顺序把它们链接起来。

层次模型所受的限制

  • 层次模型的树是有序树(层次顺序)。对任一结点的所有子树都规定了先后次序,这一限制隐含了对数据库存取路径的控制。
  • 树中父子结点之间只存在一种联系,因此,对树中的任一结点,只有一条自根结点到达它的路径。 不能直接表示多对多的联系。
  • 树结点中任何记录的属性只能是不可再分的简单数据类型。

数据库系统原理--------层次模型相关推荐

  1. 数据库系统原理(1)--绪论

    基本说明 数据库系统原理的系列章节是基于<数据库系统原理>的基础之上,结合自己的心得与体会进行的归纳总结. 由于这些内容都是自己对数据库相关内容学习的最初理解,因此有所不妥的地方欢迎批评指 ...

  2. 数据库系统原理(BNU_党德鹏_慕课)超详细听课笔记

    数据库系统原理 笔记 第一章 绪论 第一节 数据库 第二节 数据库管理系统 第三节 数据管理技术发展趋势 第二章 关系模型 第一节 关系结构和约束 第二节 基本关系代数运算 第三节 附加关系代数运算 ...

  3. 数据库系统原理与实践题库及答案(完整版)

    数据库系统原理与实践题库及答案 1.简要说明数据.数据库.数据库管理系统和数据库系统的概念. 答:数据:数据库中存储的基本对象是数据(Data),从计算机的角度来看,数据是指能够被计算机存储和处理的符 ...

  4. 自考-知识点总结-数据库系统原理 04735

    数据库系统原理 第一章 数据库系统概述 数据库基本概念 数据:符号记录(文本或多媒体) 数据库(DB):长期储存.有组织.可共享 的数据集合 数据库管理系统(DBMS):建立与管理数据库的软件 基本功 ...

  5. oracle数据库系统电子版,Oracle数据库系统原理(第2版)

    Oracle数据库系统原理(第2版)是由作者李爱武所编著的一本书.通过本书,讲述了Oracle数据库的基本理论,以及系统知识,让你有更加深层次的理解. 简介: 本书包括数据库基本理论以及Oracle数 ...

  6. IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)

    IT:银行类金融科技岗笔试习题集合-各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理) 导读:因为博主后台留言太 ...

  7. 数据库系统原理复习提纲

    数据库系统原理复习提纲 参考文献:A First Course in Database Systems | 3rd Edition Authors:Jennifer Widom,Jeffrey D U ...

  8. 数据库系统原理设计题和综合体

    1.设教学数据库中有三个关系: 学生关系 S(S#,SNAME ,AGE,SEX,DEPT),其属性分别表示学号.姓名.年龄.性别.所在系. 课程关系 C(C# ,CNAME ,TEACHER) ,其 ...

  9. 修改数据无法提交_数据库系统原理

    数据库系统原理整理 一.事物 事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚. ACID原则 1.原子性 事务被视为不可分割的最 ...

最新文章

  1. forall oracle 游标,FORALL用法小结
  2. linux history 看更多历史记录_Linux历史记录history常用技巧
  3. 3. 什么是icmp?icmp与ip的关系_你知道如何跟女生,确定恋人关系吗?
  4. Spring Cloud Config 配置中心实践过程中,你需要了解这些细节!
  5. 内部类 java 1614957119
  6. 有段时间没更新了。。。放上我在做的东东的截图
  7. 使用fiddler获取手机上的数据
  8. Digix联合创始人:在接下来的12个月中 比特币将被称为真正的价值存储
  9. Java基于Redis的分布式锁
  10. 字节跳动算法工程师总结:java抽象类和接口实验报告
  11. dmidecode 硬件查看
  12. 再说一次,别去外包!
  13. docker-compose批量管理docker容器
  14. java错误:需要《标识符》
  15. 斐讯k2路由器刷固件一条龙——从小白到大神
  16. [油猴脚本开发指南]第一个脚本-HelloWorld
  17. 台式计算机的电流是多少,电脑台式机一天耗电大概是多少
  18. 使用正则表达式在Java中悬挂缩进段落
  19. 【MATLAB数字图像处理】伪彩色增强
  20. Android底部菜单栏(图片+文字)

热门文章

  1. 计算机网络学习笔记(1)
  2. 【数据库查询表结构】
  3. Chrome浏览器最常用的快捷键
  4. 医学图像分割知识点总结
  5. python中 range 与 arange 的用法与区别:
  6. MaxCompute实践之路(三) -- Java对接MaxCompute
  7. 怎么建立软连接和删除软连接、宏定义个声明一年有多少秒、关于自定义函数类型指针
  8. 【人工智能行业大师访谈1】吴恩达采访 Geoffery Hinton
  9. 俄语33个字母+编程打印俄语字母表
  10. 各种视频格式的详细介绍