理解插入异常的概念

新手上路,请多包涵

我正在从 www.sqa.org.uk/e-learning 学习插入异常。以下数据写入其中,

当某些属性在没有其他属性的情况下无法插入到数据库中时,就会发生 插入异常。例如,这与删除异常相反——除非我们至少有一名学生注册了该课程,否则我们无法添加新课程。

 StudentNum    CourseNum   Student Name    Address     Course
S21           9201        Jones           Edinburgh   Accounts
S21           9267        Jones           Edinburgh   Accounts
S24           9267        Smith           Glasgow     physics
S30           9201        Richards        Manchester  Computing
S30           9322        Richards        Manchester  Maths

我被困在理解这个概念上。为什么我们需要学生注册该课程才能存在?

原文由 user379888 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

这意味着模式未标准化,即现在您在表 Student 中拥有有关课程的信息。

因此,为了插入课程详细信息,您还需要提供学生的详细信息。

您需要阅读 不同形式的规范化,但在此示例中,解决此异常的正确方法很可能是创建三个表,即 强实体类型 StudentCourse ,以及 关联实体类型链接表 StudentCourse (可能称为 RegistrationGrade ),这将允许您存储学生和课程数据而不会重复,以及为许多学生分配许多课程。

您可以阅读以下链接中的规范化示例,它会给您一个更好的主意:

http://www.sqa.org.uk/e-learning/MDBS01CD/page_26.htm#Example

原文由 user194076 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进