问题
单项选择题
设有供应商关系S和零件关系P如下图所示。它们的主码分别是“供应商号”和“零件号”。而且,零件关系P的属性“供应商号”是它的外码,属性“颜色”只能取值为‘红’‘白’或‘兰’。
行不能插入到关系P中。()
Ⅰ.(‘201’,‘白’,‘S10’)
Ⅱ.(‘101’,‘兰’,‘S01’)
Ⅲ.(‘301’,‘绿’,‘B01’)
A.仅Ⅰ
B.仅Ⅰ和Ⅱ
C.仅Ⅲ
D.都不能
答案
参考答案:D
解析:
当执行插入操作时:首先检查实体完整性的约束,插入行在主键属性上的值是否已经存在,若不存在,可以执行插入操作:否则不可以执行插入操作。再检查参照完整性约束,如果是向被参照关系插入,不需要考虑参照完整性的约束。如果是向参照关系插入,插入行在外键属性上的值是否已经在相应被参照关系的主键属性值中存在,若存在,可以执行插入操作;否则不可以执行插入操作,或将插入行在外键属性上的值改为空值后再执行插入操作(假定该外码允许取空值)。最后检查域完整性约束,检查要被插入的元组中各属性值是否满足域完整性约束,包括数据类型、精度、取值范围、是否允许空值、是否有缺省值等,检查插入行在相应属性上的值是否遵守具体应用的业务规则,若满足,可以执行插入操作;否则不可以执行插入操作,并给出错误信息。