王珊数据库系统概论第四版部分习题答案Word文档格式.docx
- 文档编号:17308707
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:21
- 大小:99.42KB
王珊数据库系统概论第四版部分习题答案Word文档格式.docx
《王珊数据库系统概论第四版部分习题答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《王珊数据库系统概论第四版部分习题答案Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
数据与程序的逻辑独立性:
当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。
应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
数据与程序的物理独立性:
当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
第二章
4.试述关系模型的完整性规则,在参照完整性中,为什么外部码属性也可以为空?
什么情况下才可以为空?
实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值);
或者等于S中某个元组的主码值。
即属性F本身不是主属性,则可以取空值,否则不能取空值。
5.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
1)πSno(σSno=‘J1’(SPJ))
2)πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))
3)πSno(σPno=‘P1‘(σCOLOR=’红‘(P)∞SPJ))
4)πJno(SPJ)-πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)
5)πJno,Pno(SPJ)÷
πPno(σSno=‘S1‘(SPJ))
第三章
3、用SQL语句建立第二章习题5中的四个表。
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:
CREATETABLES(SnoC
(2)UNIQUE,SnameC(6),StatusN
(2),CityC(4))
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:
CREATETABLEP(PnoC
(2)UNIQUE,PnameC(6),COLORC
(2),WEIGHTI
(2))
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:
CREATETABLEJ(JnoC
(2)UNlQUE,JNAMEC(8),CITYC(4))
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:
CREATETABLESPJ(SnoC
(2),PnoC
(2),JNOC
(2),QTYN
(2))
4.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询:
1)求供应工程J1零件的供应商号码SNO:
SELECTDISTSNOFROMSPJWHEREJNO=’J1’
2)求供应工程J1零件P1的供应商号码SNO:
SELECTDISTSNOFROMSPJWHEREJNO='
J1'
ANDPNO='
P1'
3)求供应工程J1零件为红色的供应商号码SNO:
SELECTSNOFROMSPJ,PWHEREJNO='
ANDSPJ.PNO=P.PNOANDCOLOR='
红'
4)求没有使用天津供应商生产的红色零件的工程号JNO:
SELECTDISTJNOFROMSPJWHEREJNONOTIN(SELEJNOFROMSPJ,P,SWHERES.CITY='
天津'
ANDCOLOR='
ANDS.SNO=SPJ.SNOANDP.PNO=SPJ.PNO)。
5)求至少用了供应商S1所供应的全部零件的工程号JNO。
由于VFP不允许子查询嵌套太深,将查询分为两步
A、查询S1供应商供应的零件号:
SELECTDISTPNOFROMSPJWHERESNO='
S1'
结果是(P1,P2)
B、查询哪一个工程既使用P1零件又使用P2零件:
SELECTJNOFROMSPJWHEREPNO='
ANDJNOIN(SELECTJNOFROMSPJWHEREPNO='
P2'
)
5.针对习题3中的四个表试用SQL语言完成以下各项操作:
(1)找出所有供应商的姓名和所在城市。
SELECTSNAME,CITYFROMS
(2)找出所有零件的名称、颜色、重量。
SELECTPNAME,COLOR,WEIGHTFROMP
(3)找出使用供应商S1所供应零件的工程号码。
SELECTDISTJNOFROMSPJWHERESNO='
(4)找出工程项目J2使用的各种零件的名称及其数量。
SELECTPNAME,QTYFROMSPJ,PWHEREP.PNO=SPJ.PNOANDSPJ.JNO='
J2'
(5)找出上海厂商供应的所有零件号码。
SELECTPNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDCITY='
上海'
(6)出使用上海产的零件的工程名称。
SELECTJNAMEFROMSPJ,S,JWHERES.SNO=SPJ.SNOANDS.CITY='
ANDJ.JNO=SPJ.JNO
(7)找出没有使用天津产的零件的工程号码。
注意:
SELECTDISPJNOFROMSPJWHEREJNONOTIN(SELECTDISTJNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDS.CITY='
)适用于JNO是唯一或不唯一的情况.
注意:
SELECTDISTJNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDS.CITY<
>
'
适用于JNO是唯一的情况
(8)把全部红色零件的颜色改成蓝色。
UPDATEPSETCOLOR='
蓝'
WHERECOLOR='
(9)由S5供给J4的零件P6改为由S3供应。
UPDATESPJSETSNO='
S3'
WHERESNO='
S5'
ANDJNO='
J4'
P6'
(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。
A、DELETEFROMSWHERESNO=’S2’
B、DELETEFROMSPJWHERESNO=‘S2’
(11)请将(S2,J6,P4,200)插入供应情况关系。
INSERTINTOSPJVALUES(‘S2’,‘J6’,‘P4’,200)
第四章
8、(a)用户王明对两个表有SELECT权力。
GRANTSELECTON职工,部门TO王明
(b)用户李勇对两个表有INSERT和DELETE权力。
GRANTINSERT,DELETEON职工,部门TO李勇
(c)每个职工只对自己的记录有SELECT权力。
GRANTSELECTON职工WHENUSER()=NAMETOALL;
(d)用户刘星对职工表有SELECT权力,对工资字段具有更新权力。
GRANTSELECT,UPDATE(工资)ON职工TO刘星
(e)用户张新具有修改这两个表的结构的权力。
GRANTALTERTABLEON职工,部门TO张新;
(f)用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。
GRANTALLPRIVILIGESON职工,部门TO周平WITHGRANTOPTION;
(g)用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。
CREATEVIEW部门工资AS
SELECT部门.名称,MAX(工资),MIN(工资),AVG(工资)FROM职工,部门WHERE职工.部门号=部门.部门号
GROUPBY职工.部门号GRANTSELECTON部门工资TO杨兰;
第五章
6.答:
CREATETABLEDEPT
(DeptnoNUMBER
(2),
DeptnameVARCHAR(10),
ManagerVARCHAR(10),
PhoneNumberChar(12)
CONSTRAINTPK_SCRIMARYKEY(Deptno));
CREATETABLEEMP
(EmpnoNUMBER(4),
EnameVARCHAR(10),
AgeNUMBER
(2),
CONSTRAINTC1CHECK(Aage<
=60),
JobVARCHAR(9),
SalNUMBER(7,2),
DeptnoNUMBER
(2),
CONSTRAINTFK_DEPTNO
FOREIGNKEY(Deptno)
REFFERENCESDEPT(Deptno));
第六章
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)
(2)每个关系模式的最小函数依赖集如下:
A、学生S(Sno,Sname,Sbirth,Dept,Class,Rno)
最小函数依赖集如下:
SnoSname,SnoSbirth,SnoClass,ClassDept,DEPTRno
传递依赖如下:
由于SnoDept,而DeptSno,DeptRno(宿舍区)所以Sno与Rno之间存在着传递函数依赖。
由于ClassDept,DeptClass,DeptRno所以Class与Rno之间存在着传递函数依赖。
由于SnoClass,ClassSno,ClassDept所以Sno与Dept之间存在着传递函数依赖。
B、班级C(Class,Pname,Dept,Cnum,Cyear)
最小函数依赖集如下:
ClassPname,ClassCnum,ClassCyear,PnameDept.
由于ClassPname,PnameClass,PnameDept所以C1ass与Dept之间存在着传递函数依赖。
C、系D(Dept,Dno,Office,Dnum)
DeptDno,DnoDept,DnoOffice,DnoDnum
根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。
D、学会M(Mname,Myear,Maddr,Mnum)
MnameMyear,MnameMaddr,MnameMnum
该模式不存在传递依赖。
(3)各关系模式的候选码、外部码,全码如下:
A、学生S候选码:
Sno;
外部码:
Dept、Class;
无全码
B、班级C候选码:
Class;
Dept;
C、系D候选码:
Dept或Dno;
无外部码;
D、学会M候选码:
Mname;
第七章
1.数据库的设计过程。
按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段:
需求分析.概念结构设计.逻辑结构设计.物理结构设计.数据库实施.数据库运行和维护.
这是一个完整的实际数据库及其应用系统的设计过程。
不仅包括设计数据库本身,还包括数据库的实施、运行和维护。
设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。
12、第一章12和13的E-R图:
18.现有一局部应用,包括两个实体:
“出版社”和“作者”,这两个实体是多对多的联系,请自己设计适当的属性,画出E-R图,再将其转换为关系模型(包括关系名,属性名、码和完整性约束条件)。
1)出版社的属性:
出版社名、地址、所在城市。
作者的属性:
姓名、职称、工作单位、邮编、联系电话。
这两个实体是多对多的联系:
出版。
联系的属性是:
书名、出版日期。
2)
3)据E-R图向关系模型转换原则,实体“出版社”和“作者”转换为关系模型如下:
出版社(出版社名,地址,所在城市)
作者(作者名,职称,工作单位,联系电话,邮编)
两个实体之间的联系“出版”是多对多联系,据E-R图向关系模型转换原则,将两个实体的码加上联系的属性构成出版关系,出版社名、作者名、书名不能取空,关系模式如下:
出版(出版社名,作者名,书名,出版日期)
19.请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:
读者号,姓名,地址,性别,年龄,单位。
对每本书存有:
书号,书名,作者,出版社,对每本被借出的书存有读者号、借出日期和应还日期。
要求:
给出E-R图,再将其转换为关系模型。
1)画出E-R图
2)据E-R图向关系模型转换原则,“书”、“读者”、“借阅”转换为关系模型如下:
读者(读者号,姓名,地址,性别,年龄,单位)
书(书号,书名,作者,出版社)
两个实体“读者”与“书”之间的联系“借阅”是一对一联系,据E-R图向关系模型转换原则,将两个实体的码加上联系的属性构成“借阅”关系,读者号、书号不能取空,关系模式如下:
借阅(读者号,书号,借出日期,应还日期)
第九章
2.对学生-课程数据库有如下的查询:
查询信息系学生选修的所有课程名称:
SELECTCnameFROMSt,Course,SCWHERESt.Sno=SC.SnoANDSC.Cno=Course.CnoANDSt.Sdept=’IS’
试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。
关系代数表达式如下:
πcname(бSt.sdept=’IS’(бst.sno=sc.Sno(бsc.Cno=Course.Cno(ST×
SC×
COURSE)))
用关系代数表示的语法树如下左图:
πcnameπcname
бSt.sdept=’IS’бSo=o
бst.sno=sc.Sno×
бsc.Cno=Course.CnoбSt.sno=sc.snoπcno,cname
×
Course
Courseπsnoπsno,cno
StScSt.sdept=’IS’Sc
St
用关系代数表达式优化算法对原关系代数表达式进行优化,优化后的关系代数表达式如下:
πcname(бo=o((бSt.sno=sc.sno(πsno(бSt.sdept=’IS’(ST))×
πsno,cno(SC)))×
πcno,cname(Course))
第十章
1.试述事务的概念及事务的4个特性。
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务具有4个特性:
原子性(Atomicity)、一致性(consistency)、隔离性(Isolation)和持续性(Durability)。
这4个特性也简称为ACID特性。
原子性:
事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性:
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性:
一个事务的执行不能被其他事务干扰。
即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持续性:
持续性也称永久性(Perfnanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
接下来的其他操作或故障不应该对其执行结果有任何影响。
5.数据库恢复的基本技术有哪些?
数据转储和登录日志文件是数据库恢复的基本技术。
当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。
8.登记日志文件时为什么必须先写日志文件,后写数据库?
把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。
有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。
如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。
如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。
所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。
第十一章
1、在数据库中为什么要并发控制?
数据库是共享资源,通常有许多个事务同时在运行。
当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。
若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。
所以数据库管理系统必须提供并发控制机制。
3.什么是封锁?
基本的封锁类型有几种?
试述它们的含义。
封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。
加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。
封锁是实现并发控制的一个非常重要的技术。
基本的封锁类型有两种:
排它锁(ExclusiveLocks,简称x锁)和共享锁(ShareLocks,简称S锁)。
排它锁又称为写锁。
若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。
这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。
共享锁又称为读锁。
若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。
这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
9.设Tl,几,几是如下的3个事务:
Tl:
A:
=A+2;
T2:
=A*2;
T3:
=A**2;
(A<
-A*A)
设A的初值为0。
(l)若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。
答:
A的最终结果可能有2、4、8、16。
因为串行执行次序有TlT2T3、TlT3T2、T2T1T3、T2T3Tl、T3T1T2、T3T2Tl。
对应的执行结果是16、8·
4·
2·
2。
(2)请给出一个可串行化的调度,并给出执行结果
最后结果A为16,是可串行化的调度。
(3)请给出一个非串行化的调度,并给出执行结果。
最后结果A为0,为非串行化的调度。
(4)若这3个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度。
(5)若这3个事务都遵守两段锁协议,请给出一个产生死锁的调度。
13.为什么要引进意向锁?
意向锁的含义是什么?
引进意向锁是为了提高封锁子系统的效率。
该封锁子系统支持多种封锁粒度。
原因是:
在多粒度封锁方法中一个数据对象可能以两种方式加锁―显式封锁和隐式封锁。
因此系统在对某一数据对象加锁时不仅要检查该数据对象上有无(显式和隐式)封锁与之冲突,还要检查其所有上级结点和所有下级结点,看申请的封锁是否与这些结点上的(显式和隐式)封锁冲突,显然,这样的检查方法效率很低。
为此引进了意向锁。
意向锁的含义是:
对任一结点加锁时,必须先对它的上层结点加意向锁。
例如事务T要对某个元组加X锁,则首先要对关系和数据库加ix锁。
换言之,对关系和数据库加ix锁,表示它的后裔结点―某个元组拟(意向)加X锁。
引进意向锁后,系统对某一数据对象加锁时不必逐个检查与下一级结点的封锁冲突了。
例如,事务T要对关系R加X锁时,系统只要检查根结点数据库和R本身是否已加了不相容的锁(如发现已经加了ix,则与X冲突),而不再需要搜索和检查R中的每一个元组是否加了X锁或S锁。
补充习题:
1、大学实行学分制,学生可根据自己的情况选修课程。
每名学生可同时选修多门课程,每门课程可由许多学生选修;
每门课程可由多位教师讲授;
每位教师可讲授多门课程。
其不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概论 第四 部分 习题 答案