第六章关系数据理论

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

补充题

1设有下列关系模式和相应的函数依赖集:

(1)R(A,B,C,D),F={A B→C,C→D,D→A}

(2)R(A,B,C,D),F={B→C,B→D}

(3)R(A,B,C,D),F={A B→C,B C→D,C D→A,A D→B}

(4)R(A,B,C,D),F={A→B,B→C,C→D,D→A}

(5)R(A,B,C,D,E),F={A B→C,D E→C,B→D}

(6)R(A,B,C,D),F={A B→C,C→D,D→E}

请判断它们最高属于什么范式?为什么?

解:

(1)是3N F,但不是B C N F。因为该关系模式的码为A B,B C和B D,所有属性均为主属性,是3N F。但由于C→D,D→A中的左边不包含候选码,所以不是B C N F。

(2)是2N F,不是3N F。因为该关系模式的码为A B,由函数依赖B→C,B→D,可得C,D部分函数依赖于A B,所以在关系模式中存在非主属性对码的部分函数依赖,不满足3N F。

(3)3N F,也是B C N F。在该关系模式中,A B,C D,A D,B C都是侯选码,所有属性均为主属性,所以不存在非主属性对码的传递依赖。所以是3N F。因为所有的函数依赖的左部都包含侯选码,所以该关系模式是B C N F。

(4)是3N F,也是B C N F。在该关系模式中,A,B,C和D均为侯选码,它们也都是主属性,所以是3N F。也是B C N F。

(5)是1N F,不是2N F.该关系模式的侯选码为A B E,由函数依赖A B→C可知在该关系模式中存在非主属性对侯选码的部分函数依赖,所以不是2N F。(6)是2N F,不是3N F。该关系模式的侯选码为A B,因为存在非主属性对侯选码的传递依赖,所以不是3N F。

【习6-2】建立关于系、学生、班级、学会等诸信息的一个关系数据库。

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

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

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

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

有关语义如下:一个系有若干个专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一宿舍区。每个学生可以参加若干个学会,每个学会有若干学生。学生参加某学会有一个入会年份。

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

指出各关系的候选码、外码,有没有全码存在?

解:

(1)学生关系

学生(学号,姓名,出生年月,系名,班号,宿舍区)

候选码:学号

外码:系名,班号

最小函数依赖集F'={学号→姓名,学号→出生年月,学号→班号,班号→系名,系名→宿舍区}

存在传递函数依赖:

学号→系名,系名→宿舍区,且学号不函数依赖于系名。所以宿舍区传递函数依赖于学号。

班号→系名,系名→宿舍区,且班号不函数依赖于系名。所以宿舍区传递函数依赖于班号。

学号→班号,班号→系名,且学号不函数依赖于班号。所以系名传递函数依赖于学号。(2)班级关系

班级(班号,专业名,系名,人数,入学年份)

候选码:班号

外码:系名

最小函数依赖集F'={班号→专业名,班号→人数,班号→入学年份,专业名→系名} 存在传递函数依赖:

班号→专业名,专业名→系名,且班号不函数依赖于专业名。所以系名传递函数依赖于班号。

(3)系关系

系(系号,系名,系办公室地点,人数)

候选码:系号,系名

无外码

最小函数依赖集F'={系号→系名,系号→系办公室地点,系号→人数,系名→系号} (4)学会关系

学会(学会名,成立年份,地点,人数)

候选码:学会名

无外码

最小函数依赖集F'={学会名→成立年份,学会名→地点,学会名→人数}

(5)学生参加学会关系

学生-学会(学号,学会名,入会年份)

候选码:(学号,学会名)

无外码:学号,学会名

最小函数依赖集F'={(学号,学会名)→入会年份}

以上各关系均不是全码关系。

【习6-3】试由Armostrong公理系统推导出下面三条推理规则:

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

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

(3)分解规则:若X→Y,Z⊆Y,则有X→Z

解:

(1)根据增广律和X→Z可得:XY→YZ

由增广律和X→Y可得:XX→XY,即X→XY

由传递律和X→XY、XY→YZ可得X→YZ

(2)由增广律和X→Y,可得XW→WY

由传递律和XW→WY、WY→Z可得XW→Z

(3)由自反律和Z⊆Y可得:Y→Z

由传递律和X→Y、Y→Z,可得X→Z

【习6-5】试举出三个多值依赖的实例。

解:多值依赖的定义是:设R (U )是属性集U 上的一个关系模式。X ,Y ,Z 是U 的子集,并且Z=U-X-Y 。对于一给定的X 值,就有一组Y 属性值与之对应,而与Z 中的属性无关,则称“Y 多值依赖于X ”,或“X 多值决定Y ”,记作X →→Y 。多值依赖在实际的应用中可能不是太常见的一种数据依赖,下面给出三个实例: (1)学生(学号,课程号,教师工号),一个学生可选一组课程学习,一个学生也可有多个教师来教授,由于一个课程可由多个教师来讲授,而且一个教师可以讲授多们课程,所以存在如下两个多值依赖:学号→→课程号和学号→→教师工号。 (2)图书馆中的图书(图书号,图书索引号,借阅读者),一种图书可有多个副本,由索引号标识,一种图书可由多个读者借阅。所以存在多值依赖:图书号→→图书索引号和图书号→→借阅读者。

(3)上课(学号,教师工号,教室),一个学生可由多个教师来教,一个学生可在多教室上课,而且一个教师可在多个教室上课,一个教室可由多个教师上课。所以存在如下多值依赖:学号→→教师工号和学号→→教室。

【习6-9】下图表示一个公司各部门的层次结构。

对每个部门,数据库中包含部门号(唯一的)D#,预算费(BUDGET )以及此部门领导人员的职工号(唯一的)E#等信息。

对每一个部门,还存有关于此部门的全部职工、生产与科研项目以及办公室的信息。 职工信息包括:职工号,他所参加的生产科研项目号(J#),他所在办公室的电话号码(PHONE#)。

生产科研项目包含:项目号(唯一的),预算费。 办公室信息包含:办公室房间号(唯一的),面积。

对每个职工,数据库中有他曾担任过的职务以及担任某一职务时的工资历史。

对每个办公室包含此办公室中全部电话号码的信。

请给出你认为合理的数据依赖,把这个层次结构转换成一组规范化的关系。

部门

电话

办公室

生产科研项目工资史

职务

职工

提示:此题可分步完成,第1步先转换成一组1NF 的关系,然后逐步转换为2NF,3NF,..。 解:语义假设:

(1)一个职工不能同时在一个以上的部门任经理 (2)一个职工不能同时在一个以上的部门工作 (3)一个职工不能同时在一个以上的办公室办公

相关文档
最新文档