数据库原理(3)三大数据模型

层次数据模型

用树形或森林结构来表示实体及实体间联系的模型交层次数据模型.实体用树中的节点表示,实体间的联系(仅限于一对多)用树中的连线表示。

  • 层次模型是指☞满足下列条件的基本层次联系的集合。
    (1)有且仅有一个节点无父节点,此节点即是树根
    (2)根节点以外的其他节点有且仅有一个父节点

在这里插入图片描述
如图所示:(1)树根为工厂 (2)各层父子节点之间均为一对多。
一个工厂可以有多个分厂,一个分厂可以有多个车间,一个车间可以有多个班组。

层次数据模型的特征

  1. 层次模型中的层次树是有序树,即对于层次模型来说,都按从左到右的顺序规定了任一节点所有子树的先后次序。这也隐含了对层次型数据库存取路径的一种控制
  2. 树中实体间的联系是单向的,即由父节点指向子节点,而且一对父子结点间不村子啊多于一种的联系,即对树中任意一个节点,只有唯一的一条自根节点到达它的路径。
  3. 层次模型中的联系只能是父节点对子节点的一对多的关系,这也限制了层次数据模型对多对多联系的直接表达。
  4. 树节点中任何记录的任何属性均为不可再分的简单型数据,即具有原子性。

转换为层次树结构的方法

  1. 将多对多关系转换为层次结构
    由于再层次结构中的除根节点外,任意一个节点中的记录只能有父节点中的一个记录相对应,而一个节点中的一条记录可以有子结点中的多个记录相对应。解决多对多的问题就是利用两个一对多,例如学生和老师,他们是多对多的关系,第一个一对多以老师父节点,学生为子节点。第二个以学生为父节点,老师为子节点。这样就可以表达多对多的关系。
  2. 将非树的网状结构转换为层次结构
    (1)引入冗余节点
    即节点可以重复(重复即冗余),让所有的节点都出现在树型结构里边。先取无父结点的节点作为树的根,然后再找相应的子节点。
    在这里插入图片描述
    优点:结构清晰,允许节点存储位置的变动。
    缺点:多占用存储空间,维护数据一致性更困难。
    (2)引入虚拟节点
    其过程和冗余节点一样,只不过将遇到已出现过的节点不用副本代替,而是用一个虚拟节点代替,虚拟节点就是一个指针,指向所代替的节点。

网状数据模型

用网络结构表示实体类型及其实体之间联系的模型。顾名思义,一个事物和另外的几个都有联系,这样构成一张网状图。即只有一个节点无父节点,而且除根结点外所有其他节点有且仅有一个父节点,以及两个节点之间只有一种一对多联系关系等限制。通俗来讲就是所有节点不重复,直接与跟自己有关的相连。

  • 层次模型实际上是网状模型的一个特例,网状模型需满足下列条件
    (1)只有一个节点无父节点。
    (2)除根结点外所有其他节点有且仅有一个父节点。
    (3)两个节点之间只有一种一对多联系关系等限制。在这里插入图片描述

关系数据模型

简单的说就是用二维表格数据来表示实体和实体间的联系的模型叫做关系数据模型。
在这里插入图片描述

  • 关系模型中的一些术语
    (1)关系:一个关系对应通常说的一张表;
    (2)元组:表中的一行即为一个元组;
    (3)属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名;
    (4)码:也称为码键,表中的某个属性组,它可以唯一确定一个元组;
    (5)域:一组具有相同数据类型的值的集合。属性的取值范围来自某个域;
    (6)分量:元组中的一个属性值。
    (7)关系模式:对关系的描述,一搬表示为:关系名(属性1,属性2,…,属性n)

关系模型的特征

(1)关系是元组的集合,各个元组在关系中的顺序是无关紧要的。
(2)关系的每一属性都是不可再分的基本数据类型,即在关系的二维表中每行每列位置上的值都是原子值,而不能是集合元组或它们的组合。即满足第一范式
(3)允许属性值为空值、
(4)同一个关系任意两个元组(行)不允许全同,即若把关系作为元组集,则其中不能有相同的元组(行)。

三大数据模型的对比

  1. 关系数据模型
    优点:
    (1)可以简单灵活的表达各种实体及其之间的联系。
    (2)用户界面好,易用性最佳。
    (3)支持数据库重构。
    (4)具有严密的数学基础和操作的代数性质。
    (5)具有较高的数据独立性。
    (6)和一阶谓词逻辑在理论上密切相关。
    缺点:
    (1)运行效率不高。
    (2)不支持层次结构,因此不直接支持概括,聚合等概念的建模,不适于管理复杂对象,语义的建模能力也很弱。
  2. 层次数据模型
    优点:
    (1)能直接模拟现实世界中许多具有自然层次结构的应用。直接支持概括,聚合等概念的建模。
    (2)运行效率高。
    缺点:
    (1)用户界面不够友好。
    (2)不能直接表达多对多联系,而且对多对多联系的建模转换或导致物理存储上的冗余
    (3)数据独立性差
    (4)基本不具备操作代数基础和演绎功能
  3. 网状数据模型
    优点:
    (1)易表达多对多的联系关系。
    (2)具有一定的数据独立性和共享特性
    (3)运行效率高
    缺点:
    (1)用户界面不够友好
    (2)结构复杂
    (3)基本不具备操作代数基础和演绎功能
    (4)对于层次结构的表达不够自然直接。

猜你喜欢

转载自blog.csdn.net/qq1350975694/article/details/107179320
今日推荐