数据库原理与设计第五章作业

2、现在要建立关于系、学生、班级、学会等信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只能招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学生会,每个学会有若干学生。

描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍号

描述班级的属性有:班号、专业名、系名、人数、入校年份

描述系的属性有:   系名、系号、系办公室地点、人数

描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份

(1)请写出关系模式

(2)写出每个关系模式的最小函数依赖集,指出是否存在传递依赖。在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖还是部分函数依赖

(3)指出各关系模式的候选码,外码,有没有全码

答:

①关系模式学生

U={学号,姓名,出生年月,系名,班号,宿舍号}

F={学号→姓名,姓名→出生年月,姓名→系号,姓名→班号,姓名→宿舍号}

②关系模式班级

U={班号,专业号,系名,人数,入校年份}

F={班号→专业号,专业号→系名,班号→人数,班号→入校年份}

③关系模式系

U={系名,系号,系办公室地点,人数}

F={系号→系名,系名→系办公室地点,系名→人数}

④关系模式学会

U={学会号,成立年份,地点,人数,学生参加某会入会年份}

F={学会号→成立年份,学会号→地点,学会号→人数}

(2)

学生关系的最小依赖集为{学号→姓名,学号→出生日期,学号→班号,学号→宿舍区}

班级关系的最小依赖集为{班号→专业名,班号→系名,班号→人数,班号→入校年份}

系关系的最小依赖集为{系号→系名,系号→系办公室地点,系号→人数}

学会关系的最小依赖集为{学会名→成立年份,学会名→地点,学会名→人数}

以上依赖集均无传递依赖,部分依赖。

(3)

①候选码:学号    外码:系名  班号

②候选码:班号 外码:系名

③候选码:系名 系号 系办公室地点 外码:

④候选码:学会号 地点 外码: 

无全码

3、设关系模式R,函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}

(1)求出R的候选码

(2)求出F的最小依赖集

(3)将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性

答:

(1)

假设候选码为(AB)①可以堆到(ABC)②不能推到D

假设为(AD) ①可以堆到(ADC)②不能推到B

假设为(ABD) ①可以堆到(ABCD)

假设为BD ①可以堆到(ABCD)

所以候选码为BD

(2)

最小依赖集为:{A→C,C→A,B→C,D→C}

①化简F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}

②去掉传递函数依赖:F={A→C,C→A,B→C,D→C,BD→A}

③如果去掉A→C则A的闭包为(A),所以不能去掉;

④如果去掉C→A则C的闭包为(C),所以不能去掉;

⑤如果去掉B→C则B的闭包为(B),所以不能去掉;

⑥如果去掉D→C则D的闭包为(D),所以不能去掉;

⑦如果去掉BD→A则BD的闭包为(BDCA),所以可以去掉;

⑧综上7点得到最小依赖集为:{A→C,C→A,B→C,D→C}

(3)分解为:(AC),(BC),(DC),(BD)

①由于最小依赖集为:{A→C,C→A,B→C,D→C},所以可以分为(AC),(BC),(DC)

②要保持无损连接性则要叫上候选码(BD)

③所以分解为(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={AB→E,BE→C,CE→F,CF→B,CF→D,C→A,D→E,D→F}

数据库原理与设计第五章作业_第1张图片

8、设关系模式R(B,O,I,S,Q,D)函数依赖集F={S→D,I→S,IS→Q ,B→Q}

(1)、找出R的主码;

(2)、把R分解为BCNF,且具有无损连接性。

答:主码为:IBO

要分解为BCNF则(SD)(ISQ)(BIO)

数据库原理与设计第五章作业_第2张图片

数据库原理与设计第五章作业_第3张图片

你可能感兴趣的:(数据库原理与设计第五章作业)