上海大学数据库2原理研讨+作业的个人解答(共19页)_第1页
上海大学数据库2原理研讨+作业的个人解答(共19页)_第2页
上海大学数据库2原理研讨+作业的个人解答(共19页)_第3页
上海大学数据库2原理研讨+作业的个人解答(共19页)_第4页
上海大学数据库2原理研讨+作业的个人解答(共19页)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1周(第五章:函数依赖(yli)、推理规则、闭包)二、研讨(ynto)课:1. 假设(jish)员工关系EMP(员工号,姓名,部门,部门电话,部门负责人,家庭住址,家庭成员,成员关系)如下表所示。如果一个部门可以有多名员工,一个员工可以有多个家庭成员,那么关系EMP属于 数据冗余 问题;为了解决这一问题,应该将员工关系EMP分解为 (员工号,姓名,部门,家庭地址,家庭成员,成员关系)(部门,部门负责人,部门电话) ,画出ER图(上学期学过了,很简单,懒得画),主外键(主键:员工号,外键:部门)(主键:部门)。员工号姓名部门部门电话部门负责人家庭住址家庭成员成员关系0011张晓明开发部8083

2、560012北京海淀区1号张大军父亲0011张晓明开发部8083560012北京海淀区1号胡敏铮母亲0011张晓明开发部8083560012北京海淀区1号张晓丽妹妹0012吴俊开发部8083560012上海昆明路15号吴胜利父亲0012吴俊开发部8083560012上海昆明路15号王若垚母亲0021李立丽市场部8083580021西安雁塔路8号李国庆父亲0021李立丽市场部8083580021西安雁塔路8号罗明母亲0022王学强市场部8083560021西安太白路2号王国钧父亲0031吴俊财务部808360西安科技路18号吴鸿翔父亲2. 判断F=A-BC,B-A,AD-E和G=A-BC,B-A

3、,BD-E是等价的因为B-A,所以BD-AD,因为AD-E,所以BD-E,所以。3. 设关系模式R具有n个属性,在模式R上可能成立的函数依赖有 (1) 个?其中平凡的FD有 (2) 个?非平凡的FD有 (3) 个?以上3点都需说明为什么三、作业:1. 设函数依赖集 F=AB-E,AC-G,AD-BG,B-C,C-D,试证AC-G是冗余的。AD-BG,C-D,所以AC-BG,所以AC-G,所以冗余课本(kbn)Page124:习题5.3(1)X-永远(yngyun)满足。(2)-Y,则 属性Y对于(duy)各元组的值相同 。(3)-为平凡的函数依赖,永远满足。3. 课本Page124:习题5.8

4、证明:(反证法)假设存在AB 那么 AAB, 关系模式R的候选码即为A,不是全码 假设不存在,R不满足AB 同理:R不满足 BA第2周(第五章:、关键码、最小函数依赖集)二、研讨(ynto)课:2设有函数依赖集:F=AB-C,C-A,BC-D,ACD-B,D-EG,BE-C,CG-BD,CE-AG,计算(j sun)其等价的最小依赖集。1、把右边(yu bian)都写成单属性AB-C,C-A,BC-D,ACD-B,D-E,D-G,BE-C,CG-B,CG-D,CE-A,CE-G2、去左边冗余属性C-A,CE-A冗余,去掉CE-A,所以AB-C,C-A,BC-D,ACD-B,D-E,D-G,BE

5、-C,CG-B,CG-D,CE-G3、去冗余的FDD-G,所以CD-CG,CG-B,所以CD-B,所以ACD-B,所以ACD-B冗余所以AB-C,C-A,BC-D,D-E,D-G,BE-C,CG-B,CG-D,CE-G已知R(ABCDE),F=AB,BCA,AD,求R的全部非主属性。L:CR:DN:ELR:A,BCE+=CEACE+=ABCDEBCE+=ABCDE所以非主属性为D三、作业:1. 已知F=BD,AD,DACB,CDA,求Fmin。1、右边单属性BD,AD,DAC,DAB,CDA左边冗余属性AD,DAC,DAB,所以AC,AB所以BD,AD,AC,AB,CDA3、冗余的FD:无2.

6、 如果关系模式R(A,B)的候选码为(A,B)(即为全码),那么该关系模型一定不满足AB,或BA。没什么好说的3. 设有R(ABCDE),F= AC,BC,CD,CEA,DEC ,求候选码。L:B,ER:N:LR:A,C,DBE+=ABCDE所以(suy)BE第3周(第五章:分解无损(w sn)和保持FD)二、研讨(ynto)课:1. R(ABCDE), F=ABC,ACE,CB,EC,DC,=ABC,AD,AE,BE,DE,求的分解(fnji)无损性ABCDEABCa1a2a3b41b51ADa1b22b32a4b52AEa1b23b33b43a5BEb14a2b34b44a5DEb15b2

7、5b35a5a5ABCDEABCa1a2a3b41b51ADa1b22b32a4b52AEa1b23b33b43a5BEb14a2b33b44a5DEb15b25b33a5a5ABCDEABCa1a2a3b41b51ADa1b22b32a4b52AEa1a2b33b43a5BEb14a2b33b44a5DEb15a2b33a5a5ABCDEABCa1a2a3b41b51ADa1b22b32a4b52AEa1a2a3b43a5BEb14a2a3b44a5DEb15a2a3a5a5ABCDEABCa1a2a3b41a5ADa1a2a3a4a5AEa1a2a3b43a5BEb14a2a3b44a5D

8、Eb15a2a3a4a5ABCDEABCa1a2a3b41a5ADa1a2a3a4a5AEa1a2a3b43a5BEb14a2a3b44a5DEb15a2a3a4a52. 关系(gun x)模式R(U,F),其中U=W,X,Y,Z,F=WXY,WX,XZ,YW 。关系模式(msh)R的候选键是 (1) , (2) 是无损连接(linji)并保持函数依赖的分解。L:R:ZN:LR:W,X,YW+=WXYZY+=WXYZX+=XZ候选键:W和Y出发点:XZ不妨大胆的假设R1,R2使得无损联结,也就是R1R2=X,R2-R1=Z就有WXY与XZ验证依赖性WXY(F)=WXY,WX,YWXZ(F)=X

9、ZWXY(F)XZ(F)=F大功告成!3. 举出一个满足无损但不保持FD的分解例子,并说明分解的不合理? 举出一个保持FD但不满足无损的分解例子,并说明分解的不合理。没什么好说的!三、作业:1. 证明BCNF一定是3NF。反证法,假设不是,存在传递然而传递的中间不是候选键的话语BCNF矛盾所以。到时候自己编一个BCNF2给定关系模式R,其中:U=A,B,C,D,F=A-B,B-C,C-D,D-A,判断关系模式R的分解=AB,BC,CD是否具有依赖保持性。求投影,方法(fngf)看研讨3. 课本(kbn)Page125:习题5.15画表格,方法(fngf)如研讨已知R,U= A, B, C, D

10、, E ,F= ABC , DE, CD,R的一个分解= R1(A,B,C), R2(C,D), R3(D,E)。判定分解是否为无损连接的分解和保持函数依赖性。画表格+求投影第4周(第五章:范式分解,多值依赖自学)二、研讨(ynto)课:1. 如下关系模式R表示某学校学生及宿舍(ssh)的情况 R(学号,姓名,系,宿舍(ssh)楼,宿舍房号,协会)满足的函数依赖集合为 F=学号姓名,学号系,宿舍楼系,学号宿舍房号,宿舍房号宿舍楼试将R规范化为满足BCNF的关系模式。学号,协会是候选键,所以F肯定不是BCNF(学号,协会)(姓名,宿舍房号),(宿舍房号宿舍楼)(宿舍楼系)2. 假设某旅馆业务规定

11、,每个账单对应一个顾客,账单的发票号是惟一的,账单中包含一个顾客姓名、到达日期和顾客每日的消费明细,账单的格式如图发票号到达日前顾客姓名消费日期项目金额1234562014/4/1艾尚达2014/4/1房租2801234562014/4/1艾尚达2014/4/1餐费561234562014/4/1艾尚达2014/4/1上网101234562014/4/1艾尚达2014/4/2餐费180如果根据上述业务规则,设计一个关系模式:R(发票号,到达日期,顾客姓名,消费日期,项目,金额)。试回答下列问题:找出R的候选键。发票号,项目,消费日期判断R最高可达到第几范式,为什么?3,NO WHY给出R的一个

12、可能的3NF分解。R1(发票号,项目,消费日期)(到达时间,顾客姓名)R2(项目金额)(4)给出R的一个可能的BCNF分解。R1(发票号,项目,消费日期)(到达时间,顾客姓名)R2(项目金额)三、作业:1说明以下说法是否正确以及理由:(1)所有候选码都为单个属性的关系模式一定满足2NF;、左边为单属性不可能为局部依赖二目关系一定是满足3NF的;设二目关系为R(A,B),则候选码的可能性为(A,B)、A或B情况一:候选码为(A,B),不存在非主属性,故R一定满足3NF;情况二:候选码为A,R满足AB,不存在传递AB,故R一定满足3NF;情况三:类似情况二。候选码为全码的关系模式一定是满足BCNF

13、的关系模式;因为关系模式是全码,所以任何属性(shxng)或属性组对候选码都是直接函数依赖,根据BCNF的定义,此关系模式一定满足BCNF。2. 已知关系R(A,B,C,D,E,F,G)上的函数(hnsh)依赖集F=AC-BEFG,A-B,C-DEF,E-F试将R分解成一组等价(dngji)的3NF模式(1)先求Fmin右边为单属性AC-B,AC-E,AC-F,AC-G,A-B,C-D,C-E,C-F,E-F去左边重复AC-B,AC-E,AC-F冗余所以AC-G,A-B,C-D,C-E,C-F,E-F去冗余FDC-E,E-F,所以C-F冗余所以AC-G,A-B,C-D,C-E,E-F求候选码L

14、:A,CR:B,D,E,FN:LR:AC+=ABCDEFG所以候选码是AC(3)要满足2NF,3NF,所以R1(AC-G)R2(A-B)R3(C-D,C-E)R4(E-F)3. 设关系模式R(A,B,C,D),F=AC,AB,BD,将R分解为BCNF。1、候选码L:AR:C,DN;LR:BA+=ABCD所以候选码为A分解R1(AC,AB)R2(BD)课本Page125:习题5.18。懒得做了!做法跟上面差不多的第5周(第七章:数据库设计;第八章:事务概念)三、作业(zuy):1. 已知R(A,B,C,D,E,F,G,H,I,J),F=ABE,ABEFG,BFI,CJ,CJI,GH,求最小函数依

15、赖集,然后分解(fnji)成三范式的关系模式集合,并判断该分解是否具有无损连接性。2. 如下(rxi)给出的关系R为第几范式?是否存在操作异常?请举例说明。若存在,则将其分解为高一级范式。分解后的范式中是否可以避免这些操作异常?数据冗余(工程号,材料号,数量)(开工日期,完工日期,价格)这是第一范式修改成(工程号(开工日期,完工日期)(工程号,材料号,数量)价格)3. 课本Page170:习题7.15。第6周(第八章:故障恢复)二、研讨(ynto)课:1. 某数据库配置时把数据库文件、备份文件、日志文件放在同一个硬盘上,是否合适?并说明理由。放在同一台计算机的不同硬盘上呢?从故障恢复的角度应该

16、如何配置合理(hl)?至少哪两类文件不应放在同一硬盘上? 不合适,当发生介质故障时候,如果放在同一个硬盘上,数据库文件(wnjin)就无法补救回来。也不是很合适,当整台电脑被病毒破坏时,数据库文件、备份文件、日志文件也是容易被损坏的。数据库备份放在共享文件夹里,共享指定给另外一台电脑。数据库文件,备份文件。及时日志文件丢失损坏,之前备份的文件也有很多数据但如果备份文件都不在了,日志文件也是没用的。2. 假定系统采用检查点方法,T1、T2和T3是并发事务,在t19时发生系统故障,最近的检查点在t8时(见图);A、B、C和D都是数据库中的数据项,初值依次是800、300、70和80, 说明所需的恢

17、复工作。时刻T1T2T3说 明t1 t2t3t4 t5t6t7t8 t9t10t11t12t13t14t15t16t17t18t19 read(B)B=B*2write(B)read(A)A=A+10write(A)COMMITread(A)A=A-100write(A)COMMITread(D)D=D-100write(D)read(A)read(B)B=B+Awrite(B)t1:T1开始t4:T2开始t8:检查点t9:T3开始t19:发生故障答:(1)事物T2不必恢复,因为它的更新(gngxn)在检查点之前就写到了数据库.(A=700)(2)事物(shw)T3必须撤销,因为T3还未做完,

18、撤销事物T3对db的修改,就恢复D=80(3)事物T1必须重做,因为T1做完,但是它的结束在下一个结束点之前(zhqin),对DB修改仍然在内存缓冲区,还没写到磁盘。 重做 A=710.参照书本175-176面各种情况的解决方法3. 假定系统采用检查点方法,当系统崩溃时产生了以下并发事务的日志记录。(1) 请给出系统在恢复后搜索日志时所形成的重做队列和撤销队列。(2) 请给出恢复后各数据项的值。 T2T4重做,T3撤销A=600 D=130 C=90 B=190三、作业:1. 课本Page195:习题8.4。2. 课本Page195:习题8.5。3. 为什么系统故障恢复时先UNDO再REDO操

19、作?请举日志队列说明第7周(第八章:并发控制)二、研讨(ynto)课:1. 判断(pndun)下列并发调度是不是可串行化调度,为什么?修改如下并发调度为可串行化调度时间事务T1数据库中值事务T2t0A=10, B=2t1Read At2Read Bt3Read At4Update A=A+1t5Read Bt6Update B=A+Bt7Update B=B+12. 设T1,T2,T3是如下(rxi)三个事务: T1: A:=A+2; T2: A:=A*2; T3: A:=A2; 设A的初始值为0.若三个事务允许并发执行,则有多少种可能的正确的结果,请分别列举出来请给出一个可串行化的调度,并给

20、出执行结果请给出一个非串行化的调度,并给出执行结果若三个事务都遵守两段锁协议,请给出一个产生死锁的调度。A33=6123 16132 8213 4231 2312 4321 2结果为4种,为2、4、8、162)3)3. 操作序列T1、T2、T3对数据A、B、C并发(bngf)操作如下所示,T1与T2间并发操作(1) , T2与T3间并发(bngf)操作(2) 。修改如下并发(bngf)调度为可串行化调度时间T1T2T3 t1 t2t3t4t5t6t7t8t9t10t11t12读A=50读B=200X1=A+B读A=50读B=100X1=A+B验算不对读B=200B=B-100写B读B=200B

21、=B+50写B三、作业:1. 课本Page196:习题8.10。2. 课本Page196:习题8.11。3. 课本Page196:习题8.12。第8周(第八章:完整性和安全性;第九章分布式自学)二、研讨(ynto)课:1. 写有关(yugun)school数据库的完整性约束(1)确保每个学生在同一学期同一门课只能选一个老师开设(kish)的课程。create assertion asse1 check(not exists( select *from e as a,e as bwhere a.xh = b.xh and a.xq = b.xq and a.kh = b.kh and a.gh

22、b.gh);(2)确保每门课程每年只开设一次。Create assertion ass2 check(1all(select count(distinct (A.课号)From 开课表 as A,开课表 as BWhere A.学年=B.学年And A.课号=B.课号Group by 学年,课号);2. 设有三个关系模式:STUDENT(SNO,SNAME,AGE,SEX,SADDR,DNO)COURSE(CNO,CNAME,CHARA,CREDIT,DNO,TERM,TNAME)GRADE(SNO,CNO,TERM,PGRADE,EGRADE,GGRADE)中文含义:学生(学号,姓名,年龄,

23、性别,住址,所在系),课程(课程号,课程名,课程性质,学分数,开课系,开课学期,教师),成绩(学号, 课程号, 开课学期,平时成绩,考试成绩,总评成绩)。请用指定的方法定义下列完整性约束:每个学期每个学生至多可选8门课程(用断言)。Create assertion ass1 check( 8=all(select count(distinct (cno)From gradeGroup by sno,term);2、如果总评成绩修改后低于60分,那么,如果平时成绩大于80分,在修改后的总评成绩上再增加考试成绩的8%,但不得超过60分(用SQL3触发器)。create trigger trig1a

24、fter update of ggrade on gradereferencingold as oldtuplenew as newtuplewhen (newtuple.ggrage80)update gradeset ggrade=newtuple.ggrade + oldtuple.pgrade * 0.08where sno = newtuple.sno and cno = o and term = newtuple.term and (60=newtuple.ggrade + oldtuple.pgrade * 0.08)update gradeset ggrade=60where

25、sno = newtuple.sno and cno = o and term = newtuple.termand (60newtuple.ggrade + oldtuple.pgrade * 0.08)for each row;3. 某图书借阅管理(gunl)数据库有如下关系模式:书籍(shj)表(书号, 书名(sh mn), 数量, 分类, 状态, 出版社名)读者表(借书证号, 姓名, 年龄, 电话, 地址)借阅情况表(借书证号, 书号, 借书日期, 还书日期)把对书籍表的查询、修改权和转授权授予用户admin。Grant select,update on 书籍表 to adminWit

26、h grant option使每个人都能查询未出借图书的借阅情况,但不能直接查看借阅情况表。create view A asSelect 书籍表.所有属性 from 书籍表,借阅情况表Where 书籍表.书号=借阅表.书号 and 书籍.状态=未出借Grant select on A to public作业:1. 课本Page196:习题8.19。2. 课本Page196:习题8.20。3. 课本Page215:习题9.5。第9周(第十章:对象数据库)二、研讨(ynto)课:1. 对照题目给出的内容,补充完整下面(xi mian)的对象联系图和对象关系数据库定义。work_foreno(工号)

27、ename(姓名)sex(性别)language(精通语言)mno(经理编号)(部门号)dno(部门名)dnamestaff_EmployeeManagerDepartmentchief_CREATE TYPE MyString char varying;CREATE TABLE Department (dno MyString,dname MyString, (1) , (2) );CREATE TABLE Employee (eno integer,ename MyString,sex MyString, (3) );CREATE TABLE Manager ( mno integer, (4) )under Employee;2对上面定义的数据库用SQL完成以下(yxi)查询: 找出各个男职工的工号、姓名、部门

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论