📜  门| GATE CS 1997 |第50章

📅  最后修改于: 2021-06-28 20:14:30             🧑  作者: Mango

R(a,b,c)S(d,e,f)为两个关系,其中d是S的外键,指的是R的主键。考虑以下四个操作RS

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中的外键引用。
让我们以一个例子来使它更清楚:
有两个表,其中包含有关客户及其订单的信息。在这里,Customers表包含Cust_ID作为主键,而Orders表将其称为外键。

  1. 语句1建议您可以在“客户”表中输入客户详细信息。是的,即使客户尚未下订单,也可以获取客户详细信息。因此不会造成任何违反。
  2. 语句2建议您可以在“订单”表中输入客户订单。但是,在没有唯一的Cust_ID或没有客户详细信息的情况下,如何输入他们的订单详细信息。因此,此语句导致违反。
  3. 语句3建议您可以从“客户”表中删除客户详细信息。如果这样做,那么如果该客户不再存在,那么Orders表将如何获取唯一的客户详细信息?因此,此语句导致违反。
  4. 语句4建议您可以从“订单”表中删除客户订单。是的,如果不再需要某个唯一的Cust_ID,则可以从“订单”表中删除部分或全部信息。因此,此语句不会引起任何违反。

因此,选项(D)是正确的。

该解释由Anchal Kulwal提供
这个问题的测验