如果域(Domain)是不可分的,则称域是原子(Atomic)的
如果关系范式中的所有域都是原子的,则称该关系范式满足第一范式(1NF)
一般要求关系型数据库中的所有关系都满足第一范式
**示例:**不满足第一范式的关系设计
复合属性:可以进一步分解为更小组件的属性
多值属性:允许存放多个值的属性
复杂数据类型:在属性中存放对象
学生ID| 姓名 | 课程 1 | Tim,Cook | 数学,物理 2 | Steve,Jobs | 化学 // 姓名可以继续分为姓和名,故为复合属性 // 课程允许存放多个值,故为多值属性 // 它们都不满足第一范式
将不满足第一范式的关系转化为第一范式
定义
示例:
在下图的关系中, $A\rightarrow B$ 不成立, $B\rightarrow A$ 成立
函数依赖与键(Key)的关系
平凡的函数依赖
示例:
$A\rightarrow A$、 $AB\rightarrow A$ 都是平凡的函数依赖
定义:由函数依赖集 $F$ 可以逻辑推导出的所有函数依赖关系组成的集合 $F^+$ 称为函数依赖集 $F$ 的闭包;函数依赖集与其闭包是等价关系
示例:
Armstrong’s Axioms
以下三条定律为基本定律:
以下三条定律为导出定律,它们可以由基本定律导出:
示例:
求函数依赖集的闭包的算法
对于 $n$ 个属性的关系范式,其函数依赖集的闭包最多可能有 $2^n\times 2^n$ 个元素
定义:在函数依赖集 $F$ 下,由属性集 $a$ 能够决定的所有属性的集合 $a^+$称为属性集 $a$ 的闭包
求属性集的闭包的算法
使用属性集的闭包检查超键
<aside> 📌
可以使用画图的方法寻找超键 / 候选键
使用画图寻找超键 / 候选键时,一定要小心遗漏
示例:
$R=(A, B, C, D ,E)$
$F=\set{A\rightarrow B, BC\rightarrow D, D\rightarrow A}$
使用画图的方法寻找候选键时,一定不要遗漏 $E$,正确答案为 $ACE$, $BCE$, $CDE$
</aside>