分别叙述在进行插入、删除、更新操作时都需要进行哪些完整性检查,并说明理由。
(1)执行插入操作时需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规则。首先检查实体完整性规则,如果插入元组的主关键字的属性不为空值、并且相应的属性值在关系中不存在(即保持唯一性),则可以执行插入操作,否则不可以执行插入操作。接着再检查参照完整性规则,如果是向被参照关系插入元组,则无须检查参照完整性;如果是向参照关系插入元组,则要检查外部关键字属性上的值是否在被参照关系中存在对应的主关键字的值,如果存在则可以执行插入操作,否则不允许执行插入操作。另外,如果插入元组的外部关键字允许为空值,则当外部关键字是空值时也允许执行插入操作。最后检查用户定义完整性规则,如果插入的元组在相应的属性值上遵守了用户定义完整性规则,则可以执行插入操作,否则不可以执行插入操作。(2)执行删除操作时一般只需要检查参照完整性规则。如果删除的是参照关系的元组,则不需要进行参照完整性检查,可以执行删除操作。如果删除的是被参照关系的元组,则检查被删除元组的主关键字属性的值是否被参照关系中某个元组的外部关键字引用,如果未被引用则可以执行删除操作;否则可能有三种情况:1)不可以执行删除操作,即拒绝删除;2)可以删除,但需同时将参照关系中引用了该元组的对应元组一起删除,即执行级联删除;3)可以删除,但需同时将参照关系中引用了该元组的对应元组的外部关键字置为空值,即空值删除。(3)执行更新操作可以看作是先删除旧的元组,然后再插入新的元组。所以执行更新操作时的完整性检查综合了上述两种情况。
举一反三
- 什么是数据的完整性?请简述在对关系进行插入、删除和更新操作时各需要进行哪些完整性检查
- 为了维护关系数据库的数据完整性,需要对数据库操作进行完整性检查,下列不需要检查的操作是 A: 查询 B: 插入 C: 更新 D: 删除
- 数据库管理系统在对表进行()操作时检查CHECK约束。 A: 插入和删除数据之前 B: 插入和删除数据之后 C: 插入和更新数据之前 D: 插入和更新数据之后
- 对参照关系执行删除操作时,不需要进行完整性检查
- 执行以下( )操作时,RDBMS会按照实体完整性规则自动进行检查。 A: 在表中插入一个记录 B: 对主码列进行更新操作 C: 删除表中的记录 D: 对非主码列进行更新操作
内容
- 0
下列对数据库的操作中,正确的是 A.当执行插入操作时首先检查实体完整性规则,插入行在主码属性上的值不能重复 B.当执行删除操作时,不需要检查参照完整性规则 C.当执行更新操作时,只需要检查参照完整性规则 D.如果向参照关系插入操作时,不需要考虑参照完整性
- 1
视图在进行下面哪项操作时没有限制 A: 插入 B: 更新 C: 删除 D: 以上几项操作都有限制
- 2
队列的插入操作在()____()端进行,删除操作在()____()端进行。栈的插入操作在()____()端进行,删除操作在()____()端进行
- 3
队列的插入操作在____进行,删除操作在____进行
- 4
对数据库数据的插入、更新、删除和查询操作,都必须进行事务管理