1. 数据库系统概论
1.2 数据模型
### 模型
- 对真实世界的合理简化和模仿
- 地图, 游戏, 手办, 乐高都是模型

#### 地图是一种模型

#### 乐高是一种模型

#### 设计原型图是一种模型

#### 游戏也是一种模型
### 数据模型
- 对现实世界数据和信息的抽象, 表示和处理
- 要能够比较真实地模拟现实世界
- 要容易被人理解
- 要便于在计算机上实现


### 模型的分类
- 根据模型应用的目的分类
- 概念模型 (信息模型): 按照用户的观点对数据和信息建模
- 逻辑模型: 按照计算机系统的观点对数据和信息建模

#### 数据模型
### 现实世界
### 信息世界
### 机器世界
### 信息世界的基本概念
- 实体 (entity): 客观存在并可以相互区别的事物
- 属性 (attribute): 实体具有的某一特性
- 码 (key): 唯一标识实体的属性集
- 域 (domain): 属性的取值范围称作该属性的域
- 实体型 (entity type): 用实体名及其属性名集合来抽象和刻画同类实体, 称为实体型
- 实体集 (entity set): 同型实体的集合称为实体集
- 联系 (relationship): 实体之间的相关, 或者组成实体的各属性之间的相关
### 联系的类型
- 一对一联系 (1:1)
- 一对多联系 (1:n)
- 多对多联系 (m:n)
### 实体-联系图 (E-R 图)
- 实体型: 用矩形表示, 矩形框内写明实体名
- 属性: 用椭圆形表示, 并用无向边将其与相应的实体连接起来
- 联系: 用菱形表示, 菱形框内写明联系名, 并用无向边分别与有关实体连接起来, 同时在无向边旁标上联系的类型 (1:1, 1:n 或 m:n)

#### E-R 图
### 模型的要素
- 数据结构
- 数据操作
- 完整性约束
### 数据结构
- 描述系统的静态特性
- 是所研究的对象类型的集合
- 例: 层次模型, 网络模型, 关系模型
### 数据操作
- 描述系统的动态特性
- 是对数据库中各种对象的实例允许执行的操作集合
- 例: 增删查改 (CRUD, Create Retrieve Update Delete)
### 完整性约束
- 是一组完整性规则的集合
- 给定的数据模型中数据及其联系所具有的制约和依存规则
- 例: 姓名不能为空, 性别只能是男或女
### 层次模型 (Hierarchical Model)
- 只有一个节点没有父节点, 这个节点叫做根节点
- 除根节点外, 每个节点都有且只有一个父节点

#### 层次模型 (Hierarchical Model)

#### 树状结构
### 数据结构 (HM)
- 每个节点表示一个记录类型, 每个记录类型可以包含若干个字段
### 操纵与完整性约束 (HM)
- 查询, 插入, 删除, 更新 (CRUD)
- 如果没有相应的父节点, 就不能插入子节点
- 如果删除父节点, 子节点也会相应被删除
- 更新时, 应更新所有记录, 避免数据不一致
### 优缺点 (HM)
- 优点: 易用, 性能高, 完整性支持良好
- 缺点: 不适合表示多对多联系, 对插入和删除操作的限制较多, 必须按顺序查找, 命令趋于程序化
### 网状模型 (Network Model)
- 允许多个节点没有父节点
- 允许节点有多个父节点
- 允许两个节点之间有多种联系

#### 网状模型 (Network Model)

#### 网络结构
### 数据结构 (NM)
- 每个节点表示一个记录类型, 每个记录类型可以包含若干个字段
### 操纵与完整性约束 (NM)
- 查询, 插入, 删除, 更新 (CRUD)
- 可以在没有相应的父节点的情况下, 插入子节点
- 可以单独删除父节点, 子节点不会被删除
- 更新时, 只更新指定记录即可
### 优缺点 (NM)
- 优点: 更好地描述现实世界, 性能良好
- 缺点: 数据操纵语言复杂, 数据独立性差
### 关系模型 (Relational Model)
- 由一张二维表构成
- 二维表由行和列构成

#### 关系模型 (Relational Model)

#### 关系表
### 数据结构 (RM)
- 关系: 整张二维表
- 元组: 表中的一行
- 属性: 表中的一列
- 主码: 可以唯一确定一个元组的属性组
- 域: 属性的取值范围
- 分量: 元组中的一个属性值
- 关系模式: 对关系的描述, 通常表示为**关系名 (属性 1, 属性 2, 属性 3 等等)**
### 操纵与完整性约束 (RM)
- 查询, 插入, 删除, 更新 (CRUD)
- 需要满足完整性约束条件
- 操纵的对象和结果都是关系, 而不是单条记录
- 存取路径对用户透明
### 存储结构 (RM)
- 表以文件形式存储
### 优缺点 (RM)
- 优点: 数学概念严格, 概念简单易懂, 数据独立性高, 安全性高
- 缺点: 查询效率较低

### 1.2 数据模型
- 什么是模型?
- 什么是数据模型?
- 数据模型由哪些要素组成?
- 对比层次数据模型, 网络数据模型和关系数据模型.
- 为什么常用的数据库采用关系模型?
----
[ 1.1 概述 ](dbds-1-1.html)
[| 练习 |](dbds-exec.html)
[ 1.3 数据库系统的结构 ](dbds-1-3.html)