数据库1_2——数据模型
数据库1_2——数据模型
数据模型
-
数据模型是对现实世界数据特征的抽象。
-
数据模型应满足三方面要求
a. (贴切性)能比较真实地模拟现实世界
b. (易懂性)容易为人所理解
c.(可实现性)便于在计算机上实现 -
数据模型是数据库系统的核心和基础
2.1 两类数据模型
(1) 概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
(2) 逻辑模型和物理模型
- 逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。
- 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
(3)客观对象的抽象过程——两步抽象
-
现实世界中的客观对象抽象为概念模型,由数据库设计人员完成
-
把概念模型转换为数据模型:
概念模型转成逻辑模型由数据库设计人员和数据库设计工具协助完成;
逻辑模型转成物理模型由数据库管理系统完成
2.2 概念模型
概念模型是数据库设计人员与用户之间交流的语言,要求有较强的语义表达能力,简单清晰,便于用户理解
2.2.1 信息世界的基本概念
- 实体(Entity):客观存在并可相互区别的事物称为实体。
例如一个学生,一间房子。 - 属性(Ettribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
例如学生的性别 - 码:唯一标识实体的属性集称为码。
例如学生的学号,既是属性,又是码 - 实体型:用实体名及其属性名集合来抽象和刻画同类实体。
比如:学生(学号,姓名,性别) - 实体集:同一类型实体的集合称为实体集。
比如学生实体集 - 联系(Relationship) :
a. 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
b. 实体内部的联系通常是指组成实体的各属性之间的联系
c. 实体之间的联系通常是指不同实体集之间的联系
d. 实体之间的联系有一对一、一对多和多对多等多种类型
2.2.2 实体-联系法(Entity-Relationship Approach)
- 用E-R图来描述现实世界的概念模型
- E-R方法也称为E-R模型
2.3 数据模型的组成要素
数据结构
-
作用:描述数据库的组成对象,以及对象之间的联系
-
描述的内容
- 与对象的类型、内容、性质有关
- 与数据之间联系有关
- 数据结构是对系统静态特性的描述
数据操作
- 数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则
- 数据操作的类型:查询,更新(包括插入、删除、修改)
- 数据模型对操作的定义
- 操作的确切含义
- 操作符号
- 操作规则(如优先级)
- 实现操作的语言
- 数据操作是对系统动态特性的描述
数据完整性约束条件
相当于垃圾过滤条件
- 数据的完整性约束条件是一组完整性规则的集合
- 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则
- 用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容
- 数据模型对完整性约束条件的定义
- 反映和规定必须遵守的基本的通用的完整性约束条件。
- 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
2.4 常用的数据模型
- 层次模型(Hierarchical Model)
- 网状模型(Network Model)
- 关系模型(Relational Model))
- 面向对象数据模型(Object Oriented Data Model)
- 对象关系数据模型(Object Relational Data Model)
- 半结构化数据模型(Semistruture Data Model)
2.4.1 层次模型
层次模型用树形结构来表示各类实体以及实体间的联系
特点
- 结点的双亲是唯一的,只能直接处理一对多的实体联系
- 每个记录类型可以定义一个排序字段,也称为码字段
- 任何记录值只有按其路径查看时,才能显出它的全部意义
- 没有一个子女记录值能够脱离双亲记录值而独立存在
层次模型的数据操纵(树的相关操作)
查询,插入,删除,更新
层次模型的完整性约束条件
- 无相应的双亲结点值就不能插入子女结点值
- 如果删除双亲结点值,则相应的子女结点值也被同时删除
- 更新操作时,应更新所有相应记录,以保证数据的一致性
层次结构的优缺点
- 优点
- 层次模型的数据结构比较简单清晰
- 查询效率高,性能优于关系模型,不低于网状模型
- 层次数据模型提供了良好的完整性支持
- 缺点
- 结点之间的多对多联系表示不自然
- 对插入和删除操作的限制多,应用程序的编写比较复杂
- 查询子女结点必须通过双亲结点
- 层次命令趋于程序化
例子
2.4.2 网状模型(数据结构的“图”)
网状模型的数据结构
- 定义:满足下面两个条件的基本层次联系的集合:
- 允许一个以上的结点无双亲;
- 一个结点可以有多于一个的双亲
- 网状模型中子女结点与双亲结点的联系可以不唯一
要为每个联系命名,并指出与该联系有关的双亲记录和子女记录 - 多对多在网状模型中的表示
将多对多联系扥结成一对多
网状模型的操纵和完整性约束(不太清楚)
- 网状数据库系统(如DBTG)对数据操纵加
了一些限制,提供了一定的完整性约束
- 码:唯一标识记录的数据项的集合
- 一个联系中双亲记录与子女记录之间是一对多联系
- 支持双亲记录和子女记录之间某些约束条件
网状模型的优缺点
- 优点
- 能够更为直接地描述现实世界,如一个结点可以有多个双亲
- 具有良好的性能,存取效率较高
- 缺点
- 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
- DDL、DML语言复杂,用户不容易使用
- 记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节
与层次模型的区别与联系
- 网状模型允许多个结点没有双亲结点
- 网状模型允许结点有多个双亲结点
- 网状模型允许两个结点之间有多种联系(复合联系)
- 网状模型可以更直接地描述现实世界
- 层次模型实际上是网状模型的一个特例
2.4.3 关系模型
关系模型的数据结构
- 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
- 关系(Relation):一个关系对应通常说的一张表
- 元组(Tuple):表中的一行即为一个元组
- 属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
- 主码(Key):也称码键。表中的某个属性组,它可以唯一确定一个元组,比如学号
- 域(Domain):是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
- 分量:元组中的一个属性值。
- 关系模式:对关系的描述
- 关系名(属性1,属性2,…,属性n):学生(学号,姓名,年龄,性别,系名,年级)
学号 | 姓名 | 性别 |
---|---|---|
20190908 | 陈明 | 男 |
- 关系必须是规范化的,满足一定的规范条件
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表
关系模型的操纵和完整性约束
- 数据操作是集合操作,操作对象和操作结果都是关系(不是很能理解): 查询,插入, 删除 更新
- 存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”
- 关系的完整性约束条件
- 实体完整性
- 参照完整性
- 用户定义的完整性
关系模型的优缺点
- 优点
- 建立在严格的数学概念的基础上 (关系代数)
- 概念单一
a. 实体和各类联系都用关系来表示
b. 对数据的检索结果也是关系 - 关系模型的存取路径对用户透明(用户不需要关心,
像空气一样透明)
a. 具有更高的数据独立性,更好的安全保密性
b. 简化了程序员的工作和数据库开发建立的工作
- 缺点
- 存取路径对用户透明,查询效率往往不如格式化数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
本博客参考蔡老师上课的课件