任务二 数据模型
一、数据模型的组成要素
1. 数据模型的定义
- 现实世界特征的模拟和抽象
- 数据对象及其相互关系的描述
- 严格定义的一组概念的集合
2. 三大组成要素
| 要素 | 描述 | 作用/内容 |
|---|---|---|
| 数据结构 | 描述数据库组成对象及对象间联系 | • 数据模型最重要的方面• 决定数据模型的命名(如层次、网状、关系模型) |
| 数据操作 | 对数据库对象实例允许的操作集合 | • 查询和更新(插入、删除、修改)两大类• 包括操作含义、规则、实现语言 |
| 完整性约束 | 保证数据正确有效的规则集合 | • 数据及其联系的固有制约规则• 限定数据库状态及状态变化 |
二、概念模型(信息模型)
1. 概念模型定位
- 目的:信息世界的建模
- 视角:按用户观点对数据和信息建模
- 作用:数据库设计工具,设计人员与用户的交流语言
- 别名:信息模型
2. 信息世界基本概念
| 概念 | 定义 | 示例 |
|---|---|---|
| 实体 | 客观存在并可相互区别的事物 | 学生、课程、球赛 |
| 属性 | 实体具有的某一特性 | 学号、姓名、性别 |
| 码 | 唯一标识实体的属性集 | 学号是学生实体的码 |
| 实体型 | 实体名+属性名集合(描述同类实体) | 学生(学号,姓名,性别,出生年月) |
| 实体集 | 同一类型实体的集合 | 全体学生 |
| 联系 | 实体(型)内部及之间的联系 | 三种类型(见下) |
3. 实体间联系的三种类型
| 类型 | 定义 | 示例 |
|---|---|---|
| 一对一 (1:1) | A中一个实体 ↔ B中至多一个实体 | 学生 ↔ 学号 |
| 一对多 (1:n) | A中一个实体 ↔ B中n个实体B中一个实体 ↔ A中至多一个实体 | 班级 ↔ 学生 |
| 多对多 (m:n) | A中每个实体 ↔ B中n个实体B中每个实体 ↔ A中m个实体 | 课程 ↔ 学生 |
三、逻辑模型
1. 逻辑模型定位
- 与前序关系:概念模型的进一步细化和划分
- 视角:按计算机系统观点对数据建模
- 作用:架起用户与系统的桥梁
- 目标:详细描述数据,但不涉及具体物理实现
2. 主要采用的模型类型
- 层次模型
- 网状模型
- 关系模型 ← 最常用(对应关系型数据库,如MySQL)
3. 逻辑模型内容
- 所有实体及其属性
- 实体间关系
- 每个实体的主键
- 实体的外键(用于维护数据完整性)
四、物理模型
1. 物理模型定位
- 与前序关系:概念模型和逻辑模型在计算机中的具体表示
- 视角:最底层抽象,面向计算机系统
- 实现者:DBMS(大部分工作自动完成)
- 用户关注度:设计人员需了解,最终用户不必考虑
2. 物理模型特征
- 描述数据在物理存储介质上的具体组织
- 与具体DBMS、操作系统、硬件相关
- 描述数据在系统内部的表示方式、存储和存取方法
3. 主要工作
- 将逻辑模型中的实体、属性、联系转换为物理模型元素
- 定义所有的表和列
- 定义外键以维持表间关联
五、层次模型
1. 历史地位
- 数据库系统最早出现的数据模型
- 典型代表:IBM公司的IMS系统(1968年推出)
2. 结构特点
- 树形结构表示实体及联系
- 像一棵倒置的树,包含结点:
- 根结点:有且仅有一个,无双亲
- 其他结点:有且仅有一个双亲
- 兄弟结点:同一双亲的结点
- 叶结点:没有子结点的结点
- 适用场景:自然层次关系(行政机构、家族关系)
六、网状模型
1. 历史背景
- 典型代表:DBTG系统(CODASYL系统)
- 20世纪70年代提出
2. 结构特点
- 比层次模型更具普遍性
- 结构特点:
- 可以有一个以上无双亲的结点
- 至少有一个结点有一个以上的双亲
- 结点之间平等,不分层次
- 与层次模型关系:层次模型是网状模型的一个特例
- 适用场景:非树型结构、复杂关系(教师-学生-课程联系)
七、关系模型
1. 重要地位
- 最重要的一种数据模型
- 建立在严格的数学概念基础上
- 关系数据库系统采用此模型组织数据
2. 关系模型术语(核心八概念)
| 术语 | 定义 | 对应概念 |
|---|---|---|
| 关系 | 一个关系对应一张表 | 表 |
| 元组 | 表中的一行(从第二行开始) | 行/记录 |
| 属性 | 表中的一列,有属性名 | 列/字段 |
| 域 | 属性的取值范围 | 值域(如成绩0-100,性别男/女) |
| 关键字 | 能唯一标识实体的属性或属性集 | 如学号(姓名一般不作为关键字) |
| 主关键字 | 从多个关键字中选定一个作为主键 | 主键 |
| 外部关键字 | 非本实体主键,但是另一实体的主键 | 外键 |
| 候选关键字 | 能唯一标识表中元组的属性 | 候选键/候选码 |
知识体系总览
数据模型
├─ 组成三要素:数据结构 + 数据操作 + 完整性约束
├─ 三种抽象层次
│ ├─ 概念模型:用户视角,设计工具(实体、属性、联系)
│ ├─ 逻辑模型:系统视角,实现基础(层次/网状/关系)
│ └─ 物理模型:存储视角,DBMS实现
├─ 三种逻辑模型
│ ├─ 层次模型:树形结构(IMS系统)
│ ├─ 网状模型:普遍结构(DBTG系统)
│ └─ 关系模型:二维表(最常用,MySQL等)
└─ 关系模型术语:关系/元组/属性/域/关键字/主键/外键/候选键
关键对比
- 概念vs逻辑vs物理:用户视角→系统视角→存储视角
- 层次vs网状vs关系:树形→网络→表格
- 关系模型八术语:从表结构到键约束的完整体系
任务二构建了数据模型的完整理论框架,从抽象层次到具体实现,是理解数据库设计原理的核心内容。