数据库系统概论离线作业.docx
- 文档编号:24664164
- 上传时间:2023-05-30
- 格式:DOCX
- 页数:31
- 大小:248.93KB
数据库系统概论离线作业.docx
《数据库系统概论离线作业.docx》由会员分享,可在线阅读,更多相关《数据库系统概论离线作业.docx(31页珍藏版)》请在冰豆网上搜索。
数据库系统概论离线作业
浙江大学远程教育学院
《数据库系统概论》课程作业
第一章习题2、6、10
2、使用数据库系统有什么好处?
数据库是长期存储在计算机内有组织、大量、共享的数据集合,它可以供各种用户共享,具有最小冗余度和较高的数据独立性。
数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后后对数据库进行恢复。
数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。
这样急便于数据的几种管理,又能简化应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策的可靠性。
6、数据库管理系统的主要功能有那些?
①数据定义功能
②数据组织、存储和管理
③数据操纵功能
④数据库的事物管理和运行管理
⑤数据库的建立和维护功能
⑥其他功能,包括数据库管理系统与网络中其他软件系统的通信功能,一个数据库管理系统与另一个数据库管理系统或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等
10、试述层次模型的概念,举出三个层次模型的实例
在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:
2且只有一个节点没有双亲节点,这个节点称为根节点;
②根以外的其他节点有且只有一个双亲节点
三层实例:
第二章习题5、6
5、试述关系模型的完整性规则。
在参照完整性中,什么情况下外码属性的值可以为空值?
关系模型的完整性规则:
①实体完整性②参照完整性③用户定义的完整性
若属性F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R中每个元祖在F上的值只能等于S,或者取空值(F的每个属性值均为空值)
6.设有一个spj数据库,包括S,P,J及SPJ4个关系模式:
关系代数:
ALPHA语言:
GETW(SPJ.SNO):
SPJ.JNO=’J1’
QBE语言:
SPJ
SNO
PNO
JNO
QTY
P.S1
J1
(2)
关系代数:
ALPHA语言:
GETW(SPJ.SNO):
SPJ.JNO=’J1’∧SPJ.PNO=’P1’
QBE语言:
SPJ
SNO
PNO
JNO
QTY
P.S1
P1
J1
(3)
关系代数:
注:
是连在一起的,表示连接
ALPHA语言:
QBE语言:
SPJ
SNO
PNO
JNO
QTY
P.S1
P1
J1
P
PNO
PNAME
COLOR
WEIGHT
P1
红
(4)
关系代数:
ALPHA语言:
QBE语言:
S
SNO
SNAME
STATUS
CITY
S1
天津
P
PNO
PNAME
COLOR
WEIGHT
P1
红
SPJ
SNO
PNO
JNO
QTY
S1
P1
P.J1
(5)
关系代数:
ALPHA语言:
第三章习题4、5、9
4、用SQL语句建立第二章习题6中得4个表:
针对建立的4个表用SQL完成第2章习题6中的查询。
a.建立四个表:
建立S表:
S(SNO,SNAME,STATUS,CITY)
CREATETABLES
(SNOCHAR(3),
SNAMECHAR(10),
STATUSCHAR
(2),
CITYCHAR(10));
建立P表:
P(PNO,PNAME,COLOR,WEIGHT0
CREATETABLEP
(PNOCHAR(3),
PNAMECHAR(10),
COLORCHAR(4),
WEIGHTINT);
建立J表:
J(JNO,JNAME,CITY);
CREATETABLEJ
(JNOCHAR(3),
JNAMECHAR(10),
CITYCHAR(10));
建立SPJ表:
SPJ(SNO,PNO,JNO,QTY);
CREATETABLESPJ
(SNOCHAR(3),
PNOCHAR(3),
JNOCHAR(3),
QTYINT));
b.查询:
(1)求供应工程J1零件的供应商号码SNO
SELECTDISTINCTSNOFROMSPJWHEREJNO='J1'
(2)求供应工程J1零件Pl的供应商号码SNO
SELECTDISTINCTSNO
FROMSPJ
WHEREJNO='J1'ANDPNO='P1'
(3)求供应工程J1零件为红色的供应商号码SNO
SELECTDISTINCTSNO
FROMSPJ,P
WHEREJNO='J1'ANDSPJ.PNO=P.PNOANDCOLOR='红'
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
SELECTJNO
FROMJ
WHERENOTEXISTS
(SELECT*
FROMSPJ
WHERESPJ.JNO=J.JNO
ANDSNOIN
(SELECTSNO
FROMS
WHERECITY=’天津’)
ANDPNOIN
(SELECTPNO
FROMP
WHERECOLOR=’红’));
(5)求至少用了供应商Sl所供应的全部零件的工程号JNO
SELECTDISTINCTJNO
FROMSPJSPJZ
WHERENOTEXISTS
(SELECT*
FROMSPJSPJX
WHERESNO=’J1’
ANDNOTEXISTS
(SELECT*
FROMSPJSPJY
WHERESPJY.PNO=SPJX.PNO
ANDSPJY.JNO=SPJZ.JNO));
5、答:
(1)
SELECTSNAME,CITY
FROMS;
(2)
SELECTPNAME,COLOR,WEIGHT
FROMP;
(3)
SELECTJNO
FROMSPJ
WHERESNO=’S1’;
(4)
SELECTP.PNAME,SPJ.QTY
FROMP,SPJ
WHEREP.PNO=SPJ.PNOANDSPJ.JNO=’J2’;
(5)
SELECTDISTINCTPNO
FROMSPJ
WHERESNOIN
(SELECTSNO
FROMS
WHERECITY=’上海’);
(6)
SELECTJNAME
FROMJ,SPJ,S
WHEREJ.JNO=SPJ.JNO
ANDSPJ.SNO=S.SNO
ANDS.CITY=’上海’;
(7)
SELECTJNO
FROMJ
WHERENOTEXISITS
(SELECT*
FROMSPJ,S
WHEREJ.JNO=SPJ.JNO
ANDSPJ.SNO=S.SNO
ANDS.CITY=’天津);;
(8)
UPDATEP
SETCOLOR=’蓝’
WHERECLOOR=’红’;
(9)
UPDATESPJ
SETSNO=’S3’
WHERESNO=’S5’
ANDJNO=’J4’
ANDPNO=’P6’;
(10)
DELETE
FROMSPJ
WHERESNO=’S2’;
DELETE
FROMS
WHERESNO=’S2’;
(11)
INSERTINTOSPJ(SNO,JNO,PNO,QTY)
VALUES(S2,J6,P4,200);
9、答:
CREATEVIEWV_SPJAS
SELECTSNO,PNO,QTY
FROMSPJ
WHEREJNO=
(SELECTJNO
FROMJ
WHEREJNAME=’三建’);
(1)SELECTPNO,QTY
FROMV_SPJ;
(2)SELECTPNO,QTY
FROMV_SPJ
WHERESNO=’S1’;
第四章习题3、7、8、10
3、答:
(1)信息安全标准的发展历史,如下图:
TCSEC是1985年美国国防部正式颁布的《DoD可信计算机系统评估准则》。
CC通用准则V2.1版于1999年被ISO纳为国际标准,2001年我国采用其为国家标准。
目前CC已经基本取代了TCSEC,成为评估信息产品安全性的主要标准。
TCSEC/TDI标准将TCSEC扩展到数据库管理系统,TCSEC/TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准,从安全策略、责任、保证和文档4各方面来描述安全性级别划分的标准。
CC提出了目前国际上公认的表述信息技术安全性的结构,即把对信息产品的安全要求分为安全功能要求和安全保证要求。
安全功能要求用以规范产品和系统的安全行为,安全保证要求解决如何正确有效地实施这些功能。
(2)CC评估保证级划分如下:
7、答:
(1)
GRAINTSELECT
ON职工,部门
TO王明;
(2)
GRAINTINSERT,DELETE
ON职工,部门
TO李勇;
(3)
GRAINTSELECT
ON职工
WHENUSER()=NAME
TOALL;
(4)
GRAINTSELECT,UPDATE(工资)
ON职工
TO刘星;
(5)
GRAINTALTERTABLE
ON职工,部门
TO张新;
(6)
GRAINTALLPRIVILIGES
ON职工,部门
TO周平
WITHGRANTOPTION;
(7)
CREATEVIEW部门工资
AS
SELECT部门.名称,MAX(工资),MIN(工资),AVG(工资)
FROM职工,部门
WHERE职工.部门号=职工.部门号
GROUPBY职工.部门号
GRAINTSELECT
ON部门工资
TO杨兰
8、答:
(1)
REVOKESELECT
ON职工,部门
FROM王明;
(2)
REVOKEINSERT,DELETE
ON职工,部门
FROM李勇;
(3)
REVOKESELECT
ON职工
WHENUSER()=NAME
FROMALL;
(4)
REVOKESELECT,UPDATE(工资)
ON职工
FROM刘星;
(5)
REVOKEALTERTABLE
ON职工,部门
FROM张新;
(6)
REVOKEALLPRIVILIGES
ON职工,部门
FROM周平;
(7)
REVOKESELECT
ON部门工资
FROM杨兰;
DROPVIEW部门工资
10、答:
因为强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。
第五章习题2、5、6、7
2、答:
数据的完整性和安全性是两个既有联系又不尽相同的概念。
数据的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。
数据的安全性是保护数据库防止恶意破坏和非法存取。
安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取。
5、答:
关系数据库管理系统在实现参照完整性时需要考虑可能破坏参照完整性的各种情况,以及违约后的处理策略。
下表总结了可能破坏参照完整性的4种情况及可采取的违约策略:
4种情况分别是指:
在参照关系中插入元组、修改外码值时可能破坏参照完整性,在删除被参照表的元组、修改主码值时可能破坏参照完整性。
被参照表
参照表
违约处理
可能破坏参照完整性
插入元组
拒绝
可能破坏参照完整性
修改外码值
拒绝
删除元组
可能破坏参照完整性
拒绝/级联删除/设置为空值
修改主码值
可能破坏参照完整性
拒绝/级联删除/设置为空值
6、答:
CREATETABLEDEPT
(DeptnoNUMBER(3)RIMARYKEY,
DeptnameVARCHAR(10),
ManagerVARCHAR(10),
PhoneNumberChar(12)
);
CREATETABLEEMP
(EmpnoNUMBER(10),
EnameVARCHAR(10),
AgeNUMBER
(2)
CONSTRAINTC1CHECK(Age<=60),
JobVARCHAR(10),
SalNUMBER(9,2),
DeptnoNUMBER(3),
RIMARYKEY(Empno),
FOREIGNKEY(Deptno)REFFERENCESDEPT(Deptno)
);
7、答:
对于违反实体完整性和用户定义的完整性的操作,一般都采用拒绝执行的方式进行处理。
而对于违反参照完整性的操作,并非都是简单的拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。
第六章习题2、7
2、答:
(1)关系模式如下:
学生:
S(Sno,Sname,Sbirth,Dept,Class,Rno)
班级:
C(Class,Pname,Dept,Cnum,Cyear)
系:
D(Dept,Dno,Office,Dnum)
学会:
M(Mname,Myear,Maddr,Mnum)
学生—学会:
SM(Sno,Mname,Date)
其中:
Sno——学号,Sname——姓名,Sbirth——出生年月,Dept——系名,Class——班号,Rno——宿舍区,Pname——专业名,Cnum——班级人数,Cyear——入校年份,Dno——系号,Office——系办公室地点,Dnum——系人数,Mname——学会名,Myear——成立年份,Maddr——地点,Mnum——学会会员人数,Date——入会年份
(2)每个关系模式的最小函数依赖集如下:
一、
学生S(Sno,Sname,Sbirth,Dept,Class,Rno)的最小函数依赖集如下:
Sno→Sname,Sno→Sbirth,Sno→Class,Class→Dept,Dept→Rno
传递依赖如下:
Sno→Class,Class→Dept,所以Sno与Dept之间存在着传递函数依赖Sno→Dept.
Class→Dept,Dept→Rno,所以Class与Rno之间存在着传递函数依赖Class→Rno.
Sno→Class,Class→Dept,Dept→Rno,所以Sno与Rno之间存在着传递函数依赖Sno→Rno.
(Pname,Cyear)→Class函数依赖左部具有两个属性,都是完全函数依赖,没有部分函数依赖的情况。
二、
班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:
Class→Pname,Class→Cnum,Class→Cyear,Pname→Dept,(Pname,Cyear)→Class.
由于Class→Pname,Pname→Class,Pname→Dept,所以C1ass与Dept之间存在着传递函数依赖Class→Dept。
三、
系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:
Dept→Dno,Dno→Dept,Dno→Office,Dno→Dnum
根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。
四、
学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:
Mname→Myear,Mname→Maddr,Mname→Mnum
该模式不存在传递依赖。
五、学生—学会SM(Sno,Mname,Date)的最小函数依赖集如下:
(Sno,Mname)→Date
该模式不存在传递依赖。
(Sno,Mname)→Date
函数依赖左部具有两个属性,都是完全函数依赖,没有部分函数依赖的情况。
(3)各关系模式的候选码、外部码,全码如下:
关系候选码外部码全码
SSnoDept,Class无
CClass和(Pname,Cyear)Dept无
DDept和Dno无无
MMname无无
SM(Sno,Mname)Sno,Mname无
7、答:
(1)正确
(2)正确
(3)正确
(4)错误,正确应该是:
当且仅当多值依赖A→→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接。
(5)正确
(6)正确
(7)正确
(8)错误。
反例:
课本P52页图3.4中SC表,关系模式SC(Sno,Cno,Grade),(Sno,Cno)→Grade,但是Sno,CnoGrade,
第七章习题9、10
9、答:
数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用的数据库管理系统产品所支持的数据模型相符合的逻辑结构。
设计步骤为:
(1)将概念结构转换为一般的关系、网状、层次模型;
(2)将转换来的关系、网状、层次模型向特定数据库管理系统支持下的数据模型转换;
(3)对数据模型进行优化。
10、答:
(1)习题7的E-R图为:
各实体属性如下:
系:
系编号,系名,学校名
班级:
班级编号,班级名,年级,系编号
教研室:
教研室编号,名称,系编号
学生:
学号,姓名,性别,学历,班级编号,导师职工号
课程:
课程编号,课程名
教员:
职工号,姓名,职称,教研室编号
各联系的属性如下:
选修课:
成绩
转换的关系模型如下(带下划线的属性是主码属性):
系(系编号,系名,学校名)
班级(班级编号,班级名,年级,系编号)
教研室(教研室编号,名称,系编号)
学生(学号,姓名,性别,学历,班级编号,导师职工号)
课程(课程号,课程名)
教员(职工号,姓名,职称,教研室编号)
选课(学号,课程号,成绩)
(2)习题8的E-R图为:
各实体属性如下:
仓库:
仓库号,仓库名
产品:
产品号,产品名称,仓库号
零件:
零件号,零件名称
材料:
材料号,材料名称,材料类别,仓库号,存放量
各联系的属性如下:
产品组成:
使用零件数量
零件组成:
使用材料数量
零件储存:
存储量
材料存放:
存放量
转换的关系模型如下(带下划线的属性是主码属性):
仓库(仓库号,仓库名)
产品(产品号,产品名称,仓库号)
零件(零件号,零件名称)
材料(材料号,材料名称,材料类别,仓库号,存放量)
产品组成(产品号,零件号,使用零件数量)
零件组成(零件号,材料号,使用材料数量)
零件储存(零件号,仓库号,存储量)
第九章习题3
3、
第十章习题3、4、5
3、登记日志文件时为什么先写日志文件,后写数据库?
答:
把对数据库的修改写到数据库中和把这个修改的日志记录写到日志文件中是两个不同的操作。
有可能在这两个操作之间发生故障,即两个操作只完成了一个。
如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。
如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。
4、答:
(1)如果系统故障发生在14之后,T1,T3需要重做,T2,T4需要回滚。
(2)如果系统故障发生在10之后,T1需要重做,T2,T3需要回滚。
(3)如果系统故障发生在9之后,T1需要重做,T2,T3需要回滚。
(4)如果系统故障发生在7之后,T1需要重做,T2需要回滚。
5、答:
(1)如果系统故障发生在14之后,A=8,B=7,C=11;
(2)如果系统故障发生在12之后,A=10,B=0,C=11;
(3)如果系统故障发生在10之后,A=10,B=0,C=11;
(4)如果系统故障发生在9之后,A=10,B=0,C=11;
(5)如果系统故障发生在7之后,A=10,B=0,C=11;
(6)如果系统故障发生在5之后,A=0,B=0,C=0
第十一章习题4、7、9*、10*
4、如何用封锁机制保证数据的一致性?
答:
数据库管理系统在对数据进行读、写操作之前首先对该数据执行封锁操作,例如事Tl在对A进行修改之前先对A执行Xlock(A),即对A加x锁。
这样,当T2请求对A加x锁时就被拒绝,T2只能等待Tl释放A上的锁后才能获得对A的x锁,这时它读到的A是Tl更新后的值,再按此新的A值进行运算。
这样就不会丢失Tl的更新。
DBMS按照一定的封锁协议对并发操作进行控制,使得多个并发操作有序地执行,就可以避免丢失修改、不可重复读和读“脏”数据等数据不一致性。
7、请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?
答:
(1)数据库管理系统在解决死锁的问题上通常采用的方法是:
允许死锁发生,DBMS检测到死锁后对其加以解除。
(2)数据库系统中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。
超时法:
如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。
超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。
若时限设置得太长,又不能及时发现死锁发生。
等待图法:
事务等待图是一个有向图G=(T,U),T为结点的集合,每个结点表示正运行的事务;U为边的集合,每条边表示事务等待的情况。
若T1等待T2,则T1、T2之间划一条有向边,从T1指向T2。
事务等待图动态地反映了所有事务的等待情况。
并发控制子系统周期性地(比如每隔1分钟)检测事务等待图,如果发现图中存在回路,则表示系统中出现了死锁。
DBMS并发控制子系统检测到死锁后,就要设法解除。
通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。
当然,对撤销的事务所执行的数据修改操作必须加以恢复。
9*、答:
(1)可能的结果有4种,分别为2、4、8、16
执行次序
执行结果
T1T2T3
16
T1T3T2
8
T2T1T3
4
T2T3T1
2
T3T1T2
4
T3T2T1
2
(2)
T1
T2
T3
SlockA
Y=A=0
UnlockA
XlockA
SlockA
等待
A=Y*2
等待
写回A(=0)
等待
UnlockA
SlockA
Y=A=0
UnlockA
XlockA
SlockA
A=Y+2
等待
写回A(=2)
等待
UnlockA
等待
SlockA
Y=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概论 离线 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)