【摘要】 2、建立一个关于系、学生、班级、学会等诸信息的关系数据库。 描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区; 描述班级的属性有:班号、专业名、系名、人数、入校年份; 描述系的属性有:系名、系号、系办公室地点、人数; 描述学会的属性有:学会名、成立年份、地点、人数。 有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一…
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 | 无 |