问题 单项选择题

(30)至(32)题基于以下说明:
设有供应商关系S和零件关系P如下图所示。它们的主码分别是“供应商号”和“零件号”。而且零件关系P的属性“供应商号”是它们的外码,属性“颜色”只能取值为(红,白,兰)。(这里假定DBMS不支持“级联修改”功能。)

若向关系P插入新行,新行的值分别列出如下。它们中哪个(些)不能被插入 Ⅰ.(’20’,’白’,’S10’) Ⅱ.(’30’,’红’,’T11’) Ⅲ.(’30’,’绿’,’B01’)

A.只有Ⅰ

B.只有Ⅰ和Ⅱ

C.只有Ⅱ

D.都不能

答案

参考答案:D

解析: 向关系中插入新行时,除考虑关系的基本定义外,还要考虑插入后关系是否还满足其3个约束条件。约束条件包括实体完整性规则、参照完整性和用户定义的完整性。实体完整性规则即关系中的元组在组成主键的属性上不能为空值;参照完整性是指外键的值不允许参照相应主表中不存在的主键值,或者外键为空值;用户定义的完整性规则是用户根据具体应用的语义定义的。对题干中的Ⅰ,插入后违背了主码的定义;对题中的Ⅱ,插入后违背了参照完整性,因为外码中没有“T11”的供应商号。对题干中的Ⅲ,插入后违背了用户定义的完整性,因为用户定义属性“颜色”只能取值为(红,白,兰),而m中所述颜色为绿色。所以本题正确答案为选项D(都不能)。

选择题
单项选择题 A型题