【问题标题】:The Specificity of Insertion Anomalies插入异常的特异性
【发布时间】:2019-05-06 06:06:57
【问题描述】:

我目前正在尝试了解 SQL 中插入/删除/修改异常的细微差别。

目前,我试图理解的示例如下:

ENROLLMENT
StudentID(PK)   StudentName   ClassID   ClassName
111             Joe           E1        English1
222             Bob           E1        English1
333             Mary          H1        History1

这个例子要我回答的问题是:

以下哪项导致插入异常?

答案是

插入没有班级的学生

插入没有学生的班级

我真的不明白为什么其中一个答案比另一个更正确,为什么或如何。在我看来,两者都可以接受。提前致谢。

【问题讨论】:

  • 这个问题似乎没有足够的信息来回答它。 “插入异常”听起来像是某位教授编造的一些愚蠢的术语。
  • @RobertHarvey 是的。应该是科德吧你可以在这里阅读更多:en.wikipedia.org/wiki/Database_normalization#Objectives
  • 这两个对我来说似乎都是插入异常。

标签: sql database insertion anomaly-detection


【解决方案1】:

您需要考虑数据如何自然地添加到系统中(即现实世界中发生了哪些事件系列)。

在这种情况下,您将在注册之前创建一组课程,然后在学生注册时创建并分配给他们。

您不太可能创建一组学生,然后为每个学生创建和分配课程。

一个班级可能只能容纳 30 名学生。您如何处理想要注册该课程的额外学生?

如果您注册了 100 名学生,然后决定创建课程,您会创建哪些科目?

为什么学生决定来注册? [大概是因为提供的课程。]

您可以根据自己的时间表创建尽可能多的课程。实际注册的学生人数可能意味着课程被取消,但它必须首先存在。

总之,“插入没有班级的学生”更有可能导致插入异常。

【讨论】:

    猜你喜欢
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多