目录
逻辑设计(表结构)
关系模式由五部分组成,是一个五元组:
R(U, D, DOM, F)
R是符号化的元组语义
U为一组属性
D为属性组U中的属性所来自的域
DOM为属性到域的映射
F为属性组U上的一组数据依赖
二维表每个分量必须是不可分开的数据项。
满足了这个条件的关系模式就属于: 第一范式(1NF)
数据依赖
是一个关系内部属性与属性之间的一种约束关系
通过属性间值的相等与否体现出来的数据间相互联系
是现实世界属性间相互联系的抽象
是数据内在的性质
是语义的体现
函数依赖
【定义6.1】
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。 若 对于R(U)的任意一个可能的关系r,r 中不可能存在: 两个元组在X上的属性值相等,而在Y上的属性值不等, 则 称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
X→Y,但Y⊈X则称X→Y是非平凡的函数依赖。
X→Y,但Y⊆X 则称X→Y是平凡的函数依赖。
【定义6.2 】
在R(U)中, 如果X→Y,并且对于X的任何一个真子集X’, 都有 X’ ↛ Y, 则称Y对X完全函数依赖,记作X →(F) Y。
若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X → (P)Y
【定义6.3 】
在R(U)中,如果X→Y(Y⊈X),Y↛X,Y→Z,Z⊈Y, 则称Z对X传递函数依赖。记为:X →(传递) Z。
注: 如果Y→X, 即X←→Y,则Z直接依赖于X,而不是传递函数依赖。
码
【定义6.4 】
设K为R<U,F>中的属性或属性组合。 若K →(F) U,则K称为R的一个候选码。
如果U部分函数依赖于K,即K → (P)U,则K称为超码 。
候选码是最小的超码,即K的任意真子集都不是候选码。
若关系模式R有多个候选码,则选定其中的一个做为主码
包含在任何一个候选码中的属性 ,称为主属性
不包含在任何码中的属性称为非主属性
整个属性组是码,称为全码(All-key)
【定义6.5 】
关系模式 R中属性或属性组X 并非 R的码, 但 X 是另一个关系模式的码, 则称 X 是R 的外部码,也称外码。
范式
是符合某一种级别的关系模式的集合。
种类:
各种范式之间存在联系:
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
2NF
【定义6.6】
若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF
3NF
【定义6.7】
设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z (Y⊇ Z), 使得X→Y,Y→Z成立,Y ↛ X不成立, 则称R<U,F> ∈ 3NF。
BCNF
【定义6.8】
设关系模式R<U,F>∈1NF,若X →Y且Y ⊆ X时X必含有码,则R<U,F>∈BCNF。 换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。
多值依赖
【定义6.9】
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
若X→→Y,而Z=Ф,则称X→→Y为平凡的多值依赖。
否则称X→→Y为非平凡的多值依赖。
4NF
【定义6.10】
关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。
如果一个关系模式是4NF, 则必为BCNF。
关系模式规范化的基本步骤
候选码的求解理论和算法
闭包(记作X+ )就是由一个属性直接或间接推导出的所有属性的集合。
对于给定的关系R(A1,A2,…An)和函数依赖集F,可将其属性分为4类:
L类 仅出现在函数依赖左部的属性。
R 类 仅出现在函数依赖右部的属性。
N 类 在函数依赖左右两边均未出现的属性。
LR类 在函数依赖左右两边均出现的属性。
定理: 对于给定的关系模式R及其函数依赖集F, 若X(X∈R)是L类属性,则X必为R的任一候选码的成员。
推论: 对于给定的关系模式R及其函数依赖集F, 若X(X∈R)是L类属性,且X+包含了R的全部属性; 则X必为R的唯一候选码。
定理:对于给定的关系模式R及其函数依赖集F, 若X(X∈R)是R类属性,则X不在任何候选码中。
定理:对于给定的关系模式R及其函数依赖集F, 若X(X∈R)是N类属性,则X必包含在R的任一候选码中。
推论:对于给定的关系模式R及其函数依赖集F, 若X(X∈R)是L类和N类组成的属性集,且X+包含了R的全部属性;则X是R的唯一候选码。
不能说规范化程度越高的关系模式就越好。