表格的第4范式不符合

时间:2018-02-16 17:21:34

标签: database database-design

以下是用于管理多年来大学生入学率和成绩的数据库图表。以下是数据库列出的要求

  • 学生必须能够成为班级的一员
  • 课程必须教授科目
  • 每个班级可能有0个或更多课程
  • 每节课都有一次考试
  • 每个班级都可以由多位讲师授课
  • 课程作业只能由一位讲师设定
  • 课程和考试可以由不同的工作人员标记,而且必须能够识别和记录标记它的工作人员。
  • 有必要指定是首次参加考试还是重新考试

我认为数据库现在处于第4范式,并在下表中显示。

Database Diagram

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

任何人都可以发现任何错误或建议改进方法吗?

2 个答案:

答案 0 :(得分:1)

此处没有足够的信息来判断您是否满足任何正常表格。我们只能猜测一些依赖。

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

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

答案 1 :(得分:0)

显然,课程作业和课程作业之间的基数不能是1:1。

(为什么有些线条点缀而其他线条没有?)