数据库:第11周作业
2015-05-23 15:54
141 查看
数据库:第11周作业
目录
数据库第11周作业目录
第2题
第3题
第5题
第8题
作业内容:P75-2,3,5,8
第2题
现在要建立关于系、学生、班级、学会等信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一宿舍区,每个学生可参加若干学会,每个学会有若干学生。描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区。
描述班级的属性有:班号、专业名、系名、人数、入校年份。
描述系的属性有:系名、系号、系办公室地点、人数。
描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。
请写出关系模式;
写出每个关系模式的最小函数依赖集,指出是否存在传递依赖。在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖还是部分函数依赖。
指出各关系模式的候选码、外码,有没有全码。
答:
关系模式有:
学生(学号,姓名,出生日期,系名,班号,宿舍区)
班级(班号,专业名,系名,人数、入校年份)
系(系名,系号,系办公室地点,人数)
学会(学会名,成立年份,地点,人数)
学生-学会(学号,学会名,入会年份)
各关系模式的最小函数依赖集如下:
学生(学号,姓名,出生日期,系名,班号,宿舍区):
最小函数依赖集:
学号→姓名,学号→出生年月,学号→班号,班号→系名,系名→宿舍区。
存在传递依赖:
学号→系名,学号→宿舍区,班号→宿舍区。
班级(班号,专业名,系名,人数、入校年份):
最小函数依赖集:
班号→专业名,(专业名,入学年份)→班号,专业名→系名,班号→人数,班号→入学年份。
存在传递依赖:
班号→系名。
班号对(专业名,入学年份)是完全函数依赖。
系(系名,系号,系办公室地点,人数):
最小函数依赖集:
系名→系号,系号→系名,系号→系办公室地点,系号→人数。
不存在传递函数依赖。
学会(学会名,成立年份,地点,人数):
最小函数依赖集:
学会名→成立年份,学会名→地点,学会名→人数。
不存在传递函数依赖。
学生-学会(学号,学会名,入会年份)
最小函数依赖集:
(学号,学会名)→入会年份。
不存在传递函数依赖。
入会年份对(学号,学会名)是完全函数依赖。
各关系模式的候选码、外码、全码如下:
学生(学号,姓名,出生日期,系名,班号,宿舍区):
候选码:学号
外码:班号、系名
无全码
班级(班号,专业名,系名,人数、入校年份):
候选码:班号
外码:系名
无全码
系(系名,系号,系办公室地点,人数):
候选码:系号
无外码
无全码
学会(学会名,成立年份,地点,人数):
候选码:学会名
无外码
无全码
学生-学会(学号,学会名,入会年份)
候选码:(学号,学会名)
外码:学号,学会名
无全码
第3题
设关系模式R<A,B,C,D>,函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}。求出R的候选码。
求出F的最小函数依赖集。
将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性。
答:
R的候选码为:
BD
F的最小函数依赖集:
F={A→C,C→A,B→C,D→C}
求解过程:
首先将F中的函数依赖都分解为右部为单属性的函数依赖
F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}
判断A→C是否冗余:
设:G1={C→A,B→A,B→C,D→A,D→C,BD→A}
得(A)+G1=A
由于C不属于(A)+G1
故 A→C不冗余
同理得到C→A, B→C, D→C不冗余,而B→A, D→A, BD→A冗余。
将R分解为3NF:
τ={AC,BC,DC,BD}
第5题
设关系模式R(A,B,C,D,E,F),函数依赖集F={AB→E,BC→D,BE→C,CD→B,CE→AF,CF→BD,C→A,D→EF},求F的最小函数依赖集。答:
F的最小函数依赖集:
F={AB→E,BE→C,CE→F,CF→B,CF→D,C→A,D→E,D→F}
求解过程:
首先将F中的函数依赖都分解为右部为单属性的函数依赖:F={AB→E,BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F}
判断AB→E是否冗余:
设:G1={BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F}
得(AB)+G1=AB
由于E不属于(AB)+G1
故 AB→E不冗余;
判断BC→D是否冗余:
设:G2={AB→E,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F}
得(BC)+G2=BCAEFD
由于E属于(BC)+G2
故BC→D冗余;
其余同理,得:
BC→D,CD→B,CE→A冗余,其他不冗余。
第8题
设关系模式R(B,O,I,S,Q,D),函数依赖集F={S→D,I→S,IS→Q,B→Q}。找出R的主码。
把R分解为BCNF,且具有无损连接性。
答:
1. R的主码为:
I,B,O。
2.把R分解为BCNF,且具有无损连接性
由F={S→D,I→S,IS→Q,B→Q}
令ρ={B,O,I,S,Q,D}
1. 由于R的码为IBO,选择S→D分解。
得到ρ={S1,S2}
其中S1={S,D},F1={S→D};
S2={B,O,I,S,Q},F2={I→S,IS→Q,B→Q}
显然S2不服从BCNF,故继续分解;
2. 对S1分解,S2的码为IBO,选择 I→S继续分解。
得到ρ={S1,S2,S3}
其中:S3=IS,F3={I→S}, S4={B,O,I,Q}, F4={I→Q,B→Q}
S4仍不满足BCNF,继续分解。
3. 对S4分解。S4的码为IBO,选择I→Q进行分解。
得到:ρ={S1,S2,S3,S6}。
其中S5={I,Q}, F5={I→Q}, S6={B,I,O},F6=∅。
4. 最后得到:ρ={SD,IS,IQ,BIO}。
相关文章推荐
- 数据库第九章作业
- 使用SQL Server Management Studio 创建数据库备份作业
- 数据库上级作业3
- 数据库第七次作业 王小芬 2013212954 理学院
- sql 作业+游标 自动备份数据库
- 通过作业,定时同步两个数据库
- 数据库第五章作业
- 数据库第五章作业
- 数据库第二次作业
- 通过作业自动备份sql server 2005数据库
- 轻松精通数据库管理之道——运维巡检之六(作业运行情况)
- 数据库维护作业重建索引失败(因QUOTED_IDENTIFIER SET 选项的设置不正确 )
- [大冒险]数据库维护计划和作业删除异常
- SQL 中怎么查询数据库中具有的表、存储过程、试图数目、总触发器数、作业数
- 数据库作业之SQL语句实现简单查询功能
- 数据库上机作业2
- 数据库--sql作业,执行自动备份的存储过程
- 数据库:第7-8周作业
- 维护计划自动备份数据库作业执行失败,会自动生成abc82作业
- 第三次数据库作业