题目
有R和S表如下图所示,A是R的主键和S的外键,D是S的主键,且R与S实施了参照完整性[1]。下列元组[2]中可以正确插入S的是( )A B C A D E-|||-a3 b3 cl a3 d3 21-|||-a5 b2 c3 a3 d2 44-|||-a7 b2 c6 a7 d7 23-|||-题5图A. (a1,d1,45) B. (a2,d2,34) C. (a3,d5,null) D. (a3,null,21)
有R和S表如下图所示,A是R的主键和S的外键,D是S的主键,且R与S实施了参照完整性[1]。下列元组[2]中可以正确插入S的是( )
B. (a2,d2,34)
C. (a3,d5,null)
D. (a3,null,21)
题目解答
答案
正确答案:C
解析
步骤 1:理解参照完整性
参照完整性要求外键的值必须在主键表中存在,或者为NULL。在本题中,A是R的主键,D是S的主键,A也是S的外键。这意味着S表中的A值必须在R表中存在,或者为NULL。
步骤 2:检查每个选项
A. (a1,d1,45):a1不在R表中,所以不能插入。
B. (a2,d2,34):a2不在R表中,所以不能插入。
C. (a3,d5,null):a3在R表中,d5不在S表中,但因为d5是主键,可以插入。
D. (a3,null,21):a3在R表中,但null不能作为主键值,所以不能插入。
步骤 3:选择正确答案
根据以上分析,只有选项C满足条件,可以正确插入S表。
参照完整性要求外键的值必须在主键表中存在,或者为NULL。在本题中,A是R的主键,D是S的主键,A也是S的外键。这意味着S表中的A值必须在R表中存在,或者为NULL。
步骤 2:检查每个选项
A. (a1,d1,45):a1不在R表中,所以不能插入。
B. (a2,d2,34):a2不在R表中,所以不能插入。
C. (a3,d5,null):a3在R表中,d5不在S表中,但因为d5是主键,可以插入。
D. (a3,null,21):a3在R表中,但null不能作为主键值,所以不能插入。
步骤 3:选择正确答案
根据以上分析,只有选项C满足条件,可以正确插入S表。