插入异常的特异性

时间:2018-12-04 18:27:21

标签: sql database insertion anomaly-detection

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

当前,我尝试理解的示例如下:

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

该示例要我回答的问题是:

  

以下哪些原因导致插入异常?

答案为

  

插入没有课程的学生

  

在没有学生的情况下插入课程

我不太明白为什么其中一个答案比另一个答案更正确,为什么或如何。在我看来,任何一个都可以接受。预先感谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

一个班级最多只能容纳30名学生。您如何处理想要注册该班级的任何其他学生?

如果您注册100名学生,然后决定创建课程,那么您将创建哪些学科?

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

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

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