一 关系数据理论
参考:
1、 知乎:如何解释关系数据库的第一第二第三范式?
1 关系数据理论基础
- 关系模式会存在的问题:
一个好的关系模式应该避免以下问题(模式中的某些数据依赖是引起异常的原因,做法是对一个关系模式分解为多个关系模式,消除数据依赖)。
- 数据冗余太大。
- 更新异常。
- 插入异常。
- 删除异常。
- 数据依赖概念:
数据依赖:
数据依赖是完整性约束的一种表现形式;是现实世界属性间相互联系的抽象;通过属性值是否相等来体现数据间的相互关系。/ 某个数据确定(唯一确定)另一个数据。函数依赖:
某一组数据确定(唯一确定)另一组数据。
- 关系模式的形式化定义:
R(U,D,DOM,F)
- R:关系名。
- U:该关系的属性集合。
- D:属性组 U 中属性所来自的域。所有满足条件的该属性的集合。
- DOM:属性向域的映像集合。具体的一个值。
- F:属性间数据的依赖关系集合。
- 关系模式的简化定义:
R<U,F>
- 影响数据库模式设计的主要是 U、F。
- 当且仅当 U 上的一个关系 r 满足 F 时,r 称为关系模式 R<U,F> 的一个关系。
2 函数依赖与范式
(1)函数依赖
函数依赖概念:
属性 X,属性 Y。/ X 函数确定 Y,或 Y 函数依赖于 X。X 称为这个函数依赖的决定属性组。平凡函数依赖、非平凡函数依赖:
完全函数依赖、部分函数依赖:
传递函数依赖:
(2)码
用函数依赖定义码。
- 码、超码、候选码、主码:
- 主属性、非主属性:
- 外码:
(3)范式
概念:
符合某一级别的关系模式的集合。详解:
1 NF:
一个关系模式 R 中,所有属性都是不可分的基本数据项。2 NF:
满足 1 NF,每个非主属性完全依赖于 R 的码。/ 采用投影分解法,将部分依赖的码拆开,分解为两个模式:3 NF:
满足 2 NF;R 中的每个非主属性既不部分函数依赖于候选码,也不传递依赖于候选码。/ 采用投影分解法,将一个 2 NF 关系分解为多个 3 NF 的关系。BCNF:
没有任何属性(上面三个范式是消除非主属性对码的…)对码的部分函数依赖、传递函数依赖。是修正的 3 NF,在函数依赖范畴里,BCNF 达到了最高的规范化程度。/ 采用投影分解法:4 NF:
满足 3 NF,消除非平凡且函数依赖的多值依赖。。5 NF:
略。
- 小结:
3 数据依赖的公理系统(研究生阶段)
基本概念:
Armstrong 公理系统:
闭包:
4 模式分解(研究生阶段)
模式分解的三个定义:
无损连结性、保持函数依赖性:
模式分解算法:
二 数据库设计
1 概述
数据库设计的步骤:
需求分析 -> 概念结构设计 -> 逻辑结构设计 -> 物理结构设计 -> 数据库实施 -> 数据库运行和维护数据库设计的具体步骤:
数据库设计各阶段的描述:
数据库的各级模式:
2 需求分析
用户对数据库的要求:
信息要求、处理要求、安全性与完整性要求。数据字典:
概念:
数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。组成:
数据项:不可再分的数据单位。/ 数据结构:数据间的关系。/ 数据流:数据结构在系统内传输的路径。/ 数据存储:数据结构停留或保存的地方。/ 处理过程:具体处理逻辑一般用判定表、判定树来描述。
3 概念结构设计
- 概念结构设计的四种方法:
- 自顶向下:从全局到局部,逐步细化。
- 自底向上:从局部到全部,集成起来。
- 逐步扩张:由最核心的概念向外扩展。
- 混合策略:先自顶向下,后自底向上。
- 数据抽象:
- 分类:定义某一类概念。
- 聚集:定义某一类型的组成成分。
- 概括:定义类型间的子类型关系(继承性)。
- 局部视图设计:
从多层次(模块)的数据流中选择一个层次,设计 E-R 图;然后再将各个 E-R 图集成;最后进行优化。
4 逻辑结构设计
- 将 E-R 图向关系模型转换
- 数据模型优化
- 设计用户子模式
5 物理结构设计
三种常用存取方法:
- 索引:建立索引。
- 聚簇:相同值的元组集中存放在连续的物理块上(聚簇)。
- HASH(散列):HASH 方式存储。
6 数据库实施
- 数据载入
- 应用程序调试
7 数据库运行和维护
- 实际运行应用程序,测试对数据库的各种操作。
- 对数据库的转储和恢复、数据库安全性与完整性、性能监督分析和改造、重组织与重构。