问题
单项选择题
(30)至(32)题基于以下说明: 设有供应商关系S和零件关系P如下图所示。它们的主码分别是“供应商号”和“零件号”。而且零件关系P的属性“供应商号”是它们的外码,属性“颜色”只能取值为(红,白,兰)。(这里假定DBMS不支持“级联修改”功能。) |
若向关系P插入新行,新行的值分别列出如下。它们中哪个(些)不能被插入 Ⅰ.(’20’,’白’,’S10’) Ⅱ.(’30’,’红’,’T11’) Ⅲ.(’30’,’绿’,’B01’)
A.只有Ⅰ
B.只有Ⅰ和Ⅱ
C.只有Ⅱ
D.都不能
答案
参考答案:D
解析: 向关系中插入新行时,除考虑关系的基本定义外,还要考虑插入后关系是否还满足其3个约束条件。约束条件包括实体完整性规则、参照完整性和用户定义的完整性。实体完整性规则即关系中的元组在组成主键的属性上不能为空值;参照完整性是指外键的值不允许参照相应主表中不存在的主键值,或者外键为空值;用户定义的完整性规则是用户根据具体应用的语义定义的。对题干中的Ⅰ,插入后违背了主码的定义;对题中的Ⅱ,插入后违背了参照完整性,因为外码中没有“T11”的供应商号。对题干中的Ⅲ,插入后违背了用户定义的完整性,因为用户定义属性“颜色”只能取值为(红,白,兰),而m中所述颜色为绿色。所以本题正确答案为选项D(都不能)。