1、第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的任何一个
2、真子集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。 若R1N
3、F,且每一个非主属性完全函数依赖于码,则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值仅仅决定
4、于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
5、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
6、={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,
7、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
8、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
9、 ) 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、现要建立关于系、学生、班级、学会等信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍
10、区,每个学生可参加若干学会,每个学会有若干学生。 描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区; 描述班级的属性有:班号、专业名、系名、人数、入校年份; 描述系的属性有:系名、系号、系办公室地点、人数; 描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。 ⑴ 请写出关系模式。 ⑵ 写出每个关系模式的最小函数依赖集,指出是否存在传递依赖,在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分依赖。 ⑶ 指出各个关系模式的候选关键字、外部关键字,有没有全关键字。 答: (1)关系模式如下: 学生: S(Sno, Sname,
11、 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,而 D
12、ept→ 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→
13、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;无外部码;无全码
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818