文章目录
- 数据库设计
- 关系代数
- 规范化理论
- 求候选键
- 特殊函数依赖
- Armstrong公理
- 范式
- 无损分解
数据库设计
步骤 | 产出 | 说明 |
---|---|---|
1.根据数据要求和处理要求进行需求分析 | 数据流图、数据字典、需求说明书等 | 分析数据流向、数据详细含义等,分析具体需求 |
2.对现实世界进行抽象,进行概念结构设计 | ER模型 | 用于描述实体及各实体的联系 |
3.加入转换规则、规范化理论和DBMS特性等进行逻辑结构设计 | 关系模式 | 设计数据库的表结构 |
4.加入硬件特性、OS特性等进行物理设计 | - | 设计数据在物理上如何存储 |
关系代数
- 笛卡尔积:不要求同构,结果的列是二者之和(3+3=6),结果的行是二者的乘积(3*3=9)。
- 投影:在垂直方向上筛选特定列,表结构发生变化。
- 选择:水平方向上筛选特定行,表结构不变。
- 自然连接:不要求同构,结果的列是二者之和去重,结果的行要求所有同名属性列同时取值相等,图中式1是使用笛卡尔积->选择->投影的等价表达式。若实现相同运算,自然连接的性能稍优于笛卡尔积。
规范化理论
求候选键
关系模式R中包含两个元组,属性集合U和函数依赖集合F,记为R(U, F),将属性集合表示为节点,依赖表示为箭头,可将R转换为有向图。
先找两种节点:
- 只出现在左侧,从未出现在右侧的。必包含在候选键中。
- 只出现在右侧,从未出现在左侧的。必不包含在候选键中。
图中C只在右侧出现,故必不包含在候选键中。若只有A,可遍历到BC,完成,若只有B,可遍历到AC,完成。故候选键为A和B(注意不是AB)。
特殊函数依赖
- 部分函数依赖
候选键存在多个属性集合的情况下(图中候选键为AB),有属性集只依赖于候选键中的一部分(C只依赖于A)。 - 传递函数依赖
Armstrong公理
范式
无损分解
表格法判断:
先找同名属性列(学生关系的学号与成绩关系的学号),则可通过依赖(学号->姓名)将姓名还原到成绩关系,表格变为:
继续看下一个同名属性列(学生关系的姓名与成绩关系的姓名),没有依赖可用,继续找下一个(成绩关系的课程号和课程关系的课程号),可通过依赖(课程号->课程名)将课程名还原到成绩关系中,表格变为:
有一行全部为√,成功还原。