试题详情
- 简答题分别叙述在进行插入、删除、更新操作时都需要进行哪些完整性检查,并说明理由。
-
(1)执行插入操作时需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规则。
首先检查实体完整性规则,如果插入元组的主关键字的属性不为空值、并且相应的属性值在关系中不存在(即保持唯一性),则可以执行插入操作,否则不可以执行插入操作。
接着再检查参照完整性规则,如果是向被参照关系插入元组,则无须检查参照完整性;如果是向参照关系插入元组,则要检查外部关键字属性上的值是否在被参照关系中存在对应的主关键字的值,如果存在则可以执行插入操作,否则不允许执行插入操作。另外,如果插入元组的外部关键字允许为空值,则当外部关键字是空值时也允许执行插入操作。
最后检查用户定义完整性规则,如果插入的元组在相应的属性值上遵守了用户定义完整性规则,则可以执行插入操作,否则不可以执行插入操作。
(2)执行删除操作时一般只需要检查参照完整性规则。
如果删除的是参照关系的元组,则不需要进行参照完整性检查,可以执行删除操作。
如果删除的是被参照关系的元组,则检查被删除元组的主关键字属性的值是否被参照关系中某个元组的外部关键字引用,如果未被引用则可以执行删除操作;否则可能有三种情况:
1)不可以执行删除操作,即拒绝删除;
2)可以删除,但需同时将参照关系中引用了该元组的对应元组一起删除,即执行级联删除;
3)可以删除,但需同时将参照关系中引用了该元组的对应元组的外部关键字置为空值,即空值删除。
(3)执行更新操作可以看作是先删除旧的元组,然后再插入新的元组。所以执行更新操作时的完整性检查综合了上述两种情况。 关注下方微信公众号,在线模考后查看
热门试题
- 查询姓名中带有“玲”字的学生,则条件语句
- 你是一家迅速发展的公司的一名数据库开发者
- 在一个课程关系中,最可能成为主关键字(或
- DEPARTMENT 表包含以下列: D
- 你是一个SQLServer2005/20
- 什么是事务?
- 用union上下连接的各个select都
- 用户ADAM过去曾成功登录到数据库,但是
- 现有如下关系: 患者(患者编号,患者姓名
- 使用SQL进行数据查询时,如果查询结果中
- 数据模型的组成要素包括()。
- 下列关于关系模式规范化的叙述中,正确的是
- 将数据库中的OLTP数据转换成数据仓库的
- 你为一家名为woodgrove的银行开发
- 你是一个翼尖玩具的数据库开发者。你有创建
- 评估EMPLOYEE表的结构: EMPL
- 请简要说明SQL Server中使用视图
- 在PowerScript语言中,数组中的
- 以下哪个说法最准确地描述了对表授予REF
- 你是一个公司的数据库开发者,该公司为棒球