1.2.4 常用的数据模型 1.2.5 层次模型 1.2.6 网状模型

1.2.4 常用的数据模型

  • 层次模型(Hierarchical Model)
  • 网状模型(Network Model)
  • 关系模型(Relational Modea)
  • 面向对象数据模型(Object Oriented Data Modea)
  • 对象关系数据模型(Object Relational Data Modea)
  • 半结构化数据模型(Semi-struture Data Modea)----如XML
  • 非结构化数据模型、图模型……

格式化模型中数据结构单位:基本层次联系
在这里插入图片描述

1.2.5 层次模型

层次模型用属性结构来表示各类实体以及实体间的练习
表示方法
实体性:用记录类型描述
每个结点表示一个记录类型(实体)
属 性:用字段描述
每个记录类型可包含若干个字段
联 系:用结点之间的连线表示记录类型(实体)之间的一对多的父子练习
1.层次模型的定义
满足以下两个条件的基本层次联系的集合为层次模型

  • 有且只有一个结点没有双亲结点,这个结点称为根节点
  • 根节点意外的其他节点有且只有一个双亲节点
    一个层次模型的示例
    例子:
    这是一个型:
    教员学生层次数据库模型
    这是一个值:
    教员学生层次数据库的一个值
    2.层次模型的数据操纵和完整性约束
    层次模型的数据操纵
  • 查询
  • 插入
  • 删除
  • 更新
    层次模型的完整性约束条件
  • 无响应的双亲节点值就不能插入子女节点值
  • 如果删除双亲结点值,则相应的子女节点值也被同时删除
  • 更新操作时,应更新所有相应的记录,以保证数据的一致性
    2.层次模型的优缺点
  • 优点
    1. 层次模型的数据结构比较简单清晰
    2. 查询效率高,性能优于关系模型,不低于网状模型
    3. 层次数据模型提供了良好的完整性支持
  • 缺点
    1. 节点之间的多对多联系表示不自然
    2. 对插入和删除操作的限制多,应用程序的编写较为复杂
    3. 查询子女节点必须通过双亲结点
    4. 层次数据库的命令趋于程序化

1.2.6 网状模型

网状数据库系统采用网状结构来表示各类实体以及实体间的联系
表示方法(与层次数据模型相同)
实体性:用记录类型描述
每个结点表示一个记录类型(实体)
属 性:用字段描述
每个记录类型可包含若干个字段
联 系:用结点之间的连线表示记录类型(实体)之间的一对多的父子练习
1.网状模型的定义
满足以下两个条件的基本层次联系的集合:
1. 允许一个以上的节点无双亲;
2. 一个结点可以有多余一个的双亲。

网状模型的例子
多对多联系在网状模型中的表示
网状模型间接表示多对多联系
方法:
将多对多联系分解成一对多联系
学生/选课/课程的网状模型
如上例:
一个学生可以选修若干课程,某一课程也可以呗多个学生选修,学生与课程之间是多对多俩你想
引进一个学生选课的联结记录:
选课(学号,课程号,成绩)//某个学生修某一门课程及其成绩
2.网状模型的数据操纵和完整性约束

  • 导航式的查询语言和增删改查操作语言
  • 完整性约束条件不严格
    允许插入尚未确定双亲节点值的子女结点值
    允许值删除双亲节点值
    实际的网状数据库系统提供了一定的完整性约束
  • 支持码的概念:唯一标识记录的数据项的集合,取唯一的值;
  • 保证一个联系中双亲记录和子女记录之间是一对多联系;
  • 可以定义双亲记录和子女记录之间某些约束条件。
    例:“属籍类别”的概念
    要求双亲记录存在才能插入子女记录,双亲记录删除时也连同删除。


    选课记录就应该满足这种约束条件:
    学生选课记录值中学号必须是学生记录中某一存在的学生学号,
    课程号必须是课程记录中存在的某一门课程号
    在这里插入图片描述

2.层次模型的优缺点

  • 优点
    1. 能够更为直接描述现实世界,如一个结点可以有多个双亲;
    2. 具有良好的性能,存取效率较高。
  • 缺点
    1. 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于掌握;
    2. DDL、DML语言复杂,用户不容易使用;
    3. 记录之间联系是通过存取路径实现的,应用程序必须选择存取路径,加重了程序员的负担

上一篇:《数据库系统概论》
目    录:《数据库系统概论》
下一篇:1.2.4 常用的数据模型 1.2.5 层次模型 1.2.6 网状模型

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值