2、建立一个关于系、学生、班级、学会等诸信息的关系数据库。
描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区;
描述班级的属性有:班号、专业名、系名、人数、入校年份;
描述系的属性有:系名、系号、系办公室地点、人数;
描述学会的属性有:学会名、成立年份、地点、人数。
有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况,讨论函数依赖是完全函数依赖还是部分函数依赖。
指出各关系的候选码、外部码,并说明是否全码存在。
--学生:
S(Sno,Sn,Sb,Dn,Cno,Sa)
--班级:
C(Cno,Cs,Dn,Cnum,Cdate)
--系:
D(Dno,Dn,da,Dnum)
--学会:
P(Pn,Date1,Pa,Pnum)
--学生-学会
SP(Sno,Pno,Date2)
每个关系模式的函数依赖如下:
S:Sno → \to →Sn,Sno → \to →Sb,Sno → \to →Cno,Cno → \to →Dn,Dn → \to →Sa
C:Cno → \to →Cs,Cno → \to →Cnum,Cno → \to →Cdate,Cs → \to →Dn,(Cs,Cdate) → \to →Cno
D:Dno → \to →Dn,Dn → \to →Dno,Dno → \to →Da,Dno → \to →Dnum
P:Pn → \to →Date1,Pn → \to →Pa,Pn → \to →Pnum
SP:(Sno,Pn) → \to →Date2
S中的函数依赖:
∵ \because ∵Sno → \to →Cno,Cno → \to →Dn;Cno → \to →Dn,Dn → \to →Sa
∴ \therefore ∴Sno → \to →Dn;Cno → \to →Sa
C中的函数依赖:
∵ \because ∵Cno → \to →Cs,Cs → \to →Dn
∴ \therefore ∴Cno → \to →Dn
关系 | 候选码 | 外部码 | 全码 |
---|---|---|---|
S | Sno | Cno,Dn | 无 |
C | Cno,(Cs,Cdate) | Dn | 无 |
D | Dno,Dn | 无 | 无 |
P | Pn | 无 | 无 |
SP | (Sno,Pn) | Sno,Pn | 无 |
6、有关系模式R(A, B,C, D. E),回答下面各个问题:
(1)若A是R的候选码,具有函数依赖BC-DE,那么在什么条件下R是BCNF?
当属性组BC包含码的时候,R为BCNF;
(2)如果存在函数依赖A→B, BC-D, DE-A,列出R的所有码。
候选码有:ACE、DEC、BCE;
(3)如果存在函数依赖A-B, BC-D, DEA, R属于3NF还是BCNF.
所有函数依赖的决定因素都不包含码,所以R不是BCNF,为3NF。
7、下面的结论哪些是正确的?哪些是错误的?对于错误的请给出一个反例说明之。
(1)任何一个二目关系是属于3NF的。
√
(2)任何一个二目关系是属于BCNF的。
√
(3)任何一个二目关系是属于4NF的。
√
(4)当且仅当函数依赖A→B在R上成立,关系R(4, B, C)等于其投影R(A, B)和R2(A, C)的连接。
×(当A→B在R上成立的时候,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接。)
(5)若RA→R.B,R.B→R.C,则RA→R.C.
√
(6)若RA→R.B,,R.A→R.C,则R.A→R.(B , C);
√
(7)若R.B-+R.A,R.C+RA.则R.(B.C)→R.A.
√
(8)若R.(B, C)→R.A,则R.B→R.A, R.C→R.A。
×(关系模式SC(Sno,Cno,G),(Sno,Cno) → \to →G,但是Sno ↛ \nrightarrow ↛G,Cno ↛ \nrightarrow ↛G)。
8、证明:
(1)如果R是BCNF关系模式,则R是3NF关系模式,反之则不对:
设R∈BCNF并且R∉3NF。
根据定义得:
R中存在码X,属性组Y和非属性组Z,Y ↛ \nrightarrow ↛X,Z∉Y,使得X ↛ \nrightarrow ↛Y,Y→Z成立
因为Y→X,所以Y不是R的候选码;
因为R中存在函数依赖Y→Z,Z∉Y,而Y不包含码,所以R∉BCNF,与已知R∈BCNF矛盾,故假设不成立,所以:R∈3NF
(2)如果R是3NF关系模式,则R一定是2NF关系模式:
假设R∈3NF,R∉2NF。根据2NF定义得:
R中存在非主属性Z部分函数依赖于候选码X,即X → P \overset P\to →PZ
由部分函数依赖的定义:R中存在X的真子集X’⊂X,使得X’ → \to →Z成立
因为R中存在码X,属性组X’及非属性组Z,X ↛ \nrightarrow ↛X,Z∉X’,使得X→X’,X’→Z成立,所以R∉3NF,与已知矛盾,故假设不成立,所以:R∈2NF。