【问题标题】:4th Normal Form of table not met不满足表格的第四范式
【发布时间】:2018-02-17 07:21:16
【问题描述】:

下图是一个数据库图表,该数据库用于管理多年的大学生注册和成绩。下面列出了对数据库的要求

  • 学生必须能够成为班级的一员
  • 课程必须教授一门学科
  • 每个班级可能有 0 个或多个课程作业
  • 每个班级将有一次考试
  • 每节课可以由多个讲师授课
  • 课程作业只能由一位讲师设置
  • 课程作业和考试可以由不同于设置它们的工作人员进行评分,并且评分的工作人员必须能够被识别和记录。
  • 必须指定所参加的考试是第一次参加还是补考

我认为数据库现在处于第四范式,如下表所示。

键代表该表的主键,绿色箭头表示它是外键。

谁能发现任何错误或提出改进方法?

【问题讨论】:

    标签: database database-design


    【解决方案1】:

    这里没有足够的信息来判断您是否满足任何标准形式。我们只能猜测一些依赖关系。

    例如,“每个班级都会有一次考试”似乎是在说班级→考试。另一方面,您的考试表满足依赖考试ID→classID,这不是您的要求之一。我无法从您的图表中判断 classID 是否是考试表中的候选键。如果 classID→examID 是要满足的依赖项之一,examTaken 看起来也不会在 4NF 中。

    从实际数据建模的角度来看,4NF 并不是很重要。 5NF更重要。这是作业吗?如果是这样,我建议您在开始绘制图表之前写下属性和依赖关系。您创建的属性似乎比需求声明中建议的要多。

    【讨论】:

      【解决方案2】:

      显然 coursework 和 courseworktaken 之间的基数不能是 1:1。

      (为什么有些线是虚线而有些不是?)

      【讨论】:

        猜你喜欢
        • 2015-04-28
        • 2011-09-02
        • 1970-01-01
        • 2022-12-15
        • 1970-01-01
        • 2011-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多