试题详情
- 简答题分别叙述在进行插入、删除、更新操作时都需要进行哪些完整性检查,并说明理由。
- (1) 执行插入操作时需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规则。
首先检查实体完整性规则,如果插入元组的主关键字的属性不为空值、并且相应的属性值在关系中不存在(即保持唯一性),则可以执行插入操作,否则不可以执行插入操作。
接着再检查参照完整性规则,如果是向被参照关系插入元组,则无须检查参照完整性;如果是向参照关系插入元组,则要检查外部关键字属性上的值是否在被参照关系中存在对应的主关键字的值,如果存在则可以执行插入操作,否则不允许执行插入操作。另外,如果插入元组的外部关键字允许为空值,则当外部关键字是空值时也允许执行插入操作。
最后检查用户定义完整性规则,如果插入的元组在相应的属性值上遵守了用户定义完整性规则,则可以执行插入操作,否则不可以执行插入操作。
(2) 执行删除操作时一般只需要检查参照完整性规则。
如果删除的是参照关系的元组,则不需要进行参照完整性检查,可以执行删除操作。 如果删除的是被参照关系的元组,则检查被删除元组的主关键字属性的值是否被参照关系中某个元组的外部关键字引用,如果未被引用则可以执行删除操作;否则可能有三种情况:
1) 不可以执行删除操作,即拒绝删除;
2) 可以删除,但需同时将参照关系中引用了该元组的对应元组一起删除,即执行级联删除;
3) 可以删除,但需同时将参照关系中引用了该元组的对应元组的外部关键字置为空值,即空值删除。
(3) 执行更新操作可以看作是先删除旧的元组,然后再插入新的元组。所以执行更新操作时的完整性检查综合了上述两种情况。 关注下方微信公众号,在线模考后查看
热门试题
- 解释连接陷阱的概念,在操作数据库时如何避
- T-SQL 语言中,有算术运算、字符串连
- 下表给出的关系R为第几范式?是否存在操作
- 假设有一个名为参加的关系,该关系有属性:
- 如下图所示,若要统计各类产品的订单数量的
- 试述触发器的概念和作用。
- 简述客户/服务器结构的概念,并说明客户/
- 下列系统数据库中,()数据库不允许进行备
- 试叙述概念数据库设计和逻辑数据库设计的区
- 分别讨论在什么情况下应该使用快照复制、事
- 用如下表格中的数据来描述某个书目信息,其
- 关系数据库中的关系实际上是()
- 使用()方法,可以使数据库物理存储扩展到
- 试分别叙述Web服务器、页面服务器和事务
- 如下图所示,“订单明细&rd
- Transact-SQL语句共分几类?
- 下面哪个不是SQL Server的合法标
- 假设有一个名为参加的关系,该关系有属性:
- 若要删除book表中所有数据,以下语句错
- 按触发操作的不同,DML触发器分为()