Database 不符合表格的第四标准形式

Database 不符合表格的第四标准形式,database,database-design,Database,Database Design,下面是一个数据库的图表,该数据库将用于管理跨多个年份的大学生入学率和成绩。下面列出了数据库的要求 学生必须能够成为班级的一部分 班级必须教授一门学科 每个班级可能有0个或更多的课程作业 每节课有一次考试 每节课可以由一位以上的讲师讲授 课程只能由一名讲师设置 课程作业和考试可以由不同的工作人员进行评分,而不是由设置这些作业和考试的人员进行评分,评分的工作人员必须能够识别和记录 有必要说明参加的考试是第一次还是重新考试 我认为数据库现在处于第四范式,如下表所示 该键表示该表的主键,绿色箭头表

下面是一个数据库的图表,该数据库将用于管理跨多个年份的大学生入学率和成绩。下面列出了数据库的要求

  • 学生必须能够成为班级的一部分
  • 班级必须教授一门学科
  • 每个班级可能有0个或更多的课程作业
  • 每节课有一次考试
  • 每节课可以由一位以上的讲师讲授
  • 课程只能由一名讲师设置
  • 课程作业和考试可以由不同的工作人员进行评分,而不是由设置这些作业和考试的人员进行评分,评分的工作人员必须能够识别和记录
  • 有必要说明参加的考试是第一次还是重新考试
我认为数据库现在处于第四范式,如下表所示

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


有人能发现任何错误或提出改进方法吗?

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

例如,“每堂课都有一次考试”似乎是在说那堂课→考试另一方面,您的检查表满足依赖项examID→classID,这不是您的要求之一。我无法从图表中判断classID是否是考试表中的候选键。如果classID→examID是需要满足的依赖项之一


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

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

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