班级:0401304 姓名:赵楠灿 学号:2013211528
2.现在要建立关于系、学生、班级、学会等信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。
描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区。
描述班级的属性有:班号、专业名、系名、人数、入校年份。
描述系的属性有:系名、系号、系办公室地点、人数。
描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。
(1)请写出关系模式。
(2)写出每个关系模式的最小函数依赖集,指出是否存在传递依赖。在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖还是部分函数依赖。
解:
(1)学生(学号、姓名、出生日期、系名、班号、宿舍区),候选码:(学号、姓名),主码:(学号),外码:(班号)
班级(班号、专业名、系名、人数、入校年份),候选码:(班号),主码:(班号),外码:(系名)
系(系名、系号、系办公室地点、人数),候选码:(系名、系号),主码(系号)
学会(学会名、成立年份、地点、人数),候选码:(学会名),主码:(学会名)
学生-学会(学号、姓名、学会名、入会年份),候选码:(学号、学会名),主码:(学号),外码:(姓名)
(2)学生关系:{学号→姓名、学号→出生日期、学号→系名、学号→班号、学号→宿舍区}
班级关系:{班号→专业名、班号→系名、班号→人数、班号→入校年份}
系关系:{系名→系号、系名→系办公室地点、系名→人数}
学会关系:{学会名→成立年份、学会名→地点、学会名→人数}
学生-学会关系:{(学号、学会名)→入会年份,学号→姓名}
不存在传递依赖,函数依赖是部分依赖
3.设关系模式R,函数依赖集F={A→C,C→A,B→A,D→AC,BD→A}
(1)求出R的候选码。
(2)求出F的最小函数依赖集。
(3)将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性。
解:
(1)R的候选码为:(BD)
(2)F的最小函数依赖集为:F={A→C,C→A,B→C,D→C}
(3){AB,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的最小函数依赖集。
解:
{AB→E,BE→C,CE→F,BC→D}
8.设关系模式R(B,O,I,S,Q,D)函数依赖集F={S→D,I→S,IS→Q ,B→Q}
(1)找出R的主码。
(2)把R分解为BCNF,且具有无损连接性。
解:
(1)R的主码为:(IBO)
(2){SD,IS,IQ,BQ,IBO}