(完整版)5数据完整性课后习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题
一、选择题
1.一个表上可以建立多个名称不同、类型各异的触发器,每个触发器可以由三个动作来引发,但是每个触发器最多只能作用于()个表上。
A.一
B.二
C.三
D.四
2.激活触发器的数据修改语句,有效选项是()。
A.INSERT
B.UPDATE
C.DELETE
D.SELECT
3.创建触发器不需要指定的选项有()。
A.触发器的名称
B.在其上定义触发器的表
C.触发器将何时触发
D.执行触发操作的编程语句
4.当希望执行对Book表的操作时,如果该操作不执行,而是执行对PRICE 表的更新操作,则应该创建什么类型的DML 触发器()。
A.FOR
B.BEFORE
C.AFTER
D.INSTEAD OF
5.在DML触发器工作中,有可能生成的两个内存表是()。
A.INSERTED, DELETED
B.UPDATED, INSERTED
C.DELETED,ADDED
D.ADDED, DELETED
6.关于触发器叙述正确的是()。
A.触发器是自动执行的,可以在一定条件下触发
B.触发器不可以同步数据库的相关表进行级联更改
C.SQL Server 2008不支持DDL触发器
D.触发器不属于存储过程
7.关于约束叙述正确的是()。
A.每个约束只能作用与一个列上
B.每个约束可以作用多个列,但是必须在一个表里
C.每个约束可以作用到多个表的多个列
D.以上都不对
8.用户定义的约束,是属于()完整性。
A.用户自定义
B.实体
C.参照
D.都不是
9.下述SQL命令的短语中,定义属性上约束条件的是()。
A.NOT NULL短语
B.UNIQUE短语
C.CHECK短语
D.HA VING短语
10.下列()是对触发器的描述
A.定义了一个有相关列和行的集合
B.当用户修改数据时,一种特殊形式的存储过程被自动执行
C.SQL语句的预编译集合
D.它根据一或多列的值,提供对数据库表的行的快速访问
二、填空题
1.数据库的实体完整性要求表中所有行唯一,可通过建主码、唯一约束、唯一索引、IDENTITY标识等约束来实现。
2.数据库域完整性可保证表中指定字段中数据的正确性。要求表中指定列的数据具有正确的数据类型、格式和有效取植范围。
3.关系完整性包括实体完整性、值域完整性、参照完整性_和用户自定义完整性。4.当指定基本表中某一列或若干列为主码时,则系统将在这些列上自动建立一个非空_______、_唯一__约束和___聚集__的索引。
5. SQL Server 2008中的触发器可以分为_DML_触发器和__DDL__触发器两种。
6.在SQL Server中,通过执行 CRETAE RULE 语句创建约束,使用 SP_bindrule 存储过程绑定约束,使用 SP_unbindrule 解除绑定,使用 DROP RULE 删除规则。
7.数据库的完整性是指数据的___正确性_____ 和___相容性_____。
8.数据库完整性的定义一般由SQL的___ DDL _____语句来实现。它们作为数据库模式的一部分存入数据字典中。
9.触发器按激活的方式分为After 和Instead Of 两种触发方式。后触发器在记录已经改变完之后被激活。替代触发器在记录变更之前被激活。
10.创建触发器使用 CRETAE TRIGGER 语句。在表或视图上执行INSERT 、UPDATE 和DELETE 语句可以激活触发器。
11.SQL Server为每一个触发器创建了两个inserted 和deleted 临时表。在触发器触发时时候创建,在触发器的工作完成之后时候删除。
三、问答题
1.试述关系模型的完整性规则。在参照完整性中,为什么外码属性的值也可以为空?什么情况下才可以为空?
解答:
关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。1) 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。2)参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:等于S中某个元组的主码值或者取空值(F的每个属性值均为空值);3)用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。在
参照完整性中,外码属性的值可以为空,它表示该属性的值尚未确定。但前提条件是该外码属性不是其所在关系的主属性。
2.数据库的完整性概念与数据库的安全性概念有什么区别和联系?
解答:
数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
3.DBMS的完整性控制机制应具有哪些功能?
解答:
DBMS的完整性控制机制应具有三个方面的功能:1. 定义功能,即提供定义完整性约束条件的机制。2. 检查功能,即检查用户发出的操作请求是否违背了完整性约束条件。3. 违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
四、应用题
1.在图书管理数据库中完成下列约束的创建和管理
(1)读者借阅图书的超期次数不能超过20次
(2)图书表的出版社字段中的数据必须以“出版社”结尾
(3)因为图书馆与清华大学出版社和合作单位,所以该出版社的图书较多
(4)因为目前出现了一些比较特殊的出版社,他们的名称比较特殊,不是以“出版社”结尾的,所以原有的约束不在适合,给予解除后删除的处理
2.在图书管理数据库中完成下列触发器的创建
每次向读者表中添加新的读者用户时,读者的类别都应该是最低级别的(DL01),设计一个触发器保证这一要求,如果插入的读者类别不是DL01,则取消这次操作并提示用户。