关系模式R(U,D,DOM,F)
在此将关系模式看成一个三元组:
R<U,F>
当且仅当U上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系
定义: 数据依赖是一个关系内部属性与属性之间的一种约束关系。
⯈ 通过属性间值的相等与否体现出来的数据间相互联系
⯈ 是现实世界属性间相互联系的抽象
⯈ 是数据内在的性质
⯈ 是语义的体现
类型:
函数依赖
多值依赖
函数依赖
函数依赖普遍存在于现实生活中,比如:
描述一个学生关系,有学号、姓名、系名等属性。 ⯈ 一个学号只对应一个学生, ⯈ 一个学生只在一个系学习。 学号确定后,学生姓名与系名就确定了。 Sname=f(Sno),Sdept=f(Sno) Sno—>Sname,Sno->Sdept
关系模式中可能存在的问题:
(1)数据冗余
(2)更新异常
(3)插入异常
(4)删除异常
定义:
设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是平凡的函数依赖
若X→Y,则X称为这个函数依赖的决定因素
在R(U)中,
如果X→Y,并且对于X的任何一个真子集X’, 都有 X’ ↛ Y, 则称Y对X完全函数依赖,记作X → Y。
若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X → Y。
在R(U)中,如果X→Y(Y⊈X),Y↛X,Y→Z,Z⊈Y, 则称Z对X传递函数依赖,记为:X → Z
候选码: 设K为R<U,F>中的属性或属性组合,若K → U,则K称为R的一个候选码
超码: 如果U部分函数依赖于K,即K → U,则K称为超码
主码: 若关系模式R有多个候选码,则选定其中的一个做为主码
主属性: 包含在任意一个候选码上的属性称为主属性
非主属性: 不包含在任何候选码中的属性称为非主属性。
全码: 整个属性组都是码
外部码: 关系模式 R中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
各种范式之间的关系:
定义: 若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF
当一个关系模式R不属于2NF,会产生的一些问题:
(1)插入异常
(2)删除异常
(3)修改复杂
可以将其分解为相互关联的多个关系模式解决该问题。
定义: 若关系模式R∈1NF,并且每一个非主设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z (Y⊇ Z), 使得X→Y,Y→Z成立,Y ↛ X不成立,则称R<U,F> ∈ 3NF。
定义: 设关系模式R<U,F>∈1NF,若X →Y且Y ⊆ X时X必含有码,则R<U,F>∈BCNF。
简单判定方法:在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF
定义: 设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
例如:
设学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。 每个教员可以讲授多门课程,每种参考书可以供多门课程使用。 关系模式Teaching(C,T,B) ⯈ 课程C ⯈ 教师T ⯈ 参考书B Teaching具有唯一候选码(C,T,B), 即全码。Teaching∈BCNF 对于C的每一个值,T有一组值与之对应,而不论B取何值。 因此T多值依赖于C,即C→→T。
平凡多值依赖与非平凡的多值依赖: 若X→→Y,而Z=Ф,则称X→→Y为平凡的多值依赖,否则称X→→Y为非平凡的多值依赖。
定义: 关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。
定义: 闭包(记作X+ )就是由一个属性直接或间接推导出的所有属性的集合。
根据给定的关系和函数依赖集将属性分为4类:
⯈ L类 仅出现在函数依赖左边的属性
⯈ R类 仅出现在函数依赖右边的属性
⯈ N类 在函数依赖左右两边均未出现的属性
⯈ LR类 在函数依赖左右两边均出现的属性
定理1
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选码的成员。
推论1
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,且X+包含了R的全部属性,则X必为R的唯一候选码
定理2
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是R类属性,则X不在任何候选码中。
定理3
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是N类属性,则X必包含在R的任一候选码中。
推论2
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类和N类组成的属性集,且X+包含了R的全部属性;则X是R的唯一候选码。
例如: