一、两大类数据模型
1、概念模型
也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
2、逻辑模型和物理模型
- 逻辑模型主要包括网状模型、层次模型,关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模用于DBMS实现。
- 物理模型是对数据最底层的抽象、描述数据模型在系统内部的表示方法和存取方法,在磁盘或磁带上的存储方式和存取方法。
二、概念模型
1、用途
- 概念模型用于信息世界的建模
- 是现实世界到机器世界的一个中间层次
- 是数据库设计的有力工具
- 数据库设计人员和用户之间进行交流的语言
2、对概念模型的基本要求
- 较强的语义表达能力简单清晰
- 易于用户理解
3、信息世界中的基本概念
- 实体—客观存在,并可相互区别的事物成为实体可以是具体的人,事物或抽象的概念
- 属性—实体所具有的某一特性称为属性,一个实体可以由若干个属性来刻画
- 码—唯一标识实体的属性,即称为码
- 实体型—用实体名及其属性名集合来抽象和刻画同类实体称为实体型
- 实体集—同一类型实体的集合,称为实体集
- 联系
- 现实世界中,事物内部以及事物之间的联系,在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系
- 实体内部的联系通常是指组成实体的各属性之间的联系
- 实体之间的联系通常是指不同实体机之间的联系
- 实体之间的联系有一对一、一对多、多对多等多种类型
4、概念模型的一种表示方法:实体-联系方法(Entity-Relationship Approach)
- 用E-R图来描述现实世界的概念模型
- E-R方法也称为E-R模型
三、数据模型的组成要素
1、数据结构
- 数据模型的数据结构—描述数据库的组成对象以及对象之间的联系
- 描述的内容—与对象的类型、内容、性质有关;与对象之间联系有关
- 数据结构是对系统静态特性的描述
2、数据操作
- 数据操作
- 对数据库中各种对象的实力允许执行的操作的集合包括操作及有关的操作规则
- 操作数据操作的类型
- 查询
- 更新(包括插入、删除、修改)
- 数据模型对操作的定义
- 操作的确切含义
- 操作符号
- 操作规则(如优先级)
- 实现操作的语言
- 数据操作是对系统动态特性的描述
3.数据的完整性约束条件
- 数据的完整性约束条件
- 一组完整性规则的集合
- 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则
- 用以限定符合数据模型的数据库状态以及状态的变化以保证数据的正确、有效和相容
- 数据模型对完整性约束条件的定义
- 反应和规定必须遵守的基本的、通用的、完整性约束条件
- 提供定义完整性约束条件的机制以反映具体应用所涉及的数据必须遵守的特定的语义约束条件
四、最常用的数据模型
- 层次模型
- 网状模型
- 关系模型
- 面向对象数据模型
- 对象关系数据模型
- 半结构化数据模型
五、层次模型
- 层次模型数数据库系统中最早出现的数据模型
- 层次数据库系统的典型代表是IBM公司的IMS的数据库管理系统
- 层次模型用树形结构来表示各类实体以及实体间的联系
1、层次模型
满足下面两个条件的基本层次联系的集合为层次模型
- 有且只有一个结点没有双亲结点,这个结构称为根节点
- 根以外的其他结点有且只有一个双亲节点
2、层次模型中的几个术语
- 根节点
- 双亲结点
- 兄弟结点
- 叶结点
3、层次模型的特点
- 结点的双亲是唯一的
- 只能直接处理一对多的实体联系
- 每个记录类型可以定义一个排序字段,也称为码字段
- 任何记录值只有按其路径查看时,才能显出它的全部意义
- 没有一个子女记录值能够脱离双亲记录值而独立存在
4、层次模型的数据操纵
- 查询
- 插入
- 删除
- 更新
5、层次模型的完整性约束条件
- 无相应的双亲结点值就不能插入子女结点值
- 如果删除双亲结点值,则相应的子女结点值也被同时删除
- 更新操作时,应更新所有相应记录,以保证数据的一致性
6、优点
- 层次模型的数据结构比较简单清晰
- 查询效率高,性能优于关系模型,不低于网状模型
- 层次数据模型提供了良好的完整性支持
7、缺点
- 结点之间的多对多联系表示不自然
- 对插入和删除操作的限制多,应用程序的编写比较复杂
- 查询子女结点必须通过双亲结点
- 层次命令趋于程序化
六、网状模型
- 网状数据库系统采用网状模型作为数据的组织方式
- 典型代表是DBTG系统:亦称CODASYL系统,20世纪70年代由DBTG提出的一个系统方案
- 实际系统
- Culinet Software公司的IDMS
- Univac公司的DMS1100
- Honeywell公司的IDS/2
- HP公司的IMAGE
1、网状模型的数据结构
- 网状模型—满足下面两个条件的基本层次联系的集合
- 允许一个以上的结点无双亲
- 一个结点可以有多于一个的双亲
- 表示方法(与层次模型相同)
- 实体型—用记录类型描述,每个结点表示一个记录类型(实体)
- 属性—用字段描述,每个记录类型可包含若干个字段
- 联系—用结点之间的连线表示记录类型(实体)之间的一对多的父子关系
- 网状模型与层次模型的区别
- 网状模型允许多个结点没有双亲结点
- 网状模型允许结点有多个双亲结点
- 网状模型允许两个结点之间有多种联系(复合联系)
- 网状模型可以更直接地描述现实世界
- 层次模型实际上是网状模型的一个特例
- 多对多联系在网状模型中的表示
- 用网状模型间接表示多对多联系
- 方法—将多对多联系直接分解成一对多联系
2、网状模型的操纵与完整性约束
网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束
- 码:唯一表示记录的数据项的集合
- 一个联系中双亲记录与子女记录之间是一对多联系
- 支持双亲记录和子女记录之间某些约束关系
3、网状模型的优点
- 能够更为直接地描述现实世界,如一个结点可以有多个双亲
- 具有良好的性能,存取率较高
4、网状模型的缺点
- 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
- DDL、DML语言复杂,用户不容易使用
- 记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节
七、关系模型
- 关系数据库系统采用关系模型作为数据的组织方式
- 1970年美国IBM公司San Jose研究室的研究院E.F.Codd首次提出数据库系统的关系模型
- 计算机厂商新推出的数据库管理系统几乎都支持关系模型
1、关系模型的数据结构
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成
- 关系—一个关系对应通常说的一张表
- 元组—表中的一行即为一个元组
- 属性—表中的一列即为一个属性,给每个属性起一个名称即属性名
- 主码—也称码键。表中的某个属性组,它可以唯一确定一个元组
- 域—是一组具有相同数据类型的值得集合、属性的取值范围来自某个域
- 分量—元组中的一个属性值
- 关系模式—对关系的描述:关系名(属性1,属性2,...,属性n)
关系必须是规范化的,满足一定的规范条件
2、关系模型的操纵与完整性约束
数据操作是集合操作,操作对象和操作结果都是关系
- 查询
- 插入
- 删除
- 更新
存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”
关系的完整性约束条件
- 实体完整性
- 参照完整性
- 用户定义的完整性
3、关系模型的优点
- 建立在严格的数学概念的基础上
- 概念单一
- 实体和各类联系都用关系来表示
- 对数据的检索结果也是关系
- 关系模型的存取路径对用户透明
- 具有更高的数据独立性,更好的安全性保密性
- 简化了程序员的工作和数据库开发建立的工作
4、关系模型的缺点
- 存取路径对用户透明,查询效率往往不如格式化数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度