数据库(2)复习资料------------------上大11春季例1设关系模式R(U,F),其中,U={A,B,C,D,E,I},F={A→D,AB→C,BI→C,ED→I,C→E},求(AC)+。例2设有函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A},计算它等价的最小依赖集Fmin。例3设关系模式R(U,F)中,U={A,B,C,D,E},F={AB→C,C→D,D→E},R的一个分解ρ={R1(A,B,C),R2(C,D),R3(D,E)}。试判断ρ具有无损连接性。5.5设关系模式R(ABCD),如果规定,关系中B值与D值之间是一对多联系,A值与C值之间是一对一联系。试写出相应的函数依赖。5.7设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,试写出关系模式R的关键码。并说明理由。5.8设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},①试写出属性集BD的闭包(BD)+。②试写出所有左部是B的函数依赖(即形为“B→?”)。5.11设关系模式R(ABC),F是R上成立的FD集,F={A→C,B→C},试分别求F在模式AB和AC上的投影。5.18设有一个记录各个球队队员每场比赛进球数的关系模式R(队员编号,比赛场次,进球数,球队名,队长名)如果规定每个队员只能属于一个球队,每个球队只有一个队长。①试写出关系模式R的基本FD和关键码。②说明R不是2NF模式的理由,并把R分解成2NF模式集。③进而把R分解成3NF模式集,并说明理由。*多值依赖,BCNF*数据库系统生存期;概念设计的目标,独立于…,步骤;采用ER方法的数据库概念设计分三步;5.20设关系模式R(ABC)上有一个MVDAB,如果已知R的当前关系存在三个元组(ab1c1),(ab2c2),(ab3c3),那么这个关系中至少还应该存在那些元组?*逻辑设计的目的;与软硬件关系;*事务的定义;事务开始,结束语句*事务的ACID性质;*恢复的定义;恢复的基本原则;实现方法;*故障类型;*检查点机制;REDO操作;UNDO操作;运行记录优先原则;数据库的并发操作带来的问题;解决并发操作带来的问题有两种技术;封锁技术有两种封锁;使用封锁技术可能带来的三个问题;*事务的调度;串行调度和并行调度;两段封锁协议;*数据库中的完整性指,完整性子系统的主要功能;完整性规则的组成;8.19设教学数据库的关系如下:S(SNO,SNAME,AGE,SEX)SC(SNO,CNO,GRADE)C(CNO,CNAME,TEACHER)试用多种方法定义下列完整性约束:⑴在关系S中插入的学生年龄值应在16~25岁之间。⑵在关系SC中插入元组时,其SNO值和CNO值必须分别在S和C中出现。⑶在关系C中删除一个元组时,首先要把关系SC中具有同样CNO值的元组全部删去。⑷在关系S中把某个SNO值修改为新值时,必须同时把关系SC中那些同样的SNO值也修改为新值。8.20在教学数据库中的关系S、SC、C中,试用SQL的断言机制定义下列两个完整性约束:⑴每位教师开设的课程不能超过10门。(2)不允许男同学选修WU老师的课程。(3)每门课程最多50名男同学选修(4)学生必须在选修Maths课后,才能选修其他课程。(5)每个男学生最多选修20门课程。*创建触发器:1在学生表S上定义更新触发器,使其阻止SNO列被修改:2在学习表SC上定义更新触发器,使其修改后的成绩不能低于原来的成绩:3为学习表SC设计“选课”和“退课”触发器来实现“按学分计算学费”的业务管理逻辑://选课//退课*用SQL3触发器1创建供应关系SPJ的一个触发器,在修改关系SPJ的PRICE值时,只能增加不能减少,否则拒绝修改:*SQL中的安全性机制例:设有三个关系模式:EMP(ENO,ENAME,AGE,SEX,ECITY)COMP(CNO,CNAME,CITY)WORKS(ENO,CNO,SALARY)试用SQL的断言机制定义下列完整性约束:①每个职工至多可在3个公司兼职工作:②每门公司男职工的平均年龄不超过40岁:③不允许女职工在建筑公司工作:*用SQL3触发器【实例1】某单位修改工资原则:如果职工工资修改后仍低于900元,那么,在修改后的工资基础上再增加原工资的5%,但不得超过900元(元组级触发器)。【实例2】在学习关系SC表中修改课程号CNO,即学生的选课登记需作变化。在关系SC中的约束:要求保持每门课程选修人数不超过50。如果更改课程号后,违反这个约束,那么这个更改应该不做。(语句级触发器)例1:把对关系S的查询、修改权限授给用户WANG,并且WANG还可以把这些权限转授给其他用户:例2:允许用户BAO建立新关系,并可以引用关系C的主键CNO作为新关系的外键,并有转让权限。例3:从用户WANG连锁回收对关系S的查询、修改权限。*DDBS特点;DDBS分类;DDB模式结构;映像体现的数据独立性;10.6图10.1是有关教师(Faculty)、系(Department)和系主任(Director)信息的对象联系图。(1)试用ORDB的定义语言,定义这个数据库。(2)试用ORDB的查询语言,分别写出下列查询的SELECT语句:①检索精通俄语(Russian)的教师工号和姓名。②检索复旦大学出访过瑞士(Switzerland)并且精通日语(Japanese)的系主任。答案:例1设关系模式R(U,F),其中,U={A,B,C,D,E,I},F={A→D,AB→C,BI→C,ED→I,C→E},求(AC)+。解:(1)令X={AC},则X(0)=AC。(2)在F中找出左边是AC子集的函数依赖:A→D,C→E。(3)X(1)=X(0)∪D∪E=ACDE。(4)很明显X(1)≠X(0),所以X(i)=X(1),并转向算法中的步骤(2)。(5)在F中找出左边是ACDE子集的函数依赖:ED→I。(6)X(2)=X(1)∪I=ACDEI。(7)虽然X(2)≠X(1),但是F中未用过的函数依赖的左边属性已没有X(2)的子集,所以,可停止计算,输出(AC)+=X(2)=ACDEI。例2设有函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A},计算它等价的最小依赖集Fmin。解:(1)化单依赖右边的属性,结果为F1={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}(2)去除F1的依赖中左边多余的属性。对于BD→A,由于有B→A,所以是多余的。结果为F2={A→C,C→A,B→A,B→C,D→A,D→C}(3)去除F2中多余的依赖。因为:A→C,C→A,所以。故:B→A、B→C以及D→A、D→C中之一为多余的。取F3={A→C,C→A,B→A,D→A}。在F3中:对于A→C,F3-{A→C}中A+=A;对于C→A,F3-{C→A}中C+=C;对于B→A,F3-{B→A}中B+=B;对于D→A,F3-{D→A}中D+=D;所以,F3中已没有多余的函数依赖。即F的等价最小依赖集Fmin为:{A→C,C→A,B→A,D→A}。例3设关系模式R(U,F)中,U={A,B,C,D,E},F={AB→C,C→D,D→E},R的一个分解ρ={R1(A,B,C),R2(C,D),R3(D,E)}。试判断ρ具有无损连接性。解:(1)首先构造初始表,如表(a)所示。(2)按下列次序反复检查函数依赖和修改M:AB→C,属性A、B(第1、2列)中都没有相同的分量值,故M值不变;C→D,属性C中有相同值,故应改变D属性中的M值,b14改为a4;D→E,属性D中有相同值,b15、b25均改为a5。结果如表(b)所示。(3)此时第一行已为a1,a2,a3,a4,a5,所以ρ具有无损连接性。5.5设关系模式R(ABCD),如果规定,关系中B值与D值之间是一对多联系,A值与C值之间是一对一联系。试写出相应的函数依赖。解:从B值与D值之间有一对多联系,可写出函数依赖:D→B从A值与C值之间是一对一联系,可写出函数依赖:A→C和C→A5.7设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,试写出关系模式R的关键码。并说明理由。解:R的关键码为ACD。因为从已知的F,只能推出ACD→ABCD。(ACD)+=ABCD5.8设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},①试写出属性集BD的闭包(BD)+。②试写出所有左部是B的函数依赖(即形为“B→?”)。解:①从已知的F,可推出BD→BCD,所以(BD)+=BCD。②由于B+=BC,因此左部是B的FD有四个:B→φ,B→B,B→C,B→BC。5.11设关系模式R(ABC),F是R上成立的FD集,F={A→C,B→C},试分别求F在模式AB和AC上的投影。答:πAB(F)=φ(即不存在非平凡的FD)πAC(F)={A→C}5.18设有一个记录各个球队队员每场比赛进球数的关系模式R(队员编号,比赛场次,进球数,球队名,队长名)如果规定每个队员只能属于一个球队,每个球队只有一个队长。①试写出关系模式R的基本FD和关键码。②说明R不是2NF模式的理由,并把R分解成2NF模式集。③进而把R分解成3NF模式集,并说明理由。解:①根据每个队员只能属于一个球队,可写出FD:队员编号→球队名根据每个球队只有一个队长,可写出FD:球队名→队长名“每个队员每场比赛只有一个进球数”,这条规则也是成立的。因此还可写出FD:(队员编号,比赛场次)→进球数R的关键码为(队员编号,比赛场次)。②R中存在这样的FD:(队员编号,比赛场次)→(球队名,队长名)队员编号→(球队名,队长名)由于前一个FD是局部依赖,所以R不是2NF模式。R应分解成:R1(队员编号,球队名,队长名)R2(比赛场次,队员编号,进球数)此时,R1和R2都是2NF模式。(3)R2(比赛场次,队员编号,进球数)已是3NF模式。但在R1(队员编号,球队名,队长名)中,存在两个FD:队员编号→球队名球队名→队长名关键码为队员编号,存在传递依赖,因此R1不是3NF模式。R1应分解成:R11(队员编号,球队名)R12(球队名,队长名)这样,ρ={R11,R12,R2},其中每个模式均是3NF模式集。5.20设关系模式R(ABC)上有一个MVDAB,如果已知R的当前关系存在三个元组(ab1c1),(ab2c2),(ab3c3),那么这个关系中至少还应该存在那些元组?解:(ab1c2)(ab1c3)(ab2c1)(ab2c3)(ab3c1)(ab3c2)*数据库系统生存期:规划,需求分析,概念设计,逻辑设计,物理设计,实现和运行维护;*概念设计的目标是:产生反映企业组织信息需求的数据库概念结构;概念模式是独立于计算机硬件系统和软件(DBMS)*概念设计的主要步骤:设计局部概念模式,设计全局概念模式,评审;*利用ER方法的数据库概念设计:设计局部ER模式,全局ER模式,优化;*逻辑设计的目的是把概念设计阶段设计的全局ER模式转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构;与硬件无关与软件有关;*事务是构成单一逻辑工作单元的操作集合;事务以BEGINTRANSACTION语句开始,以COMMIT语句或者ROLLBACK语句结束;COMMIT语句表示事务执行成功地结束(提交);ROLLBACK语句表示事务执行不成功地结束(回退);*事务的ACID性质:原子性(事务是一个不可分割的工作单元,由DBMS的事务管理子系统来实现);一致性(数据不会因事务的执行而遭受破坏,由DBMS的完整性子系统执行测试任务);隔离性(在多个事务并发执行时,保证执行结果是正确的,由DBMS的并发控制子系统实现的);持久性(对数据库的更新永久的反映在数据库中,不会丢失,由DBMS的恢复管理子系统实现的);*恢复的定义:从破坏性,不正确的状态,恢复到最近一个正确的状态;恢复的基本原则:冗余即数据库重复存储;实现方法:备份和日志;*故障类型:事务故障(可预期和非预期),系统故障