系统架构师:数据库
1. 数据库设计四个阶段
- 需求分析
- 需求说明文档
- 数据字典
- 数据流程图
- 概念结构
- 逻辑结构
- 物理结构
2. 关系数据库六范式:
- 第一范式(1NF):表的每一列都是不可分割的原子数据项(所有属性不可再分)
- 第二范式(2NF):非码属性必须完全依赖于候选码(消除非主属性对主码的部分函数依赖)
- 单个属性的主键不可能有部分依赖
- 第三范式(3NF):任何非主属性不依赖于其他非主属性(消除传递依赖)
- 巴斯-科德范式(BCNF):任何主属性不能对主键子集依赖(消除主属性对主码子集的依赖)
- 第四范式(4NF):属性间不允许有非平凡且非函数依赖的多值依赖(非主属性不应该有多值,消除连接依赖)
- 第五范式(5NF):表必须可以分解为较小的表,除非那些表在逻辑上拥有与原始表相同的主键
3. 无损连接判定
分解后关系模式形如{ R1(U1,F1), R2(U2,F2) }
那么,判断 R1∩R2 是否能推出 R1-R2 or R2-R1
例如,U={A,B,C},F={A->B,B->C},ρ={R1(U1,F1), R2(U2,F2)},其中 U1={A,B} ,U2={A,C}
∵ R1∩R2=A,R1-R2=B,A->B
∴ 是无损连接
4. 求属性闭包
就是求由一个属性直接或间接推导出的属性的集合
5. 二阶段提交 Two-phaseCommit
目的:一致性
第一阶段:准备阶段(表决阶段)
第二阶段:提交阶段(执行阶段)