《数据库系统概论》第四版 - 课后习题答案 下载本文

TO 刘星

( e )用户张新具有修改这两个表的结构的权力。 GRANT ALTER TABLE ON 职工,部门 TO 张新;

( f )用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。 GRANT ALL PRIVILIGES ON 职工,部门 TO 周平 WITH GRANT OPTION;

( g )用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。 CREATE VIEW 部门工资 AS SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资) FROM 职工,部门 WHERE 职工.部门号=部门.部门号 GROUP BY 职工.部门号 GRANT SELECT ON 部门工资 TO 杨兰;

9 .把习题8 中(1)---(7)的每一种情况,撤销各用户所授予的权力 (1) REVOKE SELECT ON 职工,部门 FROM 王明;

(2) REVOKE INSERT , DELETE ON 职工,部门 FROM 李勇; (3) REOVKE SELECT ON 职工 WHEN USER ( ) =NAME FROM ALI ;

(4) REVOKE SELECT , UPDATE ON 职工 FROM 刘星;

(5) REVOKE ALTER TABLE ON 职工,部门 FROM 张新;

(6) REVOKE ALL PRIVILIGES ON 职工,部门 FROM 周平;

(7) REVOKE SELECT ON 部门工资 FROM 杨兰;

DROP VIEW 部门工资;

10. 为什么强制存取控制提供了更高级别的数据库安全性?

答:强制存取控制(MAC )是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。

11 .理解并解释MAC 机制中主体、客体、敏感度标记的含义。 答:

主体是系统中的活动实体,既包括DBMS 所管理的实际用户,也包括代表用户的各进程。 客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。对于主体

和 客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label )。 敏感度标记被分成若干级别,例如绝密(Top Secret )、机密(Secret )· 可信( Confidential )、公开(PubliC )等。主体的敏感度标记称为许可证级别(ClearanCe 玫vel ) ,客体的敏感度标记称为密级(Classification Level )。

13 .什么是数据库的审计功能,为什么要提供审计功能? 答:审计功能是指DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。

因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。

14 .统计数据库中存在何种特殊的安全性问题?

答:统计数据库允许用户查询聚集类型的信息,如合计、平均值、最大值、最小值等,不允许查询单个记录信息。但是,人们可以从合法的查询中推导出不合法的信息,即可能存在隐蔽的信息通道,这是统计数据库要研究和解决的特殊的安全性问题。

第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 (Deptno NUMBER(2),

Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12)

CONSTRAINT PK_SC RIMARY KEY(Deptno)); CREATE TABLE EMP (Empno NUMBER(4), Ename VARCHAR(10), Age NUMBER(2),

CONSTRAINT C1 CHECK ( Aage<=60), Job VARCHAR(9),

Sal NUMBER(7,2), Deptno NUMBER(2),

CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno)

REFFERENCES DEPT(Deptno));

7 .关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的? 答:

对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。