让R(a,b,c)和S(d,e,f)是两个关系,其中d是 S的外键,它指的是R的主键。考虑以下四个操作R和S
1.插入R
2.插入S
3. 从 R 中删除
4.从S中删除
以下哪项会导致违反上述参照完整性约束?
(A) (1), (2), (3) 或 (4) 均不能导致其违反
(B) (1), (2), (3) 和 (4) 都可能导致其违反
(C) (1) 和 (4) 都可以导致其违反
(D) (2) 和 (3) 都可以导致其违反答案: (D)
说明:这里表 R 包含一个主键,由表 S 中的外键引用。
让我们举一个例子来更清楚:
有两个表包含有关客户及其订单的信息。这里的客户表包含 Cust_ID 作为主键,订单表将其作为外键引用。
- 语句 1 建议您可以在客户表中输入客户详细信息。是的,即使他们还没有任何订单,也可以有客户的详细信息。因此不会造成任何违规。
- 语句 2 建议您可以在 Orders 表中输入客户订单。但是如果没有唯一的 Cust_ID 或没有客户详细信息,您如何输入他们的订单详细信息。因此,该语句导致违规。
- 语句 3 建议您可以从 Customer 表中删除客户详细信息。如果这样做,那么如果该客户不再存在,Orders 表将如何获取唯一的客户详细信息?因此,该语句导致违规。
- 语句 4 建议您可以从 Orders 表中删除客户订单。是的,如果您不再需要这些信息,那么唯一的 Cust_ID 可以从 Orders 表中删除部分或全部信息。因此,该声明不会导致任何违规。
因此选项(D)是正确的。
此解释由Anchal Kulwal 提供。
这个问题的测验