zoukankan      html  css  js  c++  java
  • 关系模式分解例题

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

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

    学生(学号,学生姓名)

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

  • 相关阅读:
    寻找研究基于NS2研究覆盖网络的小伙伴:)
    ubuntu14.04 键盘错位小问题
    关于NS2安装的若干问题
    关于ubuntu下词典安装
    与NS2一起度过第一个圣诞夜!(NS2入门学习参考资料)
    【转】影响CSS渲染速度的十条编码方法与建议
    类型初始值设定项引发异常
    【转】实用的CSS Hack
    【转】CSS技巧:五个方面促进你写出更加专业的CSS代码
    IIS6.0架构
  • 原文地址:https://www.cnblogs.com/lightice/p/13285303.html
Copyright © 2011-2022 走看看