数据库第四版答案(王珊萨师煊) 第5章数据库完整性数据库第四版答案(萨师煊)
1什么是数据库的完整性?
答:
数据库的完整性是指数据的正确性和相容性。
2.数据库的完整性概念与数据库的安全性概念有什么区别和联系?
答:
,但是有一定的联数据的完整性和安全性是两个不同的概念数据的完整性和安全性是两个不同的概念,
,防止系。前者是为了防止数据库中存在不符合语义的数据前者是为了防止数据库中存在不符合语义的数据,
错误信息的输入和输出,即所谓垃圾进垃圾出(Garba :e In Garba :e out )所造成的无效操作和错误结果。后者
,安是保护数据库防止恶意的破坏和非法的存取。也就是说是保护数据库防止恶意的破坏和非法的存取。也就是说,
全性措施的防范对象是非法用户和非法操作,完整性措施的全性措施的防范对象是非法用户和非法操作,
防范对象是不合语义的数据。
3.什么是数据库的完整性约束条件?可分为哪几类?答
完整性约束条件是指数据库中的数据应该满足的语义约束
、条件。一般可以分为六类:静态列级约束、静态元组约束条件。一般可以分为六类:静态列级约束、静态元组约束、
静态关系约束、动态列级约束、动态元组约束、动态关系约静态关系约束、动态列级约束、动态元组约束、
,包括以下几束。静态列级约束是对一个列的取值域的说明静态列级约束是对一个列的取值域的说明,
个方面:(l )对数据类型的约束,包括数据的类型、长度、单位、精度等;(2)对数据格式的约束;(3)对
;(4)对空值的约束;(5)取值范围或取值集合的约束取值范围或取值集合的约束;对空值的约束;
其他约束。静态元组约束就是规定组成一个元组的各个列之其他约束。
,静态元组约束只局限在单个元组上。静态关间的约束关系间的约束关系,静态元组约束只局限在单个元组上。
系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。
常见的静态关系约束有:(l )实体完整性约束;(2)参照完整性约束;(3)函数依赖约束。
,包动态列级约束是修改列定义或列值时应满足的约束条件动态列级约束是修改列定义或列值时应满足的约束条件,
括下面两方面:(l )修改列定义时的约束;(2)修改
。动态元组约束是指修改某个元组的值时需要列值时的约束列值时的约束。
,并且新旧值之间需要满足某种约束条件。动态参照其旧值参照其旧值,并且新旧值之间需要满足某种约束条件。
关系约束是加在关系变化前后状态上的限制条件,例如事务关系约束是加在关系变化前后状态上的限制条件,一致性、原子性等约束条件。
4. DBMS 的完整性控制机制应具有哪些功能?
答:
DBMS 的完整性控制机制应具有三个方面的功能:(l )定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条功能,
(3)违约反应:如果发现用户的操作请求使数据违背件;件;(
了完整性约束条件,则采取一定的动作来保证数据的完整性。
5. RDBMS 在实现参照完整性时需要考虑哪些方面?答
RDBMs 在实现参照完整性时需要考虑以下几个方面:(l )外码是否可以接受空值。(2)册l 除被参照关系的元组时的考虑,这时系统可能采取的作法有三种:l )级联删除(CASCADES ) ; 2)受限删除(RESTRICTED ) ; 3)置空值删除(NULLIFIES )。(3)在参照关系中插入元组时的问题,这时系统可能采取的作法有:l )受限插入;组时的问题,这时系统可能采取的作法有:受限插入;
2)递归插入。(4)修改关系中主码的问题。一般是不
,能用UPDATE 语句修改关系主码的。如果需要修改主码值语句修改关系主码的。如果需要修改主码值,
只能先删除该元组,然后再把具有新主码值的元组插入到关只能先删除该元组,
。,,系中系中。如果允许修改主码如果允许修改主码,首先要保证主码的惟一性和非空首先要保证主码的惟一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。
:职工(职工号,姓名,年龄,6.假设有下面两个关系模式假设有下面两个关系模式:职工号,姓名,年龄,
,工资,部门号);部门(部门号,职务职务,工资,部门号),其中职工号为主码其中职工号为主码;部门(部门号,,经理名,电话)。用sQL 语言定名称名称,经理名,电话),其中部门号为主码其中部门号为主码。
义这两个关系模式,要求在模式中完成以下完整性约束条件义这两个关系模式,
:定义每个模式的主码;定义参照完整性;定义职工的定义的定义:定义每个模式的主码;定义参照完整性;
年龄不得超过60岁。
答
CREATE TABLE DEPT
(DeptnoNUMBER(2),
Deptname VARCHAR(10),
Manager VARCHAR(10),
PhoneNumber Char(12)
CONSTRAINT PK_SCRIMARY KEY(Deptno));
CREATE TABLE EMP
(EmpnoNUMBER(4),
Ename VARCHAR(10),
Age NUMBER(2),
CONSTRAINT C1CHECK (Aage
Job VARCHAR(9),
Sal NUMBER(7,2),
Deptno NUMBER(2),
CONSTRAINT FK_DEPTNO
FOREIGN KEY(Deptno)
REFFERENCES DEPT(Deptno));
7.关系系统中,当操作违反实体完整性、参照完整性和用关系系统中,当操作违反实体完整性、
,一般是如何分别进行处理的?户定义的完整性约束条件时户定义的完整性约束条件时,
答:
对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一并不都是简单地拒绝执行,
些附加的操作,以保证数据库的正确性。
数据库第四版答案(王珊萨师煊) 第5章数据库完整性数据库第四版答案(萨师煊)
1什么是数据库的完整性?
答:
数据库的完整性是指数据的正确性和相容性。
2.数据库的完整性概念与数据库的安全性概念有什么区别和联系?
答:
,但是有一定的联数据的完整性和安全性是两个不同的概念数据的完整性和安全性是两个不同的概念,
,防止系。前者是为了防止数据库中存在不符合语义的数据前者是为了防止数据库中存在不符合语义的数据,
错误信息的输入和输出,即所谓垃圾进垃圾出(Garba :e In Garba :e out )所造成的无效操作和错误结果。后者
,安是保护数据库防止恶意的破坏和非法的存取。也就是说是保护数据库防止恶意的破坏和非法的存取。也就是说,
全性措施的防范对象是非法用户和非法操作,完整性措施的全性措施的防范对象是非法用户和非法操作,
防范对象是不合语义的数据。
3.什么是数据库的完整性约束条件?可分为哪几类?答
完整性约束条件是指数据库中的数据应该满足的语义约束
、条件。一般可以分为六类:静态列级约束、静态元组约束条件。一般可以分为六类:静态列级约束、静态元组约束、
静态关系约束、动态列级约束、动态元组约束、动态关系约静态关系约束、动态列级约束、动态元组约束、
,包括以下几束。静态列级约束是对一个列的取值域的说明静态列级约束是对一个列的取值域的说明,
个方面:(l )对数据类型的约束,包括数据的类型、长度、单位、精度等;(2)对数据格式的约束;(3)对
;(4)对空值的约束;(5)取值范围或取值集合的约束取值范围或取值集合的约束;对空值的约束;
其他约束。静态元组约束就是规定组成一个元组的各个列之其他约束。
,静态元组约束只局限在单个元组上。静态关间的约束关系间的约束关系,静态元组约束只局限在单个元组上。
系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。
常见的静态关系约束有:(l )实体完整性约束;(2)参照完整性约束;(3)函数依赖约束。
,包动态列级约束是修改列定义或列值时应满足的约束条件动态列级约束是修改列定义或列值时应满足的约束条件,
括下面两方面:(l )修改列定义时的约束;(2)修改
。动态元组约束是指修改某个元组的值时需要列值时的约束列值时的约束。
,并且新旧值之间需要满足某种约束条件。动态参照其旧值参照其旧值,并且新旧值之间需要满足某种约束条件。
关系约束是加在关系变化前后状态上的限制条件,例如事务关系约束是加在关系变化前后状态上的限制条件,一致性、原子性等约束条件。
4. DBMS 的完整性控制机制应具有哪些功能?
答:
DBMS 的完整性控制机制应具有三个方面的功能:(l )定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条功能,
(3)违约反应:如果发现用户的操作请求使数据违背件;件;(
了完整性约束条件,则采取一定的动作来保证数据的完整性。
5. RDBMS 在实现参照完整性时需要考虑哪些方面?答
RDBMs 在实现参照完整性时需要考虑以下几个方面:(l )外码是否可以接受空值。(2)册l 除被参照关系的元组时的考虑,这时系统可能采取的作法有三种:l )级联删除(CASCADES ) ; 2)受限删除(RESTRICTED ) ; 3)置空值删除(NULLIFIES )。(3)在参照关系中插入元组时的问题,这时系统可能采取的作法有:l )受限插入;组时的问题,这时系统可能采取的作法有:受限插入;
2)递归插入。(4)修改关系中主码的问题。一般是不
,能用UPDATE 语句修改关系主码的。如果需要修改主码值语句修改关系主码的。如果需要修改主码值,
只能先删除该元组,然后再把具有新主码值的元组插入到关只能先删除该元组,
。,,系中系中。如果允许修改主码如果允许修改主码,首先要保证主码的惟一性和非空首先要保证主码的惟一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。
:职工(职工号,姓名,年龄,6.假设有下面两个关系模式假设有下面两个关系模式:职工号,姓名,年龄,
,工资,部门号);部门(部门号,职务职务,工资,部门号),其中职工号为主码其中职工号为主码;部门(部门号,,经理名,电话)。用sQL 语言定名称名称,经理名,电话),其中部门号为主码其中部门号为主码。
义这两个关系模式,要求在模式中完成以下完整性约束条件义这两个关系模式,
:定义每个模式的主码;定义参照完整性;定义职工的定义的定义:定义每个模式的主码;定义参照完整性;
年龄不得超过60岁。
答
CREATE TABLE DEPT
(DeptnoNUMBER(2),
Deptname VARCHAR(10),
Manager VARCHAR(10),
PhoneNumber Char(12)
CONSTRAINT PK_SCRIMARY KEY(Deptno));
CREATE TABLE EMP
(EmpnoNUMBER(4),
Ename VARCHAR(10),
Age NUMBER(2),
CONSTRAINT C1CHECK (Aage
Job VARCHAR(9),
Sal NUMBER(7,2),
Deptno NUMBER(2),
CONSTRAINT FK_DEPTNO
FOREIGN KEY(Deptno)
REFFERENCES DEPT(Deptno));
7.关系系统中,当操作违反实体完整性、参照完整性和用关系系统中,当操作违反实体完整性、
,一般是如何分别进行处理的?户定义的完整性约束条件时户定义的完整性约束条件时,
答:
对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一并不都是简单地拒绝执行,
些附加的操作,以保证数据库的正确性。