概念
- 数据模型是对现实世界数据特征的抽象,用来描述数据、组织数据和对数据进行操作的。
- 数据模型是现实世界的模拟。
1.2.1 两类数据模型
- 数据模型要求:
- 比较真实模拟现实世界
- 容易为人理解
- 便于在计算机上实现
- 根据模型应用目的分为两类
- 第一类:概念模型(信息模型)
- 按用户的观点来对数据和信息建模,主要用于数据库设计。
- 第二类:逻辑模型和物理模型
- 逻辑模型包括:(按计算机系统的观点对数据建模,主要用于对DBMS的实现)
- 层次模型Hierarchical Model
- 网状模型Network Model
- 关系模型Relational Model
- 面向对象模型Object Oriented Model
- 对象关系模型Object Relational Model
- 物理模型:对数据最低层的抽象,描述数据在系统内部的表示方法和存取方法,程序员要了解和选择物理模型,用户不用考虑。物理模型的实现是DBMS的任务。
- 逻辑模型包括:(按计算机系统的观点对数据建模,主要用于对DBMS的实现)
- 数据模型是数据库系统的核心和基础。所有的DBMS软件都要基于某种数据模型。因此,目的就是建立数据模型。
信息世界 | 现实世界→概念模型 | 程序设计人员 |
---|---|---|
机器世界 | 概念模型→DBMS支持的数据模型 | DBMS完成 |
1.2.2 数据模型的组成要素
静态性、动态性、完整性约束条件。
- 数据结构
- 描述数据库的组成对象以及对象间的联系。
- 一类是与对象的类型、内容、性质有关的。
- 一类是与数据之间的联系有关的对象。
- 数据结构是刻画数据模型性质最重要的。
- 数据结构是所描述的对象类型的集合,市对系统静态性的描述。
- 数据操作
- 对数据库中各种对象的实例允许执行的操作的集合。
- 查询和更新(插入、删除、修改)两大操作。
- 数据操作是对系统动态性的描述。
- 数据的完整性约束条件
- 一组完整性规则。
- 完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则。
- 完整性约束条件的描述。
1.2.3 概念模型
- 概念模型是现实世界到机器世界的中间层次。
1.2.3.1 信息世界的基本概念
- 实体Entity
- 客观存在并可相互区别的事物。
- 可以是具体的,也可以是抽象的概念或联系。
- 属性Attribute
- 实体所具有的某一特性。
- 一个实体可以由若干属性刻画。
- 码Key
- 唯一标识实体的属性集。
- 域Domain
- 一组具有相同数据类型的值的集合。
- 属性的取值范围来自某个域。
- 实体型Entity Type
- 具有相同属性的实体有相同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体。
- 例如:学生(学号,性别,姓名)
- 实体集Entity Set
- 同一类型实体的集合。
- 例如:全体学生就是一个实体集。
- 联系Relationship
- 实体(型)内部的联系和实体(型)之间的联系。前者指实体的各属性之间的联系,后者指不同实体集的联系。
1.2.3.2 两个实体型的联系
- 一对一联系(1:1)
- 一对多联系(1:n)
- 多对对联系(m:n)
1.2.3.3两个以上的实体型之间的联系
- 同上
1.2.3.4 单个实体型内的联系
- 同一个实体集内的各实体之间也存在同上的联系。
1.2.3.5 概念模型的一种表示方法:实体——联系方法 E-R图
- 实体型:用矩形表示,写明实体名
- 属性:椭圆,写明属性名
- 联系:菱形,写明联系名,著明联系的类型
1.2.4 常用的数据模型
逻辑数据模型:
- 层次模型
- 网状模型
- 关系模型
- 面向对象模型
- 对象关系模型
- 前两个称为格式化模型,逐渐被关系模型取代。
1.2.5 层次模型
- 最早的
- 树结构
1.2.5.1 层次数据模型的数据结构
- 定义:
- 有且只有一个节点没有双亲节点,称为根节点。
- 根意外的其他节点有且只有一个双亲节点
- 可以直接表示一对多联系
- 节点即记录类型
- 存储结构:
- 存储数据、联系
- 邻接法和链接法
- 优缺点
- 优点:
- 数据结构简单清晰
- 查询效率高
- 完整性支持
- 缺点:
- 现实世界很多是多对多的
- 查询子女节点必须通过双亲节点
- 程序化
- 优点:
1.2.6 网状模型
可以刻画非层次关系
- 定义:允许一个以上节点无双亲;一个节点可以有多于一个的双亲。
- 优缺点:
- 优点:
- 更为直观反映现实世界
- 存储性能高
- 缺点:结构复杂
- 优点:
1.2.7 关系模型
1.2.7.1 数据结构
二维表
- 数据结构
- 关系:一张表
- 元组:表中的一行
- 属性:表中的一列
- 码:表中某个属性组,可以唯一确定一个元组
- 域:属性的取值范围
- 分量:元组中的一个属性值
- 关系模式:对关系的描述,关系名(属性1,属性2……)
- 要求:规范式,每一个分量不可细分。
- 完整性约束条件:
- 实体完整性
- 参照完整性
- 用户定义完整性
- 存储结构:表,查询效率不高