你的浏览器不支持本网站所要求的功能, 现在看到的是本网站简化版本.

为了获得最佳体验, 请使用最新的Chrome, Safari, Firefox 或 Edge 浏览器.

1. 数据库系统概论

1.2 数据模型

Powered by impress.js
Ver. 2408

### 模型 - 对真实世界的合理简化和模仿 - 地图, 游戏, 手办, 乐高都是模型
![model](img/c01/model0.jpg) #### 地图是一种模型
![model](img/c01/model1.jpeg) #### 乐高是一种模型
![model](img/c01/model2.jpg) #### 设计原型图是一种模型
![model](img/c01/model3.jpeg) #### 游戏也是一种模型
### 数据模型 - 对现实世界数据和信息的抽象, 表示和处理 - 要能够比较真实地模拟现实世界 - 要容易被人理解 - 要便于在计算机上实现
![data model](img/c01/data-model0.png)
![data model](img/c01/data-model1.png)
### 模型的分类 - 根据模型应用的目的分类 - 概念模型 (信息模型): 按照用户的观点对数据和信息建模 - 逻辑模型: 按照计算机系统的观点对数据和信息建模
![数据模型](img/c01/data-model.png) #### 数据模型
### 现实世界 ### 信息世界 ### 机器世界
### 信息世界的基本概念 - 实体 (entity): 客观存在并可以相互区别的事物 - 属性 (attribute): 实体具有的某一特性 - 码 (key): 唯一标识实体的属性集 - 域 (domain): 属性的取值范围称作该属性的域 - 实体型 (entity type): 用实体名及其属性名集合来抽象和刻画同类实体, 称为实体型 - 实体集 (entity set): 同型实体的集合称为实体集 - 联系 (relationship): 实体之间的相关, 或者组成实体的各属性之间的相关
### 联系的类型 - 一对一联系 (1:1) - 一对多联系 (1:n) - 多对多联系 (m:n)
### 实体-联系图 (E-R 图) - 实体型: 用矩形表示, 矩形框内写明实体名 - 属性: 用椭圆形表示, 并用无向边将其与相应的实体连接起来 - 联系: 用菱形表示, 菱形框内写明联系名, 并用无向边分别与有关实体连接起来, 同时在无向边旁标上联系的类型 (1:1, 1:n 或 m:n)
![ERD](img/c01/erd.png) #### E-R 图
### 模型的要素 - 数据结构 - 数据操作 - 完整性约束
### 数据结构 - 描述系统的静态特性 - 是所研究的对象类型的集合 - 例: 层次模型, 网络模型, 关系模型
### 数据操作 - 描述系统的动态特性 - 是对数据库中各种对象的实例允许执行的操作集合 - 例: 增删查改 (CRUD, Create Retrieve Update Delete)
### 完整性约束 - 是一组完整性规则的集合 - 给定的数据模型中数据及其联系所具有的制约和依存规则 - 例: 姓名不能为空, 性别只能是男或女
### 层次模型 (Hierarchical Model) - 只有一个节点没有父节点, 这个节点叫做根节点 - 除根节点外, 每个节点都有且只有一个父节点
![层次模型](img/c01/hieratchical.png) #### 层次模型 (Hierarchical Model)
![树状结构](img/c01/tree.png) #### 树状结构
### 数据结构 (HM) - 每个节点表示一个记录类型, 每个记录类型可以包含若干个字段
### 操纵与完整性约束 (HM) - 查询, 插入, 删除, 更新 (CRUD) - 如果没有相应的父节点, 就不能插入子节点 - 如果删除父节点, 子节点也会相应被删除 - 更新时, 应更新所有记录, 避免数据不一致
### 优缺点 (HM) - 优点: 易用, 性能高, 完整性支持良好 - 缺点: 不适合表示多对多联系, 对插入和删除操作的限制较多, 必须按顺序查找, 命令趋于程序化
### 网状模型 (Network Model) - 允许多个节点没有父节点 - 允许节点有多个父节点 - 允许两个节点之间有多种联系
![网状模型](img/c01/network.png) #### 网状模型 (Network Model)
![网状模型](img/c01/network.webp) #### 网络结构
### 数据结构 (NM) - 每个节点表示一个记录类型, 每个记录类型可以包含若干个字段
### 操纵与完整性约束 (NM) - 查询, 插入, 删除, 更新 (CRUD) - 可以在没有相应的父节点的情况下, 插入子节点 - 可以单独删除父节点, 子节点不会被删除 - 更新时, 只更新指定记录即可
### 优缺点 (NM) - 优点: 更好地描述现实世界, 性能良好 - 缺点: 数据操纵语言复杂, 数据独立性差
### 关系模型 (Relational Model) - 由一张二维表构成 - 二维表由行和列构成
![关系模型](img/c01/relational.png) #### 关系模型 (Relational Model)
![关系模型](img/c01/relation.png) #### 关系表
### 数据结构 (RM) - 关系: 整张二维表 - 元组: 表中的一行 - 属性: 表中的一列 - 主码: 可以唯一确定一个元组的属性组 - 域: 属性的取值范围 - 分量: 元组中的一个属性值 - 关系模式: 对关系的描述, 通常表示为**关系名 (属性 1, 属性 2, 属性 3 等等)**
### 操纵与完整性约束 (RM) - 查询, 插入, 删除, 更新 (CRUD) - 需要满足完整性约束条件 - 操纵的对象和结果都是关系, 而不是单条记录 - 存取路径对用户透明
### 存储结构 (RM) - 表以文件形式存储
### 优缺点 (RM) - 优点: 数学概念严格, 概念简单易懂, 数据独立性高, 安全性高 - 缺点: 查询效率较低
![DBDS 1.2 mindmap](img/c01/mindmap-1-2.png)
### 1.2 数据模型 - 什么是模型? - 什么是数据模型? - 数据模型由哪些要素组成? - 对比层次数据模型, 网络数据模型和关系数据模型. - 为什么常用的数据库采用关系模型? ---- [ 1.1 概述 ](dbds-1-1.html) [| 练习 |](dbds-exec.html) [ 1.3 数据库系统的结构 ](dbds-1-3.html)

黑公网安备23010302001726号   黑ICP备2024033110号-1