结构推理
建立一个关于系、学生、班级、学会等诸信息的关系数据库。
描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。
描述班级的属性有:班号、专业名、系名、人数、入校年份。
描述系的属性有:系名、系号、系办公室地点、人数。
描述学会的属性有:学会名、成立年份、地点、人数。
有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系的候选码、外部码,有没有全码存在?
【正确答案】关系模式: 学生 S(S#,SN,SB,DN,C#,SA)
班级 C(C#,CS,DN,CNUM,CDATE)
系 D(D#,DN,DA,DNUM)
学会 P(PN,DATE1,PA,PNUM)
学生 --学会SP(S#,PN,DATE2)
其中, S#—学号,SN—姓名,SB—出生年月,SA—宿舍区
C#—班号,CS—专业名,CNUM—班级人数,CDATE—入校年份
D#—系号,DN—系名,DA—系办公室地点,DNUM—系人数
PN—学会名,DATE1—成立年月,PA—地点,PNUM—学会人数,DATE2—入会年份
每个关系模式的极小函数依赖集:
S:S#→SN,S#→SB,S#→C#,C#→DN,DN→SA
C:C#→CS,C#→CNUM,C#→CDATE,CS→DN,(CS,CDATE)→C#
D:D#→DN,DN→D#,D#→DA,D#→DNUM
P:PN→DATE1,PN→PA,PN→PNUM
SP:(S#,PN)→DATE2
S中存在传递函数依赖: S#→DN, S#→SA, C#→SA
C中存在传递函数依赖:C#→DN
( S#,PN)→DATE2 和(CS,CDATE)→C# 均为SP中的函数依赖,是完全函数依赖
关系 候选码 外部码 全码
S S# C#,DN 无
C C#,(CS,CDATE) DN 无
D D#和DN 无 无
P PN 无 无
SP (S#,PN) S#,PN 无
【答案解析】