试题详情
简答题分别叙述在进行插入、删除、更新操作时都需要进行哪些完整性检查,并说明理由。
  • (1) 执行插入操作时需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规则。
    首先检查实体完整性规则,如果插入元组的主关键字的属性不为空值、并且相应的属性值在关系中不存在(即保持唯一性),则可以执行插入操作,否则不可以执行插入操作。
    接着再检查参照完整性规则,如果是向被参照关系插入元组,则无须检查参照完整性;如果是向参照关系插入元组,则要检查外部关键字属性上的值是否在被参照关系中存在对应的主关键字的值,如果存在则可以执行插入操作,否则不允许执行插入操作。另外,如果插入元组的外部关键字允许为空值,则当外部关键字是空值时也允许执行插入操作。
    最后检查用户定义完整性规则,如果插入的元组在相应的属性值上遵守了用户定义完整性规则,则可以执行插入操作,否则不可以执行插入操作。
    (2) 执行删除操作时一般只需要检查参照完整性规则。
    如果删除的是参照关系的元组,则不需要进行参照完整性检查,可以执行删除操作。 如果删除的是被参照关系的元组,则检查被删除元组的主关键字属性的值是否被参照关系中某个元组的外部关键字引用,如果未被引用则可以执行删除操作;否则可能有三种情况:
    1) 不可以执行删除操作,即拒绝删除;
    2) 可以删除,但需同时将参照关系中引用了该元组的对应元组一起删除,即执行级联删除;
    3) 可以删除,但需同时将参照关系中引用了该元组的对应元组的外部关键字置为空值,即空值删除。
    (3) 执行更新操作可以看作是先删除旧的元组,然后再插入新的元组。所以执行更新操作时的完整性检查综合了上述两种情况。
  • 关注下方微信公众号,在线模考后查看

热门试题