数据库系统概论第六章课后习题(部分)

数据库系统概论(第5版) 王珊 萨师煊 第6章课后习题

第6章 关系数据库理论

2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。

学生:学号、姓名、出生年月、系名、班号、宿舍区。
班级:班号、专业名、系名、人数、入校年份。
系:系名、系号、系办公地点、人数。
学会:学会名、成立年份、办公地点、人数。
语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?
答:
(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;无外部码;无全码

猜你喜欢

转载自blog.csdn.net/MrKingloveyou/article/details/125575336