数据库2研讨实验作业.doc_第1页
数据库2研讨实验作业.doc_第2页
数据库2研讨实验作业.doc_第3页
数据库2研讨实验作业.doc_第4页
数据库2研讨实验作业.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

第1周(第五章:函数依赖、推理规则、闭包)一、 实验课: 本学期分组完成“教学事务管理系统”,具体要求如下:1. 系统必须是在B/S结构下实现。2. 数据库在原理1的School数据库基础下自行修改,只能添加,不能删除。3. 系统具有为不同的角色(系统管理员、教师、学生)提供不同操作权限的功能。4. 系统为系统管理员提供具有学分制教务管理特色的各类功能。5. 学生根据每个学期所开设的课程进行自主选课并具有查询有关信息的功能。6. 教师根据学生所选课程进行成绩登录并且具有日常教学管理的功能。7. 系统为不同的角色提供各类统计分析。8. 数据库中至少包含一个触发器和一个存储过程在系统中使用和调用。9. 其他辅助功能。二、研讨课:1. 假设员工关系EMP(员工号,姓名,部门,部门电话,部门负责人,家庭住址,家庭成员,成员关系)如下表所示。如果一个部门可以有多名员工,一个员工可以有多个家庭成员,那么关系EMP属于 (1) 问题;为了解决这一问题,应该将员工关系EMP分解为 (2) 。员工号姓名部门部门电话部门负责人家庭住址家庭成员成员关系0011张晓明开发部8083560012北京海淀区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,BD-E是等价的3. 设关系模式R具有n个属性,在模式R上可能成立的函数依赖有 (1) 个?其中平凡的FD有 (2) 个?非平凡的FD有 (3) 个?三、作业:1. 设函数依赖集 F=AB-E,AC-G,AD-BG,B-C,C-D,试证AC-G是冗余的。2. 课本Page124:习题5.33. 课本Page124:习题5.8第2周(第五章:、关键码、最小函数依赖集)一、实验课: 同上二、研讨课:1. 建立一个关于系、学生、班级、社团等信息的关系数据库。l 描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。l 描述班级的属性有:班号、专业名、系名、人数、入校年份。l 描述系的属性有: 系名、系号、系办公室地点、人数。l 描述社团的属性有:社团名、成立年份、地点、人数。有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一个宿舍区。每个学生可参加若干社团,每个社团有若干学生。学生参加某社团有一个入会年份。请给出该数据库中的关系模式的函数依赖集,求出候选键,指出是否存在部分依赖和传递函数依赖。2设有函数依赖集:F=AB-C,C-A,BC-D,ACD-B,D-EG,BE-C,CG-BD,CE-AG,计算其等价的最小依赖集。3 已知R(ABCDE),F=AB,BCA,AD,求R的全部非主属性。三、作业:1. 已知F=BD,AD,DACB,CDA,求Fmin。2. 如果关系模式R(A,B)的候选码为(A,B)(即为全码),那么该关系模型一定不满足AB,或BA。3. 设有R(ABCDE),F= AC,BC,CD,CEA,DEC ,求候选码。第3周(第五章:分解无损和保持FD)一、实验课: 同上二、研讨课:1. 已知R,U= A, B, C, D, E ,F= ABC , DE, CD,R的一个分解= R1(A,B,C), R2(C,D), R3(D,E)。判定分解是否为无损连接的分解和保持函数依赖性。2. 关系模式R(U,F),其中U=W,X,Y,Z,F=WXY,WX,XZ,YW 。关系模式R的候选键是 (1) , (2) 是无损连接并保持函数依赖的分解。3、给定关系模式R,其中:U=A,B,C,D,F=A-B,B-C,C-D,D-A,判断关系模式R的分解=AB,BC,CD是否具有依赖保持性。三、作业:1. 证明BCNF一定是3NF。2. 举出一个满足无损但不保持FD的分解例子,并说明分解的不合理? 举出一个保持FD但不满足无损的分解例子,并说明分解的不合理。3. 课本Page125:习题5.154. R(ABCDE), F=ABC,ACE,CB,EC,DC,=ABC,AD,AE,BE,DE,求的分解无损性第4周(第五章:范式分解,多值依赖自学)一、实验课: 同上二、研讨课:1. 如下关系模式R表示某学校学生及宿舍的情况 R(学号A,姓名B,系C,宿舍楼D,宿舍房号E,协会G)满足的函数依赖集合为 F=学号姓名,学号系,宿舍楼系,学号宿舍房号,宿舍房号宿舍楼试将R规范化为满足3NF的关系模式。F=AB,AC,DC,AE,ED(1)右部均为单个元素(2)左部均为单个元素(3)AE,ED,DC推出AC冗余Fmin=AB,DC,AE,ED(AB,CD,AE,DE)2. 假设某旅馆业务规定,每个账单对应一个顾客,账单的发票号是惟一的,账单中包含一个顾客姓名、到达日期和顾客每日的消费明细,账单的格式如图发票号A到达日前B顾客姓名C消费日期D项目E金额G1234562014/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(发票号,到达日期,顾客姓名,消费日期,项目,金额)。试回答下列问题:(1)找出R的候选键。候选键:ADE。F=AC,AB,DEG(2)判断R最高可达到第几范式,为什么?候选键ADEG,又有DEG,存在部分函数依赖,只能是1NF(3)给出R的一个可能的3NF分解。Fmin=F,(AB,AC,ADE,DEG)3. 设关系模式R(A,B,C),如果已知R的当前关系存在三个元组(a1,b,c1),(a1,b,c2), (a3,b,c2)。根据下列MVD,补上其余的元组。(1)AB (a1,b,c1)(a1,b,c2)存在(a1,b,c2)(a1,b,c1),已经包含(2)BC (a3,b,c2)(a1,b,c1)存在(a3,b,c1)(a1,b,c2),增加(a3,b,c1)(3)CB (a1,b,c2)(a3,b,c2)存在(a3,b,c2)(a1,b,c2),已经包含三、作业:1说明以下说法是否正确以及理由:(1)所有候选码都为单个属性的关系模式一定满足2NF;(2)二目关系一定是满足3NF的;(3)候选码为全码的关系模式一定是满足BCNF的关系模式;2. 已知关系R(A,B,C,D,E,F,G)上的函数依赖集F=AC-BEFG,A-B,C-DEF,E-F试将R分解成一组等价的3NF模式3. 设关系模式R(A,B,C,D),F=AC,AB,BD,将R分解为BCNF。4. 课本Page125:习题5.18。第5周(第七章:数据库设计;第八章:事务概念)一、实验课: 同上二、研讨课:根据上半学期的学习情况,对学生在学习中的问题,两个班合班上习题课三、作业:1. 已知R(A,B,C,D,E,F,G,H,I,J),F=ABE,ABEFG,BFI,CJ,CJI,GH,求最小函数依赖集,然后分解成三范式的关系模式集合,并判断该分解是否具有无损连接性。2. 如下给出的关系R为第几范式?是否存在操作异常?请举例说明。若存在,则将其分解为高一级范式。分解后的范式中是否可以避免这些操作异常?3. 课本Page170:习题7.15。第6周(第八章:故障恢复)一、实验课: 同上二、研讨课:1. 某数据库配置时把数据库文件、备份文件、日志文件放在同一个硬盘上,是否合适?并说明理由。放在同一台计算机的不同硬盘上呢?从故障恢复的角度应该如何配置合理?至少哪两类文件不应放在同一硬盘上? 2. 假定系统采用检查点方法,T1、T2和T3是并发事务,在t19时发生系统故障,最近的检查点在t8时(见图);A、B、C和D都是数据库中的数据项,初值依次是800、300、70和80, 说明所需的恢复工作。时刻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开始B=600t4:T2开始A=700t8:检查点t9:T3开始D=-30t19:发生故障T2不必回复,在检查点以前已经提交A=700,B=600,C=70,D=80T3撤销,A=700,B=600,C=70,D=80T1重做,A=710,B=600,C=70,D=803. 假定系统采用检查点方法,当系统崩溃时产生了以下并发事务的日志记录。(1) 请给出系统在恢复后搜索日志时所形成的重做队列和撤销队列。(2) 请给出恢复后各数据项的值。 时刻T1T2T3T4说 明t1 t2t3t4 t5t6t7t8 t9t10t11t12t13t14t15t16t17t18t19t20t21t22t23Read(C)C=C-60Write(C)CommitC-10/Read(B)B=B+40Write(B)B190Read(C)C=C+100Write(C)CommitC90Read(A)A=A/10Write(A)A60Read(B)B=B+130Write(B)B320Read(D)D200D=D-70Write(D)CommitD130T3开始T1开始T4开始检查点初值A=600,B=150,C=50,D=2001)撤销:T3:Read(B);B写入190;Write(B)重做:T2:Read(C);C=C+100;Write(C);Commit T4:D=D-70;Write(D);Commit2)T1不必恢复,在检查点以前已经提交,A=60,B=190,C=-10,D=200T3撤销,A=60,B=190,C=-10,D=200T2,T4重做,A=60,B=190,C=90,D=130三、作业:1. 课本Page195:习题8.4。2. 课本Page195:习题8.5。3. 为什么系统故障恢复时先UNDO再REDO操作?第7周(第八章:并发控制)一、实验课: 同上二、研讨课:1. 判断下列并发调度是不是可串行化调度,为什么?时间事务T1数据库中值事务T2t0A=10, B=2t1Read A(10)t2Read B(2)t3Read A(10)t4Update A=A+1A=11, B=2t5Read B(2)t6A=11,B=12Update B=A+Bt7Update B=B+1A=11,B=3在t7时间丢失了事务T2对数据库的更新操作,因此这个并发操作是不正确的串行,先T1后T2,T1完成后A=11,B=3,T2完成后A=11,B=14串行,先T2后T1,T2完成后A=10,B=12,T1完成后A=11,B=13并行结果A=11,B=3与串行结果不同,所以该并发调度是不可串行化调度2. 设T1,T2,T3是如下三个事务: T1: A:=A+2; T2: A:=A*2; T3: A:=A2; 设A的初始值为0.1) 若三个事务允许并发执行,则有多少种可能的正确的结果,请分别列举出来执行顺序T1T2T3,16;执行顺序T1T3T2,8;执行顺序T2T3T1,2;执行顺序T2T1T3,4;执行顺序T3T1T2,4;执行顺序T3T2T1,2;2) 请给出一个可串行化的调度,并给出执行结果时间事务T1事务T2事务T3数据库中的值t1Read(A)0t2Read(A)2t3Update A=A*2t4Read(A)4t5Update A=A+2t6Update A=A*A163) 请给出一个非串行化的调度,并给出执行结果时间事务T1事务T2事务T3数据库中的值t1Read(A)0t2Read(A)t3Update A=A+22t4Read(A)t5Update A=A*A4t6Update A=A*204) 若三个事务都遵守两段锁协议,请给出一个产生死锁的调度。时间事务T1事务T2数据库中的值t1SFIND AA:S锁t2SFIND AA:S锁t3A:=A+2t4A:=A*2t5UPDX AX锁,失败t6waitUPDX AX锁,失败t7waitwait3. 操作序列T1、T2、T3对数据A、B、C并发操作如下所示,T1与T2间并发操作 读“脏”数据 , T2与T3间并发操作 丢失更新数据 。时间T1T2T3 t1 t2t3t4t5t6t7t8t9t10t11t12读A=50读B=200X1=A+B读A=50读B=100X1=A+B验算不对读B=200B=B-100写B读B=200B=B+50写B在事务并行处理的过程中,因为多个事务对相同数据的访问,干扰了其他事务的处理,产生了数据的不一致性,是事务隔离性的破坏导致了一致性的破坏。并发操作带来的数据不一致性有三类:丢失修改、不可重复读和读“脏”数据。事务T1读取A、B的值后进行运算,事务T2在t6时刻对B的值做了修改以后,事务T1在t8、t9时刻又重新读取A、B的值再运算,同一事务内对同一组数据的相同运算结果不同,显然与事实不相符,这种情况的产生是由于事务T2干扰了事务T1的独立性,导致不可重复读。事务T2、T3对数据B分别做减100和加50操作,都是写入数据库。其中事务T2在时刻t6把B修改后的值100写入数据库,但事务T3在时刻t11再把它对B加50后的值250写入数据库。两个事务都是对B的值进行修改操作并且都执行成功,但B中的值却为250,造成数据的不一致。原因在于T2事务对数据库的修改被T3事务覆盖而丢失了,破坏了事务的隔离性,所以丢失修改。三、作业:1. 课本Page196:习题8.10。2. 课本Page196:习题8.11。3. 课本Page196:习题8.12。第8周(第八章:完整性和安全性;第九章分布式自学)一、实验课: 同上二、研讨课:1. 写有关school数据库的完整性约束(1)确保每个学生在同一学期同一门课只能选一个老师开设的课程。(2)确保每门课程每年只开设一次。(1)create assertion asse1 check(not exists( select *from e a,e bwhere a.xh = b.xh and a.xq = b.xq and a.kh = b.kh and a.gh b.gh)(2)create assertion asse2-1 check/不允许同一门课在同一年里由不同老师开(1 all( select count(distinct a.kh)from o a,o bwhere a.kh=b.kh and left(a.xq,9)=left(b.xq,9) and a.ghb.gh)create assertion asse2-2 check/不允许同一个老师在同一年开同一门课(not exists (select *from o a,o bwhere a.gh=b.gh and left(a.xq,9)=left(b.xq,9) and a.kh=b.kh)2. 设有三个关系模式:STUDENT(SNO,SNAME,AGE,SEX,SADDR,DNO)COURSE(CNO,CNAME,CHARA,CREDIT,DNO,TERM,TNAME)GRADE(SNO,CNO,TERM,PGRADE,EGRADE,GGRADE)中文含义:学生(学号,姓名,年龄,性别,住址,所在系),课程(课程号,课程名,课程性质,学分数,开课系,开课学期,教师),成绩(学号, 课程号, 开课学期,平时成绩,考试成绩,总评成绩)。请用指定的方法定义下列完整性约束:1、每个学期每个学生至多可选8门课程(用断言)。2、如果总评成绩修改后低于60分,那么,如果平时成绩大于80分,在修改后的总评成绩上再增加考试成绩的8%,但不得超过60分(用SQL3触发器)。(1)create assertion asse1 check (8= all(select count (distinct (cno)from gradegroup by sno , term);(2)create trigger trig1after update of ggrade on gradereferencingold as oldtuplenew as newtuplewhen (newtuple.ggrage80)update gradeset ggrade=ggrade + oldtuple.pgrade * 0.08where sno = newtuple.sno and cno = o and term = newtuple.termupdate gradeset ggrade=60where sno = newtuple.sno and cno = o and term = newtuple.termand ggrade60for each row;3. 某图书借阅管理数据库有如下关系模式:书籍表B(书号SH, 书名SM, 数量SL, 分类FL, 状态ZT, 出版社名CBSM)读者表R(借书证号JSZH, 姓名XM, 年龄NL, 电话DH, 地址DZ)借阅情况表S(借书证号JSZH, 书号SH, 借书日期JSRQ, 还书日期HSRQ)1)把对书籍表的查询、修改权和转授权授予用户admin。2)使每个人都能查询未出借图书的借阅情况,但不能直接查看借阅情况表。Grant select, update on B to admin with Grant OptionCreate view AAs select B.SH,SM,SL,FL,ZT,CBSM, JSZH,JSRQ,HSRQFrom B,SWhere B.SH=S.SH and ZT=未出借Grant select on A to Public三、 作业:1. 课本Page196:习题8.19。2. 课本Page196:习题8.20。3. 课本Page215:习题9.5。第9周(第十章:对象数据库)一、实验课: 同上二、研讨课:1. 对照题目给出的内容,补充完整下面的对象联系图和对象关系数据库定义。work_foreno(工号)ename(姓名)sex(性别)language(精通语言)mno(经理编号)(部门号)dno(部门名)dnamestaff_EmployeeManagerDepartmentchief_CREATE TYPE MyString char varying;CREATE TABLE Department (dno MyString,dname MyString,(1)staff setoff(ref(Employee) ,(2)chief ref(Manager) );CREATE TABLE Employee (eno integer,ename MyString,sex MyString,(3)work_for ref(Department) );CREATE TABLE Manager ( mno integer,(4)language Mystring )under Employee;2对上面定义的数据库用SQL完成以下查询:(1)找出各个男职工的工号、姓名、部门名和经理编号。SELECT A.eno, A.ename, B.dname, C.mnoFROM Employee as A, A.work_for as BWHERE A.sex = 男 and A.eno B.cheif.eno(2)找出精通日语的经理所在部门的职工的工号和姓名。SELECT A.eno, A.enameFROM Employee as A, A.work_for as B, B.chief as CWHERE Japanese in C.language and A.eno B.cheif.eno2. 根据如下对象关系数据库定义,画出对应的对象联系图CREATE TYPE MyString char varying;CREATE TABLE dept( dno integer, dname MyString, enroll setof(ref(student)), offer setof(ref(coursetext);CREATE TABLE student(sno integer, sname MyString, age integer, enrolled ref(dept), choose setof(ref(grade);CREATE TABLE course(cnam

温馨提示

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

最新文档

评论

0/150

提交评论