数据库原理二复习、习题分析.ppt

上传人:本田雅阁 文档编号:2156905 上传时间:2019-02-23 格式:PPT 页数:60 大小:234.51KB
返回 下载 相关 举报
数据库原理二复习、习题分析.ppt_第1页
第1页 / 共60页
数据库原理二复习、习题分析.ppt_第2页
第2页 / 共60页
数据库原理二复习、习题分析.ppt_第3页
第3页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据库原理二复习、习题分析.ppt》由会员分享,可在线阅读,更多相关《数据库原理二复习、习题分析.ppt(60页珍藏版)》请在三一文库上搜索。

1、数据库原理二课程 复习、习题分析,董 健 全 2019年2月23日,第5章 规范化设计 一、本章重要概念 (1)关系模式的冗余和异常问题。 (2)FD的定义、逻辑蕴涵、闭包、推理规则、与关键码的联 系; 平凡的FD;属性集的闭包;推理规则的正确性和完备 性;FD集的等价;最小依赖集。 (3)无损分解的定义、性质、测试;保持依赖集的分解。 (4)关系模式的范式:1NF,2NF,3NF,BCNF。分解成 2NF、3NF模式集的算法。 (5)MVD、4NF、JD和5NF的定义。,二、本章的重点篇幅 (1)教材中P107-112的例5.2例5.9。 (基本概念的例子)。 (2)教材中P113-115的

2、例5.105.12。 (无损联接和保持FD的例子)。 (3)教材中P116-119的例5.13例5.16。 (分解成2NF、3NF、BCNF的例子)。,三、要求掌握 (1)基本概念、定义、方法; (2)根据用户的需求,写出函数依赖; 求最小函数依赖集; (3)已知关系模式R(U)和FD集F,求关系模式R的关键码; (4)求属性集X的闭包X+ ;求左部是X的FD; (5)判断R分解成 是否无损分解;是否保持FD集; (6)判断关系模式R是否2NF、3NF 、BCNF模式; 若不是,把R分解成 2NF 、3NF 、BCNF模式集。,5.5 设关系模式R(ABCD),如果规定,关系中B值与D值之间是

3、一对多联系,A值与C 值之间是一对一联系。试写出相应的函数依赖。 解:从B值与D值之间有一对多联系,可写出函数依赖: DB 从A值与C值之间是一对一联系,可写出函数依赖: AC 和 CA,5.7 设关系模式R(ABCD),F是R上成立的FD集, F= AB,CB ,则相对于F,试写出关系模式R的关键码。 并说明理由。 解:R的关键码为ACD。 因为从已知的F,只能推出ACDABCD。 (ACD)+=ABCD,5.8 设关系模式R(ABCD),F是R上成立的FD集, F=AB,BC, 试写出属性集BD的闭包(BD)+。 试写出所有左部是B的函数依赖(即形为“B?”)。 解:从已知的F,可推出BD

4、BCD,所以(BD)+=BCD。 由于B+=BC,因此左部是B的FD有四个: B,BB,BC,BBC。,5.11 设关系模式R(ABC),F是R上成立的FD集, F= AC,BC ,试分别求F在模式AB和AC上的投影。 答:AB(F)=(即不存在非平凡的FD) AC(F)= AC ,5.14 设关系模式R(ABCD),F是R上成立的FD集, F= AB,BC,AD,DC ,= AB,AC,BD 是R的一个分解。相对于F,是无损分解吗?为什么? 试求F在的每个模式上的投影。保持F吗?为什么? 答: 通过测试过程(表格法:略)可以知道,相对于F是损失分解。 AB(F)= AB ,AC(F)= AC

5、 ,BD(F)=。 显然,分解不保持FD集F,丢失了: BC、AD和DC等三个FD。,518 设有一个记录各个球队队员每场比赛进球数的关系模式 R(队员编号,比赛场次,进球数,球队名,队长名) 如果规定每个队员只能属于一个球队,每个球队只有一个队长。 试写出关系模式R的基本FD和关键码。 说明R不是2NF模式的理由,并把R分解成2NF模式集。 进而把R分解成3NF模式集,并说明理由。,解: 根据每个队员只能属于一个球队, 可写出FD: 队员编号球队名 根据每个球队只有一个队长,可写出FD: 球队名队长名 “每个队员每场比赛只有一个进球数”,这条规则也是成 立的。因此还可写出FD: (队员编号,

6、比赛场次)进球数 R的关键码为 (队员编号,比赛场次)。, R中存在这样的FD: (队员编号,比赛场次)(球队名,队长名) 队员编号 (球队名,队长名) 由于前一个FD是局部依赖,所以R不是2NF模式。 R应分解成: R1(队员编号,球队名,队长名) R2(比赛场次,队员编号,进球数) 此时,R1和R2都是2NF模式。,(3)R2(比赛场次,队员编号,进球数)已是3NF模式。 但在R1(队员编号,球队名,队长名)中,存在两个FD: 队员编号 球队名 球队名 队长名 关键码为队员编号,存在传递依赖,因此R1不是3NF模式。 R1应分解成: R11(队员编号,球队名) R12(球队名,队长名) 这

7、样,=R11, R12, R2,其中每个模式均是3NF模式集。,BCNF模式定义: 如果关系模式 R1NF,并且R中每个属性都 不传递依赖于R的候选键,那么称R是BCNF的模式。,由BCNF的定义得出如下结论: 1、非主属性对码完全函数依赖; 2、主属性对不包含它的码也是完全函数依赖; 3、没有属性完全依赖非码的任何属性组。,如果数据库模式中每个关系模式都是BCNF, 称其为BCNF的数据库模式。,例如:关系模式 R(C, S, Z) 其中 C:城市名称 S :街道名称 Z : 邮政编码,假定:F= CS Z, Z C CS Z: 表示地址(城市和街道)决定邮政编码; Z C:表示邮政编码决定

8、城市名称。 R的候选码为: CS 和 SZ。,R(C, S, Z)的候选码为:CS 和 SZ。 由于F中存在 Z C: 主属性C对不包含它的码SZ不是完全函数依赖,,所以R(C, S, Z)不是BCNF模式,但R(C, S, Z)是3NF 由于关系R没有非主属性,也就不要考虑:非主属性对码的传递或部分函数依赖问题。,如果把R(C, S, Z)分解为: R1(S,Z) R2(Z, C) 能解决冗余问题,而且R1,R2都是BCNF模式集。,但丢失了CSZ,数据语义将会引起新的矛盾。,第7章 数据库设计 一、本章重要概念 (1)DBS生存期及其7个阶段的任务和工作,DBD过程的输入 和输出。 (2)

9、需求分析的步骤、数据流图,数据字典的内容和作用。 (3)概念设计的重要性、主要步骤。逻辑设计阶段的主要步骤。 (4)ER模型的基本元素,属性的分类,联系的元数、连通词、 基数。采用ER方法的概念设计步骤。 (5)ER模型到关系模型的转换规则。采用ER方法的逻辑设计 步骤。 (6)ER模型的扩充:弱实体,超类和子类。 (7)规范化理论对数据库设计的指导意义。,输入:,数据库设计步骤:,工作:,二、本章的重点篇幅 (1)教材中P163-165的转换规则和实例。 (2)教材中P159-160的ER模型实例。 三、要求掌握 (1)基本概念、定义、方法; (2)根据用户的需求,进行ER模型设计; (3)

10、根据转换规则,将ER模型转换为关系模型。,规范化理论是数据库设计的指南和工具,具体地讲可在以下三个方面起重要作用: 1. 在数据库需求分析阶段用函数依赖的概念来分析和表示各数 据项之间的联系; 2. 在概念设计阶段,用规范化理论消除初步ER图中冗余的联系; 3. 在ER图向关系模型转换过程中,用模式分解的概念和算法指 导逻辑设计。,第8章 数据库管理 一、本章重要概念 (1)事务的定义,COMMIT和ROLLBACK的语义, 事务的ACID性质,事务的状态变迁图。 (2)存储器类型,稳定存储器的实现,数据传送过程。 (3)恢复的定义、基本原则和实现方法,故障的类型, 检查点机制,REDO和UN

11、DO操作,运行记录优先原则。 (4)并发操作带来的三个问题,X锁、PX协议、PXC协议, S锁、PS协议、PSC协议,活锁、饿死和死锁,并发调 度,串行调度,并发调度的可串行化,两段封锁法,SQL中 事务的存取模式和隔离级别。 (5)完整性的定义,完整性子系统的功能,完整性规则的组 成。SQL中的三大类完整性约束,SQL3中的触发器技术。 (6)安全性的定义、级别,权限,SQL中的安全性机制(视 图、SQL用户权限及操作),二、本章的重点篇幅 (1)检查点机制的方法和恢复算法。(教材中P.175-176) (2)并发操作带来的三个问题,封锁带来的三个问题,并发 调度的可串行化。 (教材P.17

12、7-179) (3)SQL中完整性约束的实现,断言、触发器(SQL3)。 (教材P.185-191) SQL Server 触发器的使用 (教材P.298-300) (4)安全性中的授权语句、回收语句(教材P.193、194)。,三、要求掌握 (1)恢复、并发控制、完整性和安全性的基本概念、定义 和方法; (2)采用检测点技术进行数据恢复的分析方法; (3)并发调度的可串行化(包括事务的调度、串行调度、 并发调度)分析方法; (4)根据用户的需求,能用多种方法定义完整性约束; (5)授权和回收语句的使用。, 问 题: (1) 事务的COMMIT语句和ROLLBACK语句各做什么事情? (2)

13、COMMIT操作和检查点时的操作有什么联系? (3) 应该如何恰当协调这两种操作才有利于DB的恢复?,(1) 事务的COMMIT语句和ROLLBACK语句各做什么事情? 答:COMMIT语句表示事务执行成功地结束(提交),此时告诉系 统,DB要进入一个新的正确状态,该事务对DB的所有更新都已 交付实施(写入磁盘)。 ROLLBACK语句表示事务执行不成功地结束(应该“回退”),此 时告诉系统,已发生错误,DB可能处在不正确的状态,该事务 对DB的所有更新必须被撤消,DB应恢复该事务到初始状态。,(2) COMMIT操作和检查点时的操作有什么联系? 在COMMIT和检查点技术联合使用时,COMM

14、IT操作就不一定保证事务对DB的修改写到磁盘,而要到检查点时刻才保证写磁盘。在系统恢复时,那些已经执行了COMMIT操作但修改仍留在内存缓冲区的事务需要做恢复工作,利用日志重做(REDO)事务对DB的修改。,(3) 应该如何恰当协调这两种操作才有利于DB的恢复? 在事务执行时,应在日志中记下事务的开始标记、结束标志以及事务对DB的每一个修改。在系统恢复时,要在日志中检查故障点与最近一个检查点之间,哪些事务执行了COMMIT操作(这些事务应重做),哪些事务还未结束(这些事务应撤销)。, 问 题: DB的并发控制与恢复有什么关系? 如果采用封锁机制,事务并发操作时有可能产生死锁。 为解除死锁状态,

15、要抽取某个事务作牺牲品, 把它撤消掉,做回退操作,这就属于DB的恢复范畴。,8.19 设教学数据库的关系如下: S(SNO,SNAME,AGE,SEX) SC(SNO,CNO,GRADE) C(CNO,CNAME,TEACHER) 试用多种方法定义下列完整性约束: 在关系S中插入的学生年龄值应在1625岁之间。 在关系SC中插入元组时,其SNO值和CNO值必须分别在S和C中出现。 在关系C中删除一个元组时,首先要把关系SC中具有同样CNO值的元组全部删去。 在关系S中把某个SNO值修改为新值时,必须同时把关系SC中那些同样的SNO值也修改为新值。,解:这里每个约束用一种方式定义。 (1)用检查

16、子句定义: CHECK(AGE BETWEEN 16 AND 25); (2)在关系SC的定义中,用外键子句定义: FOREIGN KEY(SNO) REFERENCES S(SNO); FOREIGN KEY(CNO) REFERENCES C(CNO); (3)在关系SC的定义中,用外键子句定义: FOREIGN KEY(CNO) REFERENCES C(CNO) ON DELETE CASCADE; (4)在关系SC的定义中,用外键子句定义: FOREIGN KEY(SNO) REFERENCES S(SNO) ON UPDATE CASCADE;,8.20 在教学数据库中的关系S、S

17、C、C中,试用SQL的断言机制定义下列两个完整性约束: 每位教师开设的课程不能超过10门。 (2)不允许男同学选修WU老师的课程。 (3)每门课程最多50名男同学选修 (4)学生必须在选修Maths课后,才能选修其他课程。 (5)每个男学生最多选修20门课程。,解: 每位教师开设的课程不能超过10门。 CREATE ASSERTION ASSE5 CHECK (10=ALL(SELECT COUNT(CNO) FROM C GROUP BY TNAME),(2)不允许男同学选修WU老师的课程。 CREATE ASSERTION ASSE2 CHECK (NOT EXISTS ( SELECT

18、* FROM SC WHERE CNO IN (SELECT CNO FROM C WHERE TNAME=WU) AND SNO IN (SELECT SNO FROM S WHERE SEX=男);,(3)每门课程最多50名男同学选修. CREATE ASSERTION ASSE3 CHECK (50=ALL(SELECT COUNT(SC.SNO) FROM S, SC WHERE S.SNO=SC.SNO AND SEX= 男 GROUP BY CNO);,这样就能很容易地写出断言: CREATE ASSERTION ASSE4 CHECK (NOT EXISTS( SELECT SN

19、O FROM SC X WHERE NOT EXISTS (SELECT * FROM SC Y, C WHERE Y.CNO=C.CNO AND Y.SNO=X.SNO AND CNAME= Maths);,(4) 学生必须在选修Maths课后,才能选修其他课程。 这个约束可用下列形式表达: “不存在一个学生的选课,这个学生没学过Maths课”。,(5)每个男学生最多选修20门课程。 CREATE ASSERTION ASSE5 CHECK (20=ALL(SELECT COUNT(CNO) FROM S, SC WHERE S.SNO=SC.SNO AND SEX= 男 GROUP BY

20、S.SNO);,触发器(SQL3): (教材P.185-191) SQL Server 触发器的使用: 1 、教材举例 (教材P.298-300) 2、实验要求: (教材P.304),SQL安全性机制: 授权语句、回收语句的使用- 教材P.193: 例8.15 例8.16,第9章 分布式数据库系统 本章重要概念: 分布式数据库DDB、DDBS、DDBMS 的定义; 分布式数据库系统的特点、优缺点和分类; 分布式数据库的数据存储; 分布式数据库的模式结构和特点。,分布式系统 :通过通信网络相连接的结点(场地)集合,每个结点都拥有集中式数据库的计算机系统。,场地1:,场地2:,例:全局关系R的分片

21、与分配情况:R划分成四个逻辑片段:R1,R2,R3,R4,并以冗余方式将这些片段分配到网络的三个场地上生成了三个物理映象:S1,S2,S3。,用户(全局应用),数据库,第10章 对象数据库系统 一、本章重要概念 (1)新一代DBS的两条途径:ORDBS和OODBS。 (2)平面关系模型,嵌套关系模型,复合对象模型,引用类型, 对象联系图的成分及表示方法,数据的泛化/细化,继承性。 (3)OO的数据类型系统:基本类型,五种复合类型,引用类型。 (4)对象关系模型的定义,两个级别的继承性,引用类型的定 义,ORDB的查询语言,路径表达式,嵌套与解除嵌套。,二、本章的重点篇幅: (1)对象联系图,带

22、泛化边的对象联系图。 (教材P.219的图10.4,图10.5) (2)OO的类型系统。 (教材P.220221) (3)ORDB的定义语言。(教材P.222-226的例10.5例10.8) (4)ORDB的查询语言。(教材P.226-228的例10.9例10.17),三、要求掌握 (1)基本概念、定义和方法; (2)根据用户的需求, 设计对象联系图; (3)根据已知的对象联系图, 用ORDB定义语言,设计数据库; (4)用ORDB的查询语言, 表达用户的需求; (5)根据已知的ORDB定义, 画对象联系图。,10.6 图10.1是有关教师(Faculty)、系(Department)和系主任

23、(Director)信息的对象联系图。 (1)试用ORDB的定义语言,定义这个数据库。 (2)试用ORDB的查询语言,分别写出下列查询的SELECT语句: 检索精通俄语(Russian)的教师工号和姓名。 检索复旦大学出访过瑞士(Switzerland)并且精通日语 (Japanese)的系主任。,解:(1)试用ORDB的定义语言,定义这个数据库: CREATE TYPE MyString char varying; CREATE TABLE department(university MyString, dname MyString, staff setof(ref(faculty), di

24、re ref(director); CREATE TABLE faculty(fno integer, fname MyString, languages setof(MyString), countries setof(MyString), works_for ref(department); CREATE TABLE director(dno integer) Under faculty;,(2)试用ORDB的查询语言,分别写出下列查询的SELECT语句: 检索精通俄语(Russian)的教师工号和姓名。 SELECT fno, fname FROM faculty WHERE Russi

25、an in languages; 检索复旦大学出访过瑞士(Switzerland)并且精通日语 (Japanese)的系主任。 SELECT D.dno, D.fname FROM director as D WHERE D.works_for.university=Fudan University AND Switzerland in D.countries AND Japanese in D.languages;,10.8 下图是有关学生(student)和学习(study)信息的对象联系图。 (1)试解释这个对象联系图。 (2)试用ORDB的定义语言,定义这个数据库。 (3)试用ORDB

26、的查询语言,分别写出下列查询的SELECT语句: 检索每个学生的学习课程和成绩。 检索至少有一门课程的求学地与籍贯在同一城市的学生学号和姓名。,解:(1)试解释这个对象联系图: * 对象student包含: 身份证号、姓名、籍贯和学习(studies)等属性; * 对象study包含: 课程名、成绩、求学地、大学以及学生(student)等属性。 * 对象student和study之间的联系为1:N。,(2)试用ORDB的定义语言,定义这个数据库 CREATE TYPE MyString char varying; CREATE TABLE student(sno integer, sname

27、 MyString, city MyString, studies setoff(ref(study); CREATE TABLE study(coursename MyString, grade integer, city MyString, university MyString, student ref(student);,(3)试用ORDB的查询语言,分别写出下列查询: 检索每个学生的学习课程和成绩。 SELECT A.sname, B.coursename, B.grade FROM student as A, A.studies as B; 检索至少有一门课程的求学地与籍贯在同一城

28、市的 学生学号和姓名。 SELECT A.sno, A.sname FROM student as A, A.student as B WHERE A.city=B.city;,第11章 面向对象数据库 本章概念: OODB与ORDB的比较 使用UML类图来概念对象建模,用类图表达类和关联: 类图描述了系统的静态结构,包括类和类间的联系。 类图与ER图、对象联系图有很多类似的地方,但所用的术语和符号有所不同。 类图与ER图中术语的区别 :,类图中的基本成分是类和关联: (1)类被表示为由三个部分组成的方框: 上面部分给出了类的名称; 中间部分给出了该类的单个对象的属性; 下面部分给出了一些可以应用到这些对象的操作。,(2)关联是对类的实例之间联系的命名,相当于ER模型中的联系类型。 与关联有关的内容有: 关联元数(degree):与关联有关的类的个数,称为关联元数或度数; 关联角色(role):关联的端部,也就是与关联相连的类,称为关联角色。 角色名可以命名,也可以不命名,就用类的名字作为角色名。 重复度(multiplicity):重复度是指在一个给定的联系中有多少对象参与。 即是关联角色的重复度。,例 :大学、教师、上课教材等信息的ER图,带泛化边的对象联系图,大学、教师、上课教材等信息的类图:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1