数据库第六章作业-关系数据理论

目录

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

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

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

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

描述学会的属性有:学会名、成立年份、地点、人数。

有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班

有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。

请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在

传递函数依赖,对于函数依赖左部是多属性的情况,讨论函数依赖是完

全函数依赖还是部分函数依赖。

指出各关系的候选码、外部码,并说明是否全码存在。

2 试由Armostrong公理系统推导出下面三条推理规则。

(1)合并规则:若X→Z,X→Y,则有X→YZ。

(2)伪传递规则:由X→Y,WY→Z,有XW→Z。

(3)分解规则:X->Y,Z⊆Y,有X→Z。

3 有关系模式R(A,B,C,D,E),回答下面各个问题:

(1)若A是R的候选码,具有函数依赖BC→DE,那么在什么条件下R是BCNF?

(2)如果存在函数依赖A→B,BC→D,DE→A,列出R的所有码。

(3)如果存在函数依赖A→B,BC→D,DE→A,R属于3NF还是BCNF。


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)每个关系模式的最小函数依赖集如下:

①学生的函数依赖如下:

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存在传递函数依赖

②班级的函数依赖如下:

Class->Pname, Class->Cnum, Class->Cyear, Pname->Dept

传递函数依赖如下:

因为Class->Pname, Pname-/>Class, Pname->Dept

所以Class与Dept存在传递函数依赖

③系的函数依赖如下:

Dept->Dno, Dno->Dept, Dno->Dnum, Dno->Office

显然,无传递函数依赖

④学会的函数依赖:

Mname->Myear, Mname->Maddr, Mname->Mnum

显然无传递函数依赖

(3)各关系模式的候选码、外部码,全码如下:

候选码

外部码

全码

学生

Sno

Dept、Class

班级

Class

Dept

Dept或Dno

学会

Mname

试由Armostrong公理系统推导出下面三条推理规则。

(1)合并规则:若X→Z,X→Y,则有X→YZ。

因为X->Z,由增广律得:XY->YZ,

又因为X->Y能得XX->XY

所以XX->XY->YZ

即X->YZ

(2)伪传递规则:由X→Y,WY→Z,有XW→Z。

因为X->Y, 根据增广律得:XW->YW

又因为WY->Z

所以XW->Z

(3)分解规则:X->Y,ZY,有X→Z。

因为Z⊆Y,由自反律可得:Y->Z

又因为X->Y

所以X->Z

3 有关系模式R(A,B,C,D,E),回答下面各个问题:

(1)若A是R的候选码,具有函数依赖BC→DE,那么在什么条件下R是BCNF?

由定义得,属性组BC含有码时,R是BCNF。BCNF的所有决定性因素都含有码,所以BC应该含有码。

(2)如果存在函数依赖A→B,BC→D,DE→A,列出R的所有码。

R的所有码:ACE、BCE、CDE。

由函数依赖关系A→B,BC→D,DE→A可得,A可以决定B,加上C决定D,再加上E可得R,故第一组ACE。由BC可决定D,加上E可决定A,亦可得R,第二组BCE。由DE可决定A,B传递依赖于DE,加上C可得R,第三组即CDE。

(3)如果存在函数依赖A→B,BC→D,DE→A,R属于3NF还是BCNF。

R属于3NF,不属于BCNF。

ABCDE都是主属性,BCNF中不存在主属性对码的部分依赖。在R中的函数依赖中决定性因素不包含码。

你可能感兴趣的:(作业,sql,mysql,数据库)