首页 > 代码库 > 逻辑数据模型之层次数据模型、网状数据模型和关系数据模型
逻辑数据模型之层次数据模型、网状数据模型和关系数据模型
上一篇文章简单介绍了概念数据模型、逻辑数据模型、物理数据模型的基本概念、特性以及三者所对应的数据库的开发阶段。现在针对逻辑数据模型中所用到的三种数据模型---层次数据模型、网状数据模型以及关系数据模型做一个相信的介绍与对比分析。
一、层次数据模型
定义:层次数据模型是用树状<层次>结构来表示实体类型和实体间联系的数据模型。(来自百度百科)
其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录类型的各个字段对应实体的各个属性。各个记录类型及其字段都必须记录。
特征:树的性质决定了树状数据模型的特征
1. 整个模型中有且仅有一个节点没有父节点,其余的节点必须有且仅有一个父节点,但是所有的节点都可以不存在子节点;
2. 所有的子节点不能脱离父节点而单独存在,也就是说如果要删除父节点,那么父节点下面的所有子节点都要同时删除,但是可以单独删除一些叶子节点;
3. 每个记录类型有且仅有一条从父节点通向自身的路径;
实例:
如图1,以学校某个系的组织结构为例,说明层次数据模型的结构。
1. 记录类型系是根节点,其属性为系编号和系名;
2. 记录类型教研室和学生分别构成了记录类型系的子节点,教研室的属性有教研室编号和教研室姓名,学生的属性分别是学号、姓名和成绩;
3. 记录类型教师是教研室这一实体的子节点,其属性由教师的编号,教师的姓名,教师的研究方向。
优点:
1. 层次数据模型的结构简单、清晰、明朗,很容易看到各个实体之间的联系;
2. 操作层次数据类型的数据库语句比较简单,只需要几条语句就可以完成数据库的操作;(百度百科)
3. 查询效率较高,在层次数据模型中,节点的有向边表示了节点之间的联系,在DBMS中如果有向边借助指针实现,那么依据路径很容易找到待查的记录;
4. 层次数据模型提供了较好的数据完整性支持,正如上所说,如果要删除父节点,那么其下的所有子节点都要同时删除;如图1,如果想要删除教研室,则其下的所有教师都要删除;
缺点:
1. 层次数据模型只能表示实体之间的1:n的关系,不能表示m:n的复杂关系,因此现实世界中的很多模型不能通过该模型方便的表示;
2. 查询节点的时候必须知道其双亲节点的,因此限制了对数据库存取路径的控制;
图 1. 院系人员组成结构图
二、网状数据模型
定义:用有向图表示实体和实体之间的联系的数据结构模型称为网状数据模型。
逻辑数据模型之层次数据模型、网状数据模型和关系数据模型