资源描述
第7章
1、解释下列名词:
函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、侯选码、主码、1NF、2NF、3NF、BCNF、多值依赖、4NF、最小函数依赖集。
答:
函数依赖:设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。非平凡的函数依赖:X→ Y ,但 Y 不是 X 的子集,则称 X→ Y 是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。
在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X′,都有X′\→ Y,则称Y完全函数依赖(Full Functional Dependency)于X,记作X —→F Y。若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖(Partial Functional Dependency)于X,记作X —→P Y。
在关系模式R(U)中,如果X→Y,Y→Z,且Y\→X,则称Z传递函数依赖(Transitive Functional Dependency)于X,记作Z—→T X。
如果关系模式R中不包含多值属性(每个属性必须是不可分的数据项),则 R 满足第一范式(First Normal Form),记作1NF。
若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。R满足第二范式(Second Normal Form),记作2NF。
关系模式R(U,F)中若不存在这样的码X,属性组Y及非主属性Z(ZY)使得X→Y,Y→Z成立,Y→X,则称R(U,F)3NF。则R满足第三范式(Third Normal Form),记作3NF。
关系系模式R∈1NF,对任何非平凡的函数依赖X→Y(Y\ÍX),X均包含码,则R∈BCNF。
多值依赖:设有关系模式R(U),U是属性全集,X、Y、Z是U的子集,且Z = U-X-Y。如果对R(U)的任一关系r,给定一对(X, Z)值,都有一组Y值与之对应,这组Y值仅仅决定于X值而与Z值无关,则称Y多值依赖于X,或X多值决定Y,记作X→→Y。
第四范式:如果关系模式 R∈1NF,对于R 的每个非平凡的多值依赖X→→Y(Y 不包含在X 中),X 含有码,则R 满足第四范式(Forth Normal Form),记作R∈4NF。
如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。
① F中的任何一个函数依赖的右部仅含有一个属性;
② F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价;
③ F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。
2、已知关系模式R(U,F),其中U={A,B,C,D,E},F={AB→C,B→D,C→E,EC→B,AC→B },求(AB)F+。
答:
(1) 令X={AB},X(0)=AB
(2)在F中寻找尚未使用过的左边是AB的子集的函数依赖,结果是: B→D所以 X(1)=X(0)D=ABCD, 显然 X(1)≠X(0).
(3) 在F中寻找尚未使用过的左边是ABCD的子集的函数依赖, 结果是: C→E;所以 X(2)=X(1)I=ABCDE。虽然X(2)≠X(1),但F中寻找尚未使用过函数依赖的左边已经没有X(2)的子集,所以不必再计算下去,即(AB)+= ABCDE
3.关系模式R(A,B,C,D),函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}。
1) 求出R的候选码;
2) 求出F的最小函数依赖集;
3) 将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性
答:
1) R的候选码为BD;
2) 将F中的函数依赖都分解为右部为单属性的函数依赖.;
F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}
3) 去掉F中冗余的函数依赖.
判断A→C是否冗余.
设:G1={C→A,B→A,B→C,D→A,D→C,BD→A},得(A)G1+=A
∵C不属于(A)G1+ ∴ A→C不冗余
判断C→A是否冗余.
设:G2={A→C,B→A,B→C,D→A,D→C,BD→A},得(A)G2+=C
∵A不属于(C)G1+ ∴ C→A不冗余
判断B→A是否冗余.
设:G3={A→C,C→A,B→C,D→A,D→C,BD→A},得(B)G3+=BCA
∵A属于(B)G3+ ∴ B→A冗余
判断B→C是否冗余.
设:G4={A→C,C→A,D→A,D→C,BD→A},得(B)G4+=B
∵C不属于(B)G4+ ∴ B→C不冗余
判断D→A是否冗余.
设:G5={A→C,C→A,B→C,D→C,BD→A},得(D)G5+=DCA
∵A不属于(D)G5+ ∴ D→A冗余
判断A→C是否冗余.
设:G6={A→C,C→A,B→C,BD→A},得(D)G6+=D
∵C不属于(D)G6+ ∴ D→C不冗余
判断BD→A是否冗余.
设:G7={A→C,C→A,B→C,D→C},得(BD)G7+=BDCA
∵A不属于(BD)G7+ ∴ BD→A冗余
F={A→C,C→A,B→C,D→C}
由于各函数依赖左部都为单属性,故:
Fm={A→C,C→A,B→C,D→C}
(3)τ={AC,BC,DC,BD}
4、指出下列关系模式是第几范式,并说明理由。
① R ( X,Y,Z ) F = { XY→Z }。
答:XY→Z是完全函数依赖,XY是码,是BCNF
② R ( X,Y,Z ) F = { Y→Z,XZ→Y }。
答:是3NF。候选关键字为XY和XZ,所有属性都是主属性,不存在非主属性对候选关键字的传递依抄赖。
③ R ( X,Y,Z ) F = { Y→Z,Y→X,X→YZ }。
答:是BCNF。候选关键字为X和Y,所有属性都是主属性,决定方都有候选关键字。
④ R ( X,Y,Z ) F = { X→Y,Y→Z }。
答:是2NF。候选关键字为X,X→Y,Y→Z是传递函数依赖。
5、现要建立关于系、学生、班级、学会等信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。
描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区;
描述班级的属性有:班号、专业名、系名、人数、入校年份;
描述系的属性有:系名、系号、系办公室地点、人数;
描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。
⑴ 请写出关系模式。
⑵ 写出每个关系模式的最小函数依赖集,指出是否存在传递依赖,在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分依赖。
⑶ 指出各个关系模式的候选关键字、外部关键字,有没有全关键字。
答:
(1)关系模式如下:
学生: S(Sno, Sname, Sbirth, Dept,Class, Rno)
班级: C(Class,Pname, Dept, Cnum, Cyear)
系: D(Dept , Dno, Office , Dnum)
学会: M(Mname , Myear , Maddr , Mnum)
(2)每个关系模式的最小函数依赖集如下:
A、学生 S (Sno,Sname, Sbirth ,Dept , Class, Rno) 的最小函数依赖集如 下:Sno→ Sname, Sno→ Sbirth, Sno→ Class,Class→Dept, DEPT→ Rno
传递依赖如下:
由于 Sno→Dept,而 Dept→ Sno , Dept→Rno(宿舍区)
所以 Sno 与 Rno 之间存在着传递函数依赖。
由于 Class→ Dept,Dept → Class,Dept→ Rno
所以 Class 与 Rno 之间存在着传递函数依赖。
由于 Sno→Class,Class→ Sno,Class→Dept
所以 Sno 与 Dept 之间存在着传递函数依赖。
B、班级 C(Class, Pname, Dept, Cnum, Cyear)的最小函数依赖集如下 : Class→Pname, Class→ Cnum, Class→ Cyear,Pname→ Dept.
由于 Class→ Pname,Pname→ Class, Pname→ Dept
所以 C1ass 与 Dept 之间存在着传递函数依赖。
C、系 D(Dept ,Dno ,Office , Dnum) 的最小函数依赖集如下:
Dept→ Dno, Dno→ Dept, Dno→ Office , Dno→ Dnum
根据上述函数依赖可知, Dept 与 Office , Dept 与 Dnum 之间不存在传递依赖。 D、学会 M(Mname , Myear , Maddr , Mnum) 的最小函数依赖集如下: Mname→Myear , Mname→ Maddr , Mname→ Mnum
该模式不存在传递依赖。
(3)各关系模式的候选码、外部码,全码如下:
A、学生 S 候选码: Sno;外部码: Dept、 Class;无全码
B、班级 C 候选码: Class;外部码: Dept;无全码
C、系 D 候选码: Dept 或 Dno;无外部码;无全码
D、学会 M 候选码: Mname;无外部码;无全码
展开阅读全文