数据库系统概论第4版第四章到十一章习题答案Word格式.docx
《数据库系统概论第4版第四章到十一章习题答案Word格式.docx》由会员分享,可在线阅读,更多相关《数据库系统概论第4版第四章到十一章习题答案Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
部门(部门号,名称,经理名,XXX,电话号)
请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能;
(a)用户王明对两个表有SELECT权力
GRANTSELECTON职工,部门TO王明
撤消:
REVOKESELECTON职工,部门FROM王明
(b)用户李勇对两个表有INSERT和DELETE权力
GRANTINSERT,DELETEON职工,部门TO李勇
REVOKEINSERT,DELETEON职工,部门FROM李勇
(c)*每个职工只对自己的记录有SELECT权力
方法1:
createviewmyselfasselect*from职工where职工号=$mynumber;
grantselectonmyselfto$myname;
*方法2:
grantselecton职工whenuser()=NAMETOALL
注意:
这里假定系统的GRANT语句支持when子句和user()的使用,用户将自己的名字作为ID。
不同系统的扩展语句可能是不同的。
(d)用户刘星对职工表有SELECT权力,对工资字段具有更新权力
答:
GRANTSELECT,UPDATE(工资)ON职工TO刘星
(e)用户张新具有修改这两个表的结构的权力。
GRANTALTERTABLEON职工,部门TO张新
(f)用户周平具有对两个表所有权力(读、插、改、删数据),并具有给其他用户授权的权力
GRANTALLPRIVIEGESON职工,部门TO周平WITHGRANTOPTION
(g)*用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权力,他不能查看每个人的工资
1.先建立一个视图
CREATEVIEW部门工资ASSELECT部门.名称,max(工资),min(工资),
avg(工资)FROM职工,部门WHERE职工.部门号=部门.部门号
GROUPBY职工.部门号;
2再对这个视图定义杨兰的存取权限
GRANTSELECTON部门工资to杨兰
10.为什么强制存取控制提供了更高级别的数据库安全性?
答:
强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。
11.理解并解释MAC机制中主体、客体、敏感度标记的含义。
主体:
是系统中的活动实体,包括DBMS所管理的实际用户,代表用户的各进程。
客体:
是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。
敏感度:
对于主体和客体,DBMS为它们每个实体(值)指派一个敏感度标记(Label)。
敏感度标记被分成若干级别,例如绝密、机密、可信、公开等。
主体的敏感度标记称为许可证级别,客体的敏感度标记称为密级。
12.举例说明MAC机制如何确定主体能否存取客体。
假设要对关系变量S进行MAC控制,为简化起见,假设要控制存取的数据单元是元组,则每个元组标以密级,如下表所示:
(4=绝密,3=机密,2=秘密)
S#
SNAME
STATUS
CITY
CLASS
S1
东方红
20
天津
2
S2
丰泰盛
10
北京
3
S3
为民
24
南昌
4
假设用户U1和U2的许可证级别为3和2,则根据规则U1能查得元组S1和S2,可修改元组S2;
而U2只能查得元组S1,只能修改元组S1.
13.什么是数据库的审计功能,为什么要提供审计功能?
审计功能是指DBMS的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。
因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在.利用数据库的审计功能,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
14.统计数据库中存在何种特殊的安全性问题?
统计数据库允许用户查询聚集类型的信息,如合计、平均、最大值、最小值等,不允许查询单个记录信息。
但是,人们可以从合法的查询中推导出不合法的信息,即可能存在隐蔽的信息通道,这是统计数据库要研究和解决的特殊的安全性问题。
例如:
某个用户A想知道另一用户B的工资数额,可以通过下列两个合法查询获取:
用户A和其字N个程序员的工资总额是多少?
X
用户B和其他N个程序员的工资总额是多少?
Y
自己的工资是Z
用户B工资=Y-(X-Z)
第五章习题
1.什么是数据库的完整性?
数据库的完整性是指数据的正确性和相容性。
2.数据库完整性概念与数据库的安全性概念有什么区别和XXX?
数据库完整性和安全性是两个不同的概念,但有一定的XXX。
(1)数据库完整性是为了防止数据库中存在不合语义的数据,防止错误信息的输入和输出所造成的无效操作和错误结果。
完整性措施的防范对象是不合语义的数据。
安全性是保护数据库防止恶意的破坏和非法的存取。
安全性措施的防范对象是非法用户的非法操作。
3.DBMS的完整性控制机制应具有哪些功能?
1)定义功能,即提供定义完整性约束条件的机制;
2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;
3)违约反应,如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
6.假设有下面两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中部门号为主码;
部门(部门号,名称,经理名,电话),其中部门号为主码。
用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义;
定义每个模式的主码;
定义参照完整性;
定义职工年龄不得超过60岁。
CREATETABLEDEPT
(DeptnoNUMBER
(2),
DeptnameVARCHAR(18),
ManagerVARCHAR(8),
PhoneNumberChar(12),
CONSTRAINTPK_SCPRIMARYKEY(Deptno));
*定义部门号为主码
CREATETABLEEMP
(EmpnoNUMBER(4),
EnameVARCHAR(8),
AgeNUMBER
(2),
CONSTRAINTC1CHECK(Age<
=60),
JobVARCHAR(10),
SalNUMBER(7,2),
DeptnoNUMBER
(2),
CONSTRAINTFK_DEPTNO*约束名为FK_DEPTNO
FOREIGNKEY(Deptno)*定义Deptno为外码
REFERENCESDEPT(Deptno);
*相应于哪个表的主码
7.关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时。
一般是如何分别进行处理的?
对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方法进行处理。
而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。
第六章习题
1。
属于BCNF的关系模式________。
已消除了插入、删除异常
已消除了插入、删除异常、数据冗余
仍然存在插入、删除异常
在函数依赖范畴内,已消除了插入和删除的异常
2.设R(U)是属性集U上的关系模式。
X,Y是U的子集。
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称________。
Y函数依赖于X
Y对X完全函数依赖
X为U的候选码
R属于2NF
3.在R(U)中,如果X→Y,并且对于X的任何一个真子集X'
都有X'
→Y,则________。
4.包含在_______中的属性,叫做主属性。
主码
候选码
外码
全码
5.多值依赖的毛病在于________。
插入异常
删除异常
数据冗余太大
插入异常、删除异常、数据冗余太大
6.1NF________规范为2NF。
消除非主属性对码的部分函数依赖
消除非主属性对码的传递函数依赖
消除主属性对码的部分和传递函数依赖
消除非平凡且非函数依赖的多值依赖
7.2NF________规范为3NF。
8.3NF________规范为BCNF。
9.3NF________规范为4NF。
10.下面的结论正确的是______。
任何一个二目关系是属于3NF的。
任何一个二目关系是属于BCNF的。
任何一个二目关系是属于4NF的。
当且仅当函数依赖A→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接
11.下面的结论不正确的是______。
若R.A→R.B,R.B→R.C则R.A→R.C
若R.A→R.B,R.A→R.C则R.A→R.(B,C)
若R.B→R.A,R.C→R.A则R.(B,C)→R.A
若R.(B,C)→R.A则R.B→R.A,R.C→R.A
P196习题2建立一个关于系、学生、班级、学会等信息的数据库。
描述学生的属性有:
学号、姓名、出生年月、系名、班号、宿舍区。
描述班级的属性有:
班号、专业名、系名、人数、入校年份。
描述系的属性有:
系名,系号,系办公室地点、人数。
描述学会的属性有:
学会名、成立年份、地点、人数
有关语义如下:
一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一个宿舍区。
每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
请给出关系模式,指出每个关系模式是否存在传递函数依赖,是否存在部分函数依赖,属于第几范式。
根据题意,有以下4个关系模式:
1.
学生(学号,姓名,出生年月,系名,班号,宿舍区)
存在传递函数依赖,不存在部分函数依赖,所以学生∈2NF
2.
班级(班号,专业名,系名,人数,入校年份)
存在传递函数依赖,不存在部分函数依赖,所以班级∈2NF’
3.系(系名,系号,系办公室地点、人数)
系号系名,系号系办公室地点,系号系人数
不存在传递函数依赖,不存在部分函数依赖,所以学生∈3NF
4.学会(学会名,成立年份,地点,人数)
不存在传递函数依赖,不存在部分函数依赖,所以学会∈BCNF
因为学生关系和学会关系是多对多的关系,所以还有一个XXX模式
5.加入学会(学会名,学号,姓名,入会年份)
有,(学会名,学号)入会年份,(学会名,学号)P姓名
所以,加入学会∈1NF
将加入学会分解为:
加入学会1(学会名,学号,入会年份),加入学会2(学号,姓名)
函数依赖:
学生:
学号姓名,学号出生年月,班号系名,
系名宿舍区
班级:
班号专业名,班号班级人数,专业名系名,
班号入校年份,(专业名,入校年份)班号
因为每个专业每年只招一个班
系:
系号系名,系名系号,系号码系办公地点,系号系人数
学会:
学会名成立年份,学会名地点,学会名学会人数
加入学会:
(学会名,学号)入会年份,(学会名,学号)P姓名
左部是多属性的(专业名,入校年份)班号是完全函数依赖,
(学会名,学号)入会年份是完全函数依赖
(学会名,学号)姓名是部分函数依赖。
P197习题4:
证明:
设Yxz=Yxz’对于每一组(x,z,z’)都成立,现证其能推出定义5.9的条件:
设s,t是关系r中的两个元组,s[X]=t[X],由新定义的条件可知对于每一个z值,都对应相同的一组y值。
这样一来,对相同的x值,交换的x值,交换y值后所得的元组仍然属于关系r,即定义5.9的条件成立。
如果定义5.9的条件成立,则对相同的x值,交换y值后所得的元组仍然属于关系r,由于任意性及其对称性,可知每个z值对应相同的一组y值,所以Yxz=Yxz’对于每一组(x,z,z’)都成立。
综上可知,新定义和定义5.9的条件是等从的,所以新定义和定义5.9是等价的。
第七章习题
6.数据字典的内容和作用是什么?
数据字典是系统中各类数据描述的集合。
数据字典的通常包括:
数据项、数据结构、数据流、数据存储、处理过程五个部分。
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。
数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容,
数据字典的作用:
数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善。
8.什么叫数据抽象?
试举例说明。
数据抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。
如“分类”这种抽象是:
定义某一类概念作为现实世界中一组对象的类型。
它抽象了对象值和型之间的“ismemberof”的语义。
在E-R模型中,实体型就是这种抽象。
如实体型学生,张三,李四,王二等是学生中的一员,具有学生们共同的特性和行为。
10.什么是E-R图?
构成E-R图的基本要求是什么?
E-R图为实体-XXX图,提供了表示实体型、属性和XXX的方法,用来描述现实世界的概念模型。
构成E-R图的基本要素是实体型、属性和XXX,其表示方法为:
实体型:
矩形+实体名
属性:
椭圆形,无向边与实体连接
XXX:
菱形+XXX名,无向边与实体连接,边上标注XXX类型(1:
1,1:
n,m:
n)
15.试把第一章习题12和习题13中的E-R图转换为关系模型。
习题12:
各实体的属性为:
系号,系名
班级号,班级名
教研室:
教研室编号,教研室名
学号,姓名,学历
课程:
课程号,课程名
教员:
职工号,姓名,职称
各XXX的属性为:
选修课:
成绩
其关系模型为:
系(系编号,系名,学校名)
班级(班级号,班级名,系号)
教研室(教研室编号,教研室名,系编号)
学生(学号,姓名,学历,班级号,导师职工号)
课程(课程号,课程名)
教员(职工号,姓名,职称,教研室编号)
选课(学号,课程号,成绩)
习题13的E-R图
m
组成使用使用权
n
n
储存
mm
制造
1
n存放
对应的关系模型为:
产品(产品号,产品名)
零件(零件号,零件名)
材料(材料号,材料名,类别,仓库号,存放量)
仓库(仓库号,仓库名)
产品组成(产品号,零件号,使用零件量)
零件储存(零件号,仓库号,存储量)
材料制造(零件号,材料号,使用材料量)
17.试用规范化理论中有关范式的概念分析习题15中你设计的关系模型中各个关系模式的码,它们属于第几范式?
会产生什么更新异常?
习题15中设计的两个关系数据库的各个关系模式的码都用下划线注明,这些关系模式都只有一个码,且都是唯一决定的因素,所以都属于BCNF。
不会产生更新异常现象。
18.规范化理论对数据库设计有什么指导意义?
规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用以指导关系数据模型的优化,用来预测模式可能出现的问题,为设计人员提供了自动产生各种模式的算法工具,使数据库设计工作有了严格的理论基础。
21.数据输入在实施阶段的重要性是什么?
如何保证输入数据的正确性?
数据库是用来对数据进行存储、管理与应用的,因此在实施阶段必须将原有系统中的历史数据输入到数据库。
数据量一般都很大,而且数据来源于部门中的各个不同的单位。
数据的组织方式、结构和格式都与新设计的数据库系统有相当的差距,组织数据录入就要将各类源数据从各个局部应用中抽取出来,分类转换,最后综合成符合新设计的数据库结构的形式,输入数据库。
因此这样的数据转换、组织入库的工作是相当费力费时的工作。
特别是原系统是手工数据处理系统时,各类数据分散在各种不同的原始表格、凭证、单据之中,数据输入工作量更大。
保证输入数据正确性的方法:
为提高数据输入工作的效率和质量,应该针对具体的应用环境设计一个数据录入子系统,由计算机来完成数据入库的任务。
在源数据入库之前要采用多种方法对它们进行检验,以防止不正确的数据入库。
22.什么是数据库的再组织和重构造?
为什么要进行数据库的再组织和重构造?
数据库的重组织是指:
按原设计要求重新安排存储位置,回收垃圾,减少指针链,提高系统性能。
数据库的重构造是指:
部分修改数据库的模式和内模式。
即修改原设计的逻辑和物理结构。
数据库运行一段时间后,由于记录的不断增、删、改,会使数据库的物理存储变坏,从而降低数据库存储空间的利用率和数据的存取效率,使数据库的性能下降。
这时DBA就要对数据库进行重组织,或部分重组织(只对频繁增、删的表进行重组织)。
DBMS一般都提供了供重组织数据库使用的实用程序
当数据库应用环境发生变化,会导致实体及实体间的XXX也发生相应的变化,使原有的数据库设计不能很好地满足新的需求,从而不得不适当调整数据库的模式和内模式。
这就是数据库的重构造。
第十一章习题
5.如何用封锁机制保证数据的一致性?
DBMS在对数据进行读、写操作之前首先对该数据执行封锁操作。
按照一定的封锁协议,对并发操作进行控制,使得多个并发操作有序地执行,就可以避免丢失修改、读“脏“数据不可重复读等数据不一致性。
6.什么是封锁协议?
在运用封锁技术对数据加锁时,要约定一些规则。
例如,在运用X锁和S锁对数据对象加锁时,要约定何时申请X锁或S锁、何时释放封锁等。
这些约定或者规则称为封锁协议。
对封锁方式约定不同的规则,就形成了各种不同的封锁协议、不同级别的封锁协议。
7.不同封锁协议与系统一致性级别的关系是什么?
不同的封锁协议对应不同的一致性级别。
一级封锁协议可防止丢失修改,并保证事务T是可恢复的。
但不能保证可重复读和不读“脏”数据(因为读数不加锁)。
二级封锁协议可防止丢失更新、可进一步防止不读“脏”数据。
但不能保证可重复读。
三级封锁协议可防止丢失更新、可进一步防止不读“脏”数据和进一步防止了不可重复读。
12.什么样的并发调度是正确的调度?
可串行化的调度是正确的调度。
可串行化的调度的定义:
多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,称这种调度策略为可串行化的调度。
13:
设T,T2,T3是如下的三个事务:
T1:
A=A+2,T2:
A=A*2,T3:
A=A**2,初值A=0
(1)若这三个事务允许并发执行,则有多少种可能的正确结果?
至少有4种可能的正确结果,分别为A=16,A=8,A=4,A=2
有6种串行调度:
A.按T1→T2→T3次序执行,结果A=16
B.按T1→T3→T2次序执行,结果A=8
C.按T2→T3→T1次序执行,结果A=2
D.按T2→T1→T3次序执行,结果A=4
E.按T3→T2→T1次序执行,结果A=2
F.按T3→T1→T2次序执行,结果A=4
至少有8种可串行化调度:
AA结果A=16与A串行调结果相同BB结果A=8与B串行调结果相同
是可串行化调度是可串行化调度
T1
T2
T3
T1
SlockA
读A=0
UnlockA
XlockA
A=A+1
写回A(=2)
等待
读A=4
A=A*2
写回A(=8)
读A=8
A=A**2
写回A(=16)
U