数据库系统概论中国人民大学MOOC第一章数据库系统知识点总结(2)

1.2.3数据模型的组成要素
数据模型是严格定义的一组概念的集合
精确地描述了系统地静态特性,动态特性和完整性约束条件(Integerity Constraints)
数据模型有三部分组成
1.数据结构–描述系统地静态特性
2.数据操作–描述系统的动态特性
3.完整性约束
1.数据结构–对系统的静态特性的描述
刻画数据模型性质的重要方面
数据结构的类型来命名数据模型
层次结构–层次模型
网状结构–网状模型
关系结构–关系模型
描述数据库的组成对象—对象的类型,内容,性质
描述对象之间的联系
2.数据操作
数据操作
对数据库中的各种对象的实例允许执行的操作的集合
包括操作以及有关的操作规则
数据操作的类型
查询
更新(包括插入,删除,修改)
数据操作语言
定义数据操作的确切含义,符号,优先级别
实现数据操作的语言
查询语言–Query Language
更新语言–Insert ,Delete Update
数据模型对操作的定义
操作的确切定义
操作符好
操作规则(比如优先级)
实现操作的语言
数据操作是对系统动态特性的描述
3.数据的完整性约束条件
一组完整性规则的集合
完整性规则:给定的数据模型中数据以及联系所具有的制约和依存规则。
用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确,有效,相容。
数据模型对完整性约束条件的定义
反映和规定必须遵守的基本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。
提供定义的完整性约束条件机制,以反映具体应用所设计的数据必须遵守的特定的语义约束条件。
E-R图(续)
联系
联系本身:
用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)

在这里插入图片描述联系的表示方法示例
在这里插入图片描述联系的属性:
联系本身也是一种实体型,也 可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来 在这里插入图片描述六、一个实例
用E-R图表示某个工厂物资管理的概念模型
实体
仓库: 仓库号、面积、电话号码
零件 :零件号、名称、规格、单价、描述
供应商:供应商号、姓名、地址、电话号码、帐号
项目:项目号、预算、开工日期
职工:职工号、姓名、年龄、职称
实体之间的联系如下:
(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系
(3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。
(4)供应商、项目和零件三者之间具有多对多的联系

在这里插入图片描述 1.2.4 最常用的数据模型
非关系模型
层次模型(Hierarchical Model)
网状模型(Network Model)
关系模型(Relational Model)
面向对象模型(Object Oriented Model)
对象关系模型(Object Relational Model)
格式化模型中的数据结构的单位:基本层次联系
层次模型
网状模型
这两者都是格式化模型
关系模型
面向对象数据模型
对象关系数据模型
半结构化数据模型如XML
半结构化数据模型,图模型
1.2.5 层次模型
层次模型用树形结构来表示各类实体以及实体之间的联系
层次模型是数据库系统中最早出现的数据模型
层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统
一、 层次数据模型的数据结构
层次模型
满足下面两个条件的基本层次联系的集合为层次模型

  1. 有且只有一个结点没有双亲结点,这个结点称为根结点
  2. 根以外的其它结点有且只有一个双亲结点
    层次模型中的几个术语
    根结点,双亲结点,兄弟结点,叶结点
    在这里插入图片描述
    表示方法
    实体型:用记录类型描述,每一个结点表示一个记录类型(实体)
    属性:用字段描述,每一个记录类型可以包含若干个字段
    联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子联系。

层次模型的特点:
结点的双亲是唯一的
只能直接处理一对多的实体联系
每个记录类型可以定义一个排序字段,也称为码字段
任何记录值只有按其路径查看时,才能显出它的全部意义
没有一个子女记录值能够脱离双亲记录值而独立存在

在这里插入图片描述在这里插入图片描述二、多对多联系在层次模型中的表示
多对多联系在层次模型中的表示
用层次模型间接表示多对多联系
方法
将多对多联系分解成一对多联系
分解方法
冗余结点法
虚拟结点法
三、层次模型的数据操纵与完整性约束
层次模型的数据操纵
查询
插入
删除
更新
层次模型的完整性约束条件
无相应的双亲结点值就不能插入子女结点值
如果删除双亲结点值,则相应的子女结点值也被同时删除
更新操作时,应更新所有相应记录,以保证数据的一致性
四、层次数据模型的存储结构
邻接法
按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序

在这里插入图片描述链接法
用指引来反映数据之间的层次联系
子女-兄弟链接法
层次序列链接法

在这里插入图片描述在这里插入图片描述五、层次模型的优缺点
优点:
层次模型的数据结构比较简单清晰
查询效率较高,性能优于关系模型,不低于网状模型
层次数据模型提供了良好的完整性支持
缺点
结点之间的多对多的联系表示不自然
对插入和删除操作的限制多,应用程序的编写比较复杂
查询子女接待你必须通过双亲结点
层次数据库的命令趋于程序化
1.2.6 网状模型
网状数据库系统采用网状模型作为数据的组织方式
典型代表是DBTG系统:
亦称CODASYL系统
70年代由DBTG提出的一个系统方案
奠定了数据库系统的基本概念、方法和技术
实际系统
Cullinet Software Inc.公司的 IDMS
Univac公司的 DMS1100
Honeywell公司的IDS/2
HP公司的IMAGE

1.网状数据模型的数据结构
网状模型
满足下面两个条件的基本层次联系的集合:

  1. 允许一个以上的结点无双亲;
  2. 一个结点可以有多于一个的双亲。

表示方法(与层次数据模型相同)
实体型:用记录类型描述
每个结点表示一个记录类型(实体)
属性:用字段描述
每个记录类型可包含若干个字段
联系:用结点之间的连线表示记录类型(实体)之
间的一对多的父子联系
网状模型与层次模型的区别
网状模型允许多个结点没有双亲结点
网状模型允许结点有多个双亲结点
网状模型允许两个结点之间有多种联系(复合联系)
网状模型可以更直接地去描述现实世界
层次模型实际上是网状模型的一个特例

网状模型中子女结点与双亲结点的联系可以不唯一
要为每个联系命名,并指出与该联系有关的双亲记录和子女记录
在这里插入图片描述在这里插入图片描述
允许多个结点没有双亲结点
允许一个结点有多个双亲结点
允许两个结点之间有多种联系
要为每一个联系命名,并指出与该联系有关的双亲的记录和子女的记录

多对多联系在网状模型中的表示
用网状模型间接表示多对多联系
方法:
将多对多联系直接分解成一对多联系

扫描二维码关注公众号,回复: 11321459 查看本文章

例如:一个学生可以选修若干门课程,某一课程可以被多个学生选修,学生与课程之间是多对多联系

引进一个学生选课的联结记录,由3个数据项组成
学号
课程号
成绩
表示某个学生选修某一门课程及其成绩

在这里插入图片描述网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束
码:唯一标识记录的数据项的集合
一个联系中双亲记录与子女记录之间是一对多联系
支持双亲记录和子女记录之间某些约束条件

三、网状数据模型的存储结构
关键
实现记录之间的联系
常用方法
单向链接
双向链接
环状链接
向首链接

在这里插入图片描述四、网状数据模型的优缺点
优点
能够更为直接地描述现实世界,如一个结点可以有多个双亲
具有良好的性能,存取效率较高

缺点
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
DDL、DML语言复杂,用户不容易使用
2.网状模型的数据操纵与完整性约束
导航式的查询语言和增删改操作语言
完整性约束条件不严格
允许插入尚未确定的双亲结点值的子女结点值
允许只删除双亲结点值
实际的网状数据库系统提供了一定的完整性约束
支持码的概念:唯一的标识记录的数据项的集合,取唯一的值
保证了一个联系中的双亲记录和子女记录之间是一对多联系
可以定义双亲记录和子女记录之间某些约束条件
属籍类别:要求双亲记录存在才能插入子女记录,双亲记录删除的时候也连通删除

猜你喜欢

转载自blog.csdn.net/weixin_43428283/article/details/106839619