关系模式分解例题

Posted lightice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系模式分解例题相关的知识,希望对你有一定的参考价值。

例1:

现有如下关系模式:R(教师号,姓名,部门号,部门名称,科研项目编号,项目名称,项目经费,担任工作,完成时间)每名教师可以参加多项科研项目,每个项目可以有多名教师参加,教师参加科研工作包括担任工作及他完成所担任部分的完成时间。 (1)根据上述条件,写出关系模式R的关键码。 (2)R最高属于第几范式,为什么? (3)将R规范到3NF。

由关系模式可以得出(肉眼凭经验看出):

候选码:(教师号,部门号,科研项目编号)

(教师号)→(姓名)

(部门号)→(部门名称)

(科研项目编号)→项目名称

(科研项目编号)→项目经费

由题目描述可以得出:

(教师号,科研项目编号)→(担任工作)

(教师号,科研项目编号)→(完成时间)

(1)肉眼看出候选码就是(教师号,部门号,科研项目编号)

(2)第一范式,存在姓名依赖于教师号,而担任工作依赖于教师号和科研项目编号,这是个非主属性对码的部分函数依赖

(3)

教师(教师号,姓名)
部门(部门号,部门名称)
科研项目(科研项目编号,项目名称,项目经费)
教师科研情况(教师号,科研项目编号,担任工作,完成时间)

例2:

现有关系模式如下:
借阅(图书编号,书名,作者名,出版社,读者编号,读者姓名,借阅日期,归还日期)
(1)读者编号是候选码吗请说明理由。
(2)写出该关系模式的主码。
(3)该关系模式中是否存在部分函数依赖如果存在,请写出两个。
(4)该关系模式最高满足第几范式并说明理由。
(5)如何分解该关系模式,使得分解后的关系模式均满足第三范式(3NF)

由关系模式可以得出:

候选码:(图书编号,读者编号,借阅日期)

(图书编号)→(书名)

(图书编号)→(作者名)

(图书编号)→(出版社)

(读者编号)→(读者姓名)

归还日期不能依赖于借阅日期

(1)不是,读者编号只能决定书名、作者名、出版社,不能决定所有的属性,因此该关系模式不能完全依赖于读者编号。

(2)(图书编号,读者编号,借阅日期)

(3)偶上边写了5个XDDD

(4)第一范式,因为存在非主属性对码的部分函数依赖,比如(图书编号,读者编号,借阅日期)→(书名),而(图书编号)→(书名)。

(5)

图书(图书编号书名,作者名,出版社)

读者(读者编号,读者姓名)

借阅记录(图书编号,读者编号,借阅日期,归还日期)

为什么没有(借阅日期)→(归还日期)呢?

因为一个借阅日期告诉我们,我们只知道借了某个东西以后需要归还,但没有具体时间,想什么时候还是未知的,因此不能决定。

为什么会有(图书编号,读者编号,借阅日期)→(归还日期)呢?

这就得怪题目不严谨了!明明借了一本书只要在规定时间内的某一天还就可以了,这也是不能预测的某一天,除非已经有了规定:该书必须在哪天还,或者说这里的归还日期指的是最后的归还日期,也就是deadline,截止日期,哈哈哈那就是咋们中华文化广大精神了,咋们在图书馆借了某本书后确实是有个成文的规定,在规定时间还,这样想的话就比较合理,但是题目中真的没有任何描述,所以真的很不严谨。

例3:

现有如下关系模式,用于记录学生参加竞赛信息:

参加竞赛(竞赛编号,竞赛名称,竞赛组织者,竞赛开始日期,学号,学生姓名,获奖等级)

若有以下规定,

(1)所有竞赛的编号是唯一的;

(2)一名学生可以在不同日期参加不同的竞赛,但在同一日期只能参加一个竞赛;一个竞赛可有多名学生参加;

(3)每名学生参加一次竞赛,会获得一个不同等级的奖项。

请完成如下问题:

1)请写出该关系模式的码。(5分)

2)该关系模式满足第几范式?请说明理由。 (5分)

3)请给出关系模式的一个有效分解,使得分解后的关系模式均满足第三范式? (5分)

由关系模式可以得出:

候选码:(竞赛编号,学号)

(竞赛编号)→(竞赛名称)

(竞赛编号)→(竞赛组织者)

(竞赛编号)→(竞赛开始日期)

(学号)→(学生姓名)

获奖等级没法肉眼判断。。

由题目规定可以得出:

(学号,竞赛开始日期)→(竞赛编号)

(学号)→(竞赛编号)

(学号,竞赛编号)→(获奖等级)

1)(竞赛编号,学号)

2)第一范式,因为该关系模式中存在非主属性对码的部分函数依赖,比如(学号,竞赛编号)→(获奖等级)、(竞赛编号)→(竞赛组织者)

竞赛(竞赛编号,竞赛名称,竞赛组织者,竞赛开始日期)

学生(学号,学生姓名)

参赛信息(学号,竞赛编号,获奖等级)










以上是关于关系模式分解例题的主要内容,如果未能解决你的问题,请参考以下文章

er图的联系转化为关系模式时,怎样进行3NF分解?

奇异值分解

数据库期末复习之例题汇总

java例题_04 分解质因数

1440:例题1数的划分

奇异值分解