关系数据库设计理论
关系模式设计
R(U,D,DOM,F)
R:关系名
U:组成该关系的属性名集合
D:属性的域
DOM:属性向域的映像
F:属性间数据的依赖关系
1.完整性约束的表现形式
限定属性取值范围,定义属性值间的相互关联
2.数据依赖·
数据内在性质,属性间联系的抽象,关系内部属性与属性的约束,语义的体现
3.数据依赖的类型
函数依赖FD,多值依赖WVD
关系模式
R(U,D,DOM,F) --------> R(U,F)
Student<U,F>
U = {Sno,Sdept,Mname,Cname,Grade}
F={Sno—>Sdept, Sdept—>Mname, (Sno,Cname)—>Grade}
数据的函数依赖
1.函数依赖
函数依赖:
读者编号—>姓名,图书编号—> 书名
(读者编号,图书编号)——> 借书日期
学号 ——> 姓名
学号 ——> 系别
学号 ——> 图书证号
系别 ——> 系主任
2.平凡函数依赖与非平凡函数依赖
X——>Y
(1) Y不包含于X,非平凡
(2) Y包含于X,平凡
SC(Sno,Cno,Grade)
非平凡:(Sno, Cno)——> Grade
平凡:(Sno,Cno)——> Sno
3.完全函数依赖与部分函数依赖
X ——> Y
完全:对于X的任意一个真子集X', X'无法得到Y
部分:存在X', X' ——> Y
SC(Sno,Cno,Sname,Grade)
(Sno,Cno)——>Grade 完全依赖
(Sno,Cno)——>Sname 部分依赖 /* 因为Sno——>Sname成立 */
4.传递函数依赖
X—>Y,Y—>Z, 则X—>Z
5.逻辑蕴含
F ===> X—>Y
6.闭包
F是函数依赖集,被F逻辑蕴含的函数依赖的全体构成的集合,成为函数依赖集的闭包F+
F+={X——>Y | F ===> X—>Y}
Armstrong公理
(1) 自反律
Y是X子集,X——>Y
(2) 增广律
X——>Y,则ZX——>ZY
(3) 传递律
X——>Y, Y——>Z,则X—>Y
公理的推论
(1)合并
X——>Y, X——>Z,则X—>YZ
(2)分解
X—>YZ,则X——>Y, X——>Z
(3)伪传递
X——>Y,WY——>Z,则 WX——>Z
候选码
关系R(U),若K—>U,并且是完全函数依赖,则K是R的候选码
主属性:包含在任何一个候选码中的属性
非主属性:不包含在任何码中的属性
全码:整个属性组是码,称为全码
闭包
关系数据库模式规范化理论
范式:符合某一种级别的关系模式的集合
规范化:低一级通过模式分解转换为若干个高一级范式
1. 1NF
最基本的范式,所有属性不可分
每一列只能有一个数据
2. 2NF
在1NF基础上,消除非主属性对于主属性的部分函数依赖
eg:学号->姓名,身份证号->姓名,则 姓名部分依赖学号+身份证号
3. 3NF
在2NF基础上消除传递函数依赖
消除了数据冗余,更新异常,插入异常,删除异常
4. BCNF
消除主属性对主键的部分与传递依赖
5. 4NF
消除表中的多值依赖
关系模式分解算法
分解不仅具有无损连接性,还要保持函数依赖
先分解,再自然连接,若结果与原来一致,则无损