王珊《数据库系统概论》章节题库(数据库完整性)【圣才出品】

  • 格式:pdf
  • 大小:408.73 KB
  • 文档页数:7

第5章数据库完整性
一、选择题
1.数据的完整性是指数据的正确性、有效性和()。

A.可维护性
B.相容性
C.可恢复性
D.独立性
【答案】B
【解析】数据模型应该反映数据模型必须遵守的基本的通用的完整性约束条件。

完整性规则是给定的数据模型中数据及其联系具有的制约和依存规则,用以限定符合数据模型的数据库状态及状态的变化,以保证数据的正确、有效和相容。

2.有一个关系:职工(职工号,姓名,籍贯),规定职工号的值域是8个数字字符组成的字符串,这一规则属于()。

A.参照完整性
B.用户定义的完整性
C.实体完整性
D.关键字完整性约束
【答案】B
【解析】用户定义的完整性是针对某一具体数据库的约束条件,它反映某一具体应用涉
及的数据必须满足语义要求;而规定学号的值域是8个数字字符组成的字符串显然属于这一类型。

3.SQL Server的约束包括()。

A.DEFAULT、RULE、CHECK和UNIQUE
B.CHECK、RULE、PRIMARY KEY和FOREIGN KEY
C.UNIQUE、DEFAULT、RULE、PRIMARY KEY和FOREIGN KEY
D.PRIMARY KEY和FOREIGN KEY
【答案】C
【解析】SQL Server的约束包括UNIQUE、DEFAULT、RULE、PRIMARY KEY和FOREIGN KEY等。

4.数据完整性保护中的约束条件主要是指()。

A.用户操作权限的约束
B.用户口令校对
C.值的约束和结构的约束
D.并发控制的约束
【答案】C
【解析】完整性规则主要分为两大类,一类是域完整性规则,实际上就是值的约束;另一类是关系完整性规则,实际上就是结构的约束。

5.“年龄在15至30岁之间”这种约束属于DBMS的()功能。

A.恢复
B.并发控制
C.完整性
D.安全性
【答案】C
【解析】“年龄在15至30岁之间”是完整性约束中值的约束。

6.在SQL Server中,可以通过数据库对象及各种约束来保证数据的完整性,以下都属于数据库对象的有()。

A.DEFAULT、CHECK和UNIQUE
B.DEFAULT、CHECK和RULE
C.CHECK和DEFAULT
D.DEFAULT和RULE
【答案】D
【解析】SQL Server的约束包括UNIQUE、DEFAULT、RULE、PRIMARY KEY和FOREIGN KEY等,但属于数据库对象的是RULE、DEFAULT,当它们创建后可以绑定到一列或者几列上,并可以重复使用。

7.在数据库表定义中描述的是数据库的()。

A.安全性规则
B.完整性约束
C.恢复方法
D.并发控制机制
【答案】B
【解析】在数据库表定义中描述的是数据库的完整性约束。

二、填空题
1.SQL Server中数据完整性包括______、______和______。

【答案】域完整性;实体完整性;参照完整性
2.DBMS的完整性控制机制应具备三个功能:定义功能,即______;检查功能,即______;最后若发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。

【答案】提供定义完整性约束条件机制;检查用户发出的操作请求是否违背完整性约束条件
3.完整性约束条件作用的对象有属性、______和______三种。

【答案】关系;元组
4.设有关系模式R(A,B,C)和S(E,A,F),若R.A是R的主码,S.A是S的外码,则S.A的值或者等于R中某个元组的主码值,或者______取空值,这是规则,它是通过______和______约束来实现的。

【答案】参照完整性;PRIMARY KEY约束;FOREIGN KEY
三、问答题
1.完整性规则由哪几个部分组成?关系数据库的完整性规则有哪几类?
答:(1)数据库的完整性规则由如下3个部分组成:
①什么时候使用规则进行检查(称为规则的“触发条件”)。

②要检查什么样的错误(称为“约束条件”或“谓词”)。

③若检查出错误,该怎样处理(称为“ELSE子句”,即违反时要做的动作)。

(2)在关系数据库中,完整性规则有如下3类:
①域完整性规则:定义属性的取值范围。

②域联系规则:在一个或多个关系中,属性值间的联系、影响和约束。

关系完整性规则:定义更新操作对数据库中值的影响和限制。

③这些规则是用数据定义语言(DDL)描述的,一旦一条完整性规则输入到系统,系统就开始执行这条规则。

2.对于参照完整性规则,在SQL语言中可以用哪几种方式实现?删除基本关系的元组时,依赖关系可以采取的做法有哪3种?修改基本关系的主码值时,依赖关系可以采取的做法有哪3种?
答:(1)参照完整性规则在SQL中可以用外码子旬、检查子句、断言等方式实现。

(2)删除基本关系元组时,SQL规定,依赖关系可以采取下列3种做法之一:
①RESTRICT方式:只有当依赖关系中没有一个外码值与要删除的基本关系中主码值相对应时,系统才能执行删除操作,否则拒绝此删除操作。

②CASCADE方式:将依赖关系中所有外码值与基本关系中要删除的主码值相对应的元组一起删除。

③SETNULL方式:删除基本元组时,将依赖关系中所有与基本关系中被删主码值相对应的外码值置为空值。

(3)对于这3种方式,选择哪一种,要视应用环境的语义而定。

修改基本关系的主码值时,依赖关系可以采取的做法与上述删除操作类似。

3.设教学数据库的模式如下:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
试用多种方式定义下列完整性约束:
(1)在关系S中插入的学生年龄值在16~25之间。

(2)在关系SC中插入元组时,其S#值和C#值必须分别在S和C中出现。

(3)在关系SC中修改GRADE值时,必须仍在0~100之间。

(4)在删除关系C中一个元组时,首先要把关系SC中具有同样C#值的元组全部删去。

(5)在关系S中把某个S#值修改为新值时,必须同时把关系SC中那些同样的S#值也修改为新值。

答:(1)用检查子句定义:
CHECK(AGE BETWEEN 16 AND 25)
(2)在关系SC的定义中,用检查子句定义:
CHECK(S# IN(SELECT S# FROM S))
CHECK(C# IN(SELECT C# FROM C))。