【摘要】 目录
1.回顾
第一范式(1NF)
2.数据依赖
2.1 函数依赖
定义
平凡函数依赖和非平凡函数依赖
完全函数依赖和部分函数依赖
传递函数依赖
3.码
候选码
超码
主码
主属性 非主属性
全码
外部码 (外码)
4.范式
不同范式之间的关系
规范化
2NF
3NF
BCNF
多值依赖
平凡多值依赖和非平凡多值依赖 …
目录
1.回顾
关系模式 :由五部分组成,是一个五元组
R(U, D, DOM, F)
R是符号化的元组语义
U为一组属性
D为属性组U中的属性所来自的域
DOM为属性到域的映射
F为属性组U上的一组数据依赖
D、DOM与模式设计关系不大 这里只用到三元组:R<U,F>
二维表每个分量必须是不可分开的数据项。
满足了这个条件的关系模式就属于:
第一范式(1NF)
2.数据依赖
是一个关系内部属性与属性之间的一种约束关系
-
通过属性间值的相等与否体现出来的数据间相互联系
-
是现实世界属性间相互联系的抽象
-
是数据内在的性质
-
是语义的体现
2.1 函数依赖
函数依赖普遍存在于现实生活中:
例如:描述一个学生关系,可以有学号(Sno)、姓名(Sname)、系名(Dept)等属性。
一个学号只对应一个学生,一个学生只在一个系中学习
“学号”确定后,学生姓名及所在系的值就被唯一确定。
即
注意:一个“好”的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少。应使用规范化理论改造关系模式来消除其中不合适的数据依赖
定义
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若
对于R(U)的任意一个可能的关系r,r 中不可能存在:
两个元组在X上的属性值相等,而在Y上的属性值不等,
则
称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。(X为这个函数依赖的决定因素)
平凡函数依赖和非平凡函数依赖
X→Y,但Y⊈X则称X→Y是非平凡的函数依赖。
X→Y,但Y⊆X 则称X→Y是平凡的函数依赖
注意:
平凡函数依赖都是必然成立的 不反应新的语义 若不特别声明,我们总是讨论非平凡函数依赖
若X→Y,Y→X,则记作X←→Y。
若Y不函数依赖于X,则记作X
Y。
完全函数依赖和部分函数依赖
在R(U)中,
如果X→Y,并且对于X的任何一个真子集X’, 都有 X’
Y, 则称Y对X完全函数依赖,记作
若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作
传递函数依赖
在R(U)中,如果X→Y(Y⊈X),Y
X,Y→Z,Z⊈Y, 则称Z对X传递函数依赖(transitive functional dependency)。记为:
注意:如果Y→X, 即X←→Y,则Z直接依赖于X,而不是传递函数依赖。
3.码
候选码
定义:设K为R<U,F>中的属性或属性组合。
若
则K称为R的一个候选码(Candidate Key)。
超码
定义:如果U部分函数依赖于K,即K → U,则K称为超码 。
注意:候选码是最小的超码,即K的任意真子集都不是候选码。
主码
定义:若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。
主属性 非主属性
包含在任何一个候选码中的属性 ,称为主属性
不包含在任何码中的属性称为非主属性
全码
整个属性组是码,称为全码(All-key)
[例6.3]
R(P,W,A)
P:演奏者 W:作品 A:听众
一个演奏者可以演奏多个作品
某一作品可被多个演奏者演奏
听众可以欣赏不同演奏者的不同作品
码为(P,W,A),即All-Key
外部码 (外码)
定义:
关系模式 R中属性或属性组X 并非 R的码,
但 X 是另一个关系模式的码,
则称 X 是R 的外部码(Foreign key)也称外码。
例:
SC(Sno,Cno,Grade)中,Sno不是码
Sno是 S(Sno,Sdept,Sage)的码,则Sno是SC的外码
主码与外码一起提供了表示关系间联系的手段
4.范式
不同范式之间的关系
各种范式之间存在联系:
某一关系模式R为第n范式,可简记为R∈nNF。
规范化
一个低一级范式的关系模式,通过 模式分解 可以转换为若干个高一级范式的关系模式的集合,这种过程就叫 规范化 。© 版权声明文章版权归作者所有,未经允许请勿转载。THE END