数据库作业-作业6 函数依赖
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.要建立关于系、学生、班级、研究会等信息的一个关系数据库。规定:一个系有若干专业、每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,一个系只有一个系名,一个系名也只给一个系用。每个学生可参加若干研究会,每个研究会有若干学生。
学生:学号、姓名、出生年月、系名、班号、宿舍区。
班级:班号、专业名、系名、人数、入校年份。
系:系号、系名、系办公室地点、人数。
研究会:研究会名、成立年份、地点、人数。
学生参加某研究会,有一个入会年份。
试给出上述数据库的关系模式;写出每个关系的基本的函数依赖集;并指出是否存在传递函数依赖;对于函数依赖左部是多属性的情况,讨论其函数依赖是完全函数依赖还是部分函数依赖。
解:
(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)每个关系模式的最小函数依赖集如下:
学生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之间存在着传递函数依赖。
班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:
Class→Pname,Class→Cnum,Class→Cyear,Pname→Dept.
由于Class→Pname,Pname→Class,Pname→Dept
所以C1ass与Dept之间存在着传递函数依赖
系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:
DeptDno,DnoDept,DnoOffice,DnoDnum
根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。
会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:
MnameMyear,MnameMaddr,MnameMnum
该模式不存在传递依赖
2.设一个教学关系为(教师号,姓名,课程号,课程名,课程学分,专业号,专业名,教学等级分),假定每个教师有一个唯一的教师号,每门课程有一个唯一的课程号,每个专业有一个唯一的专业号,每个教师号对应一个姓名,每个课程号对应一个课程名和一个课程学分,每个专业号对应一个专业名,教学等级分是根据某个教师给某个专业上某门课程的教学评价效果而得到的分数,每个教师可以给不同的专业上不同的课程,请写出存在的函数依赖。解:
教师号→姓名
课程号→课程名
课程号→课程学分
专业号→专业名
(教师号,专业号,课程号)→教学等级分
3.假设某商业集团数据库中有关系模式R(商店编号,商品编号,库存量,部门编号,负责人),若规定:每个商店能销售多种商品(每种商品有一个编号);商店的每种商品只在一个部门销售;每个商店的每个部门只有一个负责人;每个商店的每种商品只有一个库存数量;请写出关系R的基本函数依赖。
解:
(商店编号,商品编号)→部门编号
(商店编号,部门编号)→负责人
(商店编号,商品编号)→数量