上海大学数据库原理第二学期复习资料.docx
- 文档编号:11538041
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:21
- 大小:35.20KB
上海大学数据库原理第二学期复习资料.docx
《上海大学数据库原理第二学期复习资料.docx》由会员分享,可在线阅读,更多相关《上海大学数据库原理第二学期复习资料.docx(21页珍藏版)》请在冰点文库上搜索。
上海大学数据库原理第二学期复习资料
<数据库原理二>考试复习资料
上海大学
1设关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个?
其中平凡的FD有多少个?
非平凡的FD有多少个?
解:
这个问题是排列组合问题。
FD形为X→Y,从n个属性值中选择属性组成X共有C
+C
+…+C
=2n种方法;同理,组成Y也有2n种方法。
因此组成X→Y形式应该有2n·2n=4n种方法。
即可能成立的FD有4n个。
平凡的FD要求Y⊆X,组合X→Y形式的选择有:
C
·C
+C
·(C
+C
)+C
·(C
+C
+C
)+…+C
(C
+C
+…C
)=C
·20+C
·21+C
·22+…+C
·2n=(1+2)n=3n
即平凡的FD有3n。
因而非平凡的FD有4n-3n个。
5.3对函数依赖X→Y的定义加以扩充,X和Y可以为空属性集,用φ表示,那么X→φ,φ→Y,φ→φ的含义是什么?
答:
据推理规则的自反律可知,X→φ和φ→φ是平凡的FD,总是成立的。
而φ→Y表示在当前关系中,任意两个元组的Y值相等,也就是当前关系的Y值都相等。
5.4已知关系模式R(ABC),F是R上成立的FD集,F={A→B,B→C},试写出F的闭包F+。
解:
据已知条件和推理规则,可知F+有43个FD:
A→φAB→φAC→φABC→φB→φC→φ
A→AAB→AAC→AABC→AB→BC→C
A→BAB→BAC→BABC→BB→Cφ→φ
A→CAB→CAC→CABC→CB→BC
A→ABAB→ABAC→ABABC→ABBC→ф
A→ACAB→ACAC→ACABC→ACBC→B
A→BCAB→BCAC→BCABC→BCBC→C
A→ABCAB→ABCAC→ABCABC→ABCBC→BC
5.5设关系模式R(ABCD),如果规定,关系中B值与D值之间是一对多联系,A值与C值之间是一对一联系。
试写出相应的函数依赖。
解:
从B值与D值之间有一对多联系,可写出函数依赖D→B,从A值与C值之间是一对一联系。
可写出函数依赖A→C和C→A。
5.6试举出反例说明下列规则不成立:
①{A→B}⊨{B→A}
②{AB→C,A→C}⊨{B→C}
③{AB→C}⊨{A→C}
答:
设有三个关系:
r1ABr2ABCr3ABC
11212123
21222134
323
(1)在关系r1中,A→B成立,但B→A不成立。
(2)在关系r2中,AB→C和A→C成立,但B→C不成立
(3)在关系r3中,AB→C成立,但A→C不成立。
5.7设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,试写出关系模式R的关键码。
并说明理由。
解:
R的关键码为ACD。
因为从已知的F,只能推出ACD→ABCD。
5.8设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},
1试写出属性集BD的闭包(BD)+。
2试写出所有左部是B的函数依赖(即形为“B→?
”)。
解:
①从已知的F,可推出BD→BCD,所以(BD)+=BCD。
②由于B+=BC,因此左部是B的FD有四个:
B→φ,B→B,B→C,B→BC。
5.9设关系模式R(ABC)分解成ρ={AB,BC},如果R上的FD集F={A→B},那么这个分解是损失分解。
试举出R的一个关系r,不满足mρ(r)=r。
解:
这个反例r可以举测试时的初始表格:
ABC
ABa1a2b13
BCb21a2a3
πAB(r)⋈πBC(r)有四个元组:
ABC
a1a2b13
a1a2a3
b21a2b13
b21a2a3
即mρ(r)≠r。
5.10试解释数据库“丢失信息”与“未丢失信息”两个概念。
“丢失信息”与“丢失数据”有什么区别?
答:
数据库中丢失信息是指r≠mρ(r),未丢失信息是指r=mρ(r)。
丢失信息是指不能辨别元组的真伪,而丢失数据是指丢失元组。
5.11设关系模式R(ABC),F是R上成立的FD集,F={A→C,B→C},试分别求F在模式AB和AC上的投影。
答:
πAB(F)=φ(即不存在非平凡的FD)
πAC(F)={A→C}
5.12设关系模式R(ABC),F是R上成立的FD集,F={B→A,C→A},ρ={AB,BC}是R上的一个分解,那么分解ρ是否保持FD集F?
并说明理由。
答:
已知F={B→A,C→A},而πAB(F)={B→A},πBC(F)=φ,
显然,分解ρ丢失了FDC→A。
5.13设关系模式R(ABC),F是R上成立的FD集,F={B→C,C→A},那么分解ρ={AB,AC}相对于F,是否无损分解和保持FD?
并说明理由。
答:
①已知F={B→C,C→A},
而πAB(F)=φ,πAC(F)={C→A}
显然,这个分解丢失了FDB→C
②用测试过程可以知道,ρ相对于F是损失分解。
5.14设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C,A→D,D→C},ρ={AB,AC,BD}是R的一个分解。
1相对于F,ρ是无损分解吗?
为什么?
2试求F在ρ的每个模式上的投影。
3ρ保持F吗?
为什么?
答:
①用测试过程可以知道,ρ相对于F是损失分解。
②πAB(F)={A→B},πAC(F)={A→C},πBD(F)=φ。
③显然,分解ρ不保持FD集F,丢失了B→C、A→D和D→C等三个FD。
5.15设关系模式R(ABCD),R上的FD集F={A→C,D→C,BD→A},试说明ρ={AB,ACD,BCD}相对于F是损失分解的理由。
答:
据已知的F集,不可能把初始表格修改为有一个全a行的表格,因此ρ相对于F是损失分解。
5.16设关系模式R(ABCD),F是R上成立的FD集,F={AB→CD,A→D}。
1试说明R不是2NF模式的理由。
2试把R分解成2NF模式集。
答:
①从已知FD集F,可知R的候选键是AB。
另外,AB→D是一个局部依赖,因此R不是2NF模式。
3此时R应分解成ρ={AD,ABC},ρ是2NF模式集。
5.17设关系模式R(ABC),F是R上成立的FD集,F={C→B,B→A}。
1试说明R不是3NF模式的理由。
2试把R分解成3NF模式集。
答:
①从已知FD集F,可知R的候选键是C。
从C→B和B→A,可知C→A是一个传递依赖,因此R不是3NF模式。
3此时R应分解成ρ={CB,BA},ρ是3NF模式集。
5.18设有一个记录各个球队队员每场比赛进球数的关系模式
R(队员编号,比赛场次,进球数,球队名,队长名)
如果规定每个队员只能属于一个球队,每个球队只有一个队长。
1试写出关系模式R的基本FD和关键码。
2说明R不是2NF模式的理由,并把R分解成2NF模式集。
3进而把R分解成3NF模式集,并说明理由。
解:
(1)根据每个队员只能属于一个球队,可写出FD:
队员编号→球队名
根据每个球队只有一个队长,可写出FD:
球队名→队长名
“每个队员每场比赛只有一个进球数”,这条规则也是成立的。
因此还可写出FD:
(队员编号,比赛场次)→进球数
R的关键码为(队员编号,比赛场次)。
(2)R中存在这样的FD:
(队员编号,比赛场次)→(球队名,队长名)
队员编号→(球队名,队长名)
可见前一个FD是局部依赖,所以R不是2NF模式。
R应分解成R1(队员编号,球队名,队长名)
R2(队员编号,比赛场次,进球数)
此处,R1和R2都是2NF模式。
(3)R2已是3NF模式。
在R1(队员编号,球队名,队长名)中,存在两个FD:
队员编号→球队名
球队名→队长名
关键码为队员编号,存在传递依赖,因此R1不是3NF模式。
R1应分解成R11(队员编号,球队名)
R12(球队名,队长名)
这两个模式都是3NF模式。
因此,R分解成3NF模式集时,ρ={R11,R12,R2}。
5.19设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。
如果规定:
每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。
试回答下列问题:
(1)根据上述规定,写出模式R的基本FD和关键码;
(2)说明R不是2NF的理由,并把R分解成2NF模式集;
(3)进而分解成3NF模式集。
解:
(1)基本的FD有三个:
(职工编号,日期)→日营业额
职工编号→部门名
部门名→部门经理
R的关键码为(职工编号,日期)。
(2)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)上有一个MVDA→→B。
如果已知R的当前关系存在三个元组(ab1c1)、(ab2c2)和(ab3c3),那么这个关系中至少还应该存在哪些元组?
解:
这个关系中至少还应存在下面6个元组:
(ab1c2),(ab2c1),(ab1c3),(ab3c1),(ab2c3),(ab3c2)。
7.2数据库系统的生存期分成哪几个阶段?
数据库结构的设计在生存期中的地位如何?
答:
对DBS生存期的划分,一般分为七个阶段,即规划、需求分析、概念设计、逻辑设计、物理设计、实现和运行维护。
DB结构设计的任务就是把概念设计阶段设计好的基本ER图转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构。
7.4基于数据库系统生存期的数据库设计分成哪几个阶段?
答:
基于DBS生存期的DBD分成以下五个阶段:
规划;需求描述和分析;概念设计;逻辑设计;物理设计。
7.5数据库设计的规划阶段应做哪些事情?
答:
DBD中规划阶段的主要任务是进行建立DB的必要性及可行性分析,确定DBS在组织中和信息系统中的地位,以及各个DB之间的联系。
7.6数据库设计的需求分析阶段是如何实现的?
目标是什么?
答:
需求分析阶段的工作由下面四步组成:
·分析用户活动,产生用户活动图;
·确定系统范围,产生系统范围图;
·分析用户活动所涉及的数据,产生数据流图;
·分析系统数据,产生数据字典。
需求分析阶段的目标是对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求;并把这些要求写成用户和数据库设计者都能接受的文档。
7.10概念设计的具体步骤是什么?
答:
概念设计的主要步走可分为三步:
(1)进行数据抽象,设计局部概念模式;
(2)将局部概念模式综合成全局概念模式;
(3)评审。
7.13逻辑设计的目的是什么?
答:
逻辑设计的目的是把概念设计阶段设计好的基本ER图转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式和外模式)。
这些模式在功能、性能、完整性和一致性约束及数据库的可扩充性等方面均应满足用户的各种要求。
7.14试述逻辑设计阶段的主要步骤及内容。
答:
逻辑设计阶段主要有五步:
形成初始模式,设计子模式,设计应用程序梗概,评价模式和修改模式。
7.15规范化理论对数据库设计有什么指导意义?
答:
规范化理论是数据库设计的指南和工具.具体地讲可在以下三个方面起重要作用:
(1)在数据库分析阶段用数据依赖的概念来分析和表示各数据项之间的联系;
(2)在概念设计阶段,用规范化理论消除初步ER图中冗余的联系;
(3)在ER图向关系模型转换过程中,用模式分解的概念和算法指导设计.
7.16什么是数据库结构的物理设计?
试述其具体步骤。
答:
对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程,称为DB的物理设计。
物理设计有五步:
确定DB的存储记录结构;确定数据存储按排;存取方法的设计;完整性和安全性的设计;应用程序设计。
7.17数据库实现阶段主要做哪几件事情?
答:
数据库实现阶段主要有以下三项工作:
建立实际DB结构;装入试验数据调试应用程序;装入实际数据进入试运行状态。
7.18数据库系统投入运行后,有哪些维护工作?
答:
DBS投入运行以后,就进入运行维护阶段。
其主要工作有四项:
维护DB的安全性与完整性及系统的转储和恢复;
DB性能的监督、分析与改进;
增加DB新功能;
改正运行中发现的系统错误。
8.2试叙述事务的四个性质,并解释每一个性质由DBMS的哪个子系统实现?
每一个性质对DBS有什么益处?
答:
①事务的原子性,是指一个事务对DB的所有操作,是一个不可分割的工作单元。
原子性是由DBMS的事务管理子系统实现的。
事务的原子性保证了DBS的完整性。
②事务的一致性,是指数据不会因事务的执行而遭受破坏。
事务的一致性是由DBMS的完整性子系统实现的。
事务的一致性保证数据库的完整性。
③事务的隔离性,是指事务的并发执行与这些事务单独执行时结果一样。
事务的隔离性是由DBMS的并发控制子系统实现的。
隔离性使并发执行的事务不必关心其他事务,如同在单用户环境下执行一样。
④事务的持久性,是指事务对DB的更新应永久地反映在DB中。
持久性是由DBMS的恢复管理子系统实现的。
持久性能保证DB具有可恢复性。
8.3事务的COMMIT语句和ROLLBACK语句各做什么事情?
答:
COMMIT语句表示事务执行成功地结束(提交),此时告诉系统,DB要进入一个新的正确状态,该事务对DB的所有更新都已交付实施(写入磁盘)。
ROLLBACK语句表示事务执行不成功地结束(应该“回退”),此时告诉系统,已发生错误,DB可能处在不正确的状态,该事务对DB的所有更新必须被撤消,DB应恢复该事务到初始状态。
8.5“检查点机制”的主要思想是什么?
COMMIT语句与检查点时刻的操作如何协调?
答:
“检查点机制”的主要思想是在检查点时刻才真正做到把对DB的修改写到磁盘。
在DB恢复时,只有那些在最后一个检查点到故障点之间还在执行的事务才需要恢复。
事务在COMMIT时,事务对DB的更新已提交,但对DB的更新可能还留在内存的缓冲区,在检查点时刻才真正写到磁盘。
因此事务的真正结束是在COMMIT后还要加上遇到检查点时刻。
8.6什么是UNDO操作和REDO操作?
为什么要这样设置?
答:
UNDO和REDO是系统内部命令。
在DB恢复时,对于已经COMMIT但更新仍停留在缓冲区的事务要执行REDO(重做)操作,即根据日志内容把该事务对DB修改重做一遍。
对于还未结束的事务要执行UNDO(撤消)操作,即据日志内容把该事务对DB已作的修改撤消掉。
设置UNDO和REDO操作,是为了使数据库具有可恢复性。
8.7什么是“运行记录优先原则”?
其作用是什么?
答:
写一个修改到DB中和写一个表示这个修改的登记记录到日志文件中是两个不同的操作,后者比前者重要,后者应先做。
这就是运行记录优先原则。
其作用是保证DBS具有可恢复性。
8.8数据库恢复的基本原则是什么?
具体实现方法是什么?
答:
恢复的基本原则是“冗余”,即数据重复存储。
为了做好恢复工作,在平时应做好两件事:
定时对DB进行备份;建立日志文件,记录事务对DB的更新操作。
8.9数据库的并发操作会带来哪些问题?
如何解决?
答:
如果不加控制,数据库的并发操作会带来三个问题:
丢失更新问题、依赖于未提交更新的问题和不一致分析问题。
解决并发操作带来的问题,可以使用封锁技术和时标技术。
8.10为什么DML可以单独提供解除S封锁的命令,而不单独提供解除X封锁的命令?
答:
为防止由事务的ROLLBACK引起丢失更新操作,X封锁必须保留到事务终点,因此DML不提供专门的解除X锁的操作,即解除X锁的操作合并到事务的终点去做。
而在未到事务终点时,执行解除S锁的操作,可以增加事务并发操作的程度,但对DB不会产生什么错误的影响,因此DML可以提供专门的解除S锁的的操作,让用户使用。
8.12死锁的发生是坏事还是好事?
试说明理由。
如何解除死锁状态?
答:
在DBS运行时,死锁状态是我们不希望发生的,因此死锁的发生本身是一件坏事。
但是坏事可以转换为好事。
如果我们不让死锁发生,让事务任意并发做下去,那么有可能破坏中的数据,或使用户读了错误的数据。
从这个意义上讲,死锁的发生是一件好事,能防止错误的发生。
在发生死锁后,系统的死锁处理机制和恢复程序就能起作用,抽取某个事务作为牺牲品,把它撤消,做ROLLBACK操作,使系统有可能摆脱死锁状态,继续运行下去。
8.13试叙述“串行调度”与“可串行化调度”的区别。
答:
如果多个事务依次执行,则称事务串行调度。
如果利用分时的方法,同时处理多个事务,则称为事务的并发调度。
如果一个并发调度的结果与某一串行调度执行结果等价,则称这个并发调度是可串行化调度。
8.15什么是数据库的完整性?
DBMS的完整性子系统的主要功能是什么?
答:
DB中完整性是指数据的正确性、有效性和相容性,防止错误的数据进入DB。
DBMS完整性子系统的主要功能有两点:
监督事务的执行,并测试是否违反完整性规则;若有违反现象,则采取恰当的操作。
8.16完整性规则由哪几个部分组成?
SQL中的完整性约束有哪些?
答:
完整性规则由三部分组成:
触发条件,约束条件和ELSE子句。
SQL中把完整性约束分成三大类:
域约束。
基本表约束和断言。
8.17参照完整性规则在SQL中可以用哪几种方法实现?
删除参照关系的元组时,对依赖关系有哪些影响?
修改参照关系的主键值时,对依赖关系有哪些影响?
答:
参照完整性规则,在SQL中可以用外键子句、检查子句、断言等三种方式实现。
删除参照关系的元组时,对依赖关系的影响可以采取下列三种做法之一:
RESTRICT方式、CASCADE方式和SETNULL方式。
修改参照关系的主键值时,对依赖关系的影响也可以采取与上述类似的三种做法之一。
8.18试对SQL中检查约束(CHECK子句)和断言两种完整性约束进行比较,各说明什么对象?
何时激活?
能保证数据库的一致性吗?
答:
检查子句主要用于对属性值、元组值加以限制和约束。
断言实际上是一种涉及面广的检查子句,用CREATE语句来定义。
这两种约束都是在进行插入或修改时激活,进行检查。
检查子句只在定义它的基本表中有效,而对其他基本表无约束力,因此在与检查子句有关的其他基本表进行修改时,就不能保证这个基本表中检查子句的语义了。
而断言能保证完整性约束彻底实现。
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值也修改为新值。
解:
这里每个约束用一种方式定义。
(1)用检查子句定义:
CHECK(AGEBETWEEN16AND25);
(2)在关系SC的定义中,用外键子句定义:
FOREIGNKEY(SNO)REFERENCESS(SNO);
FOREIGNKEY(CNO)REFERENCESC(CNO);
(3)在关系SC的定义中,用外键子句定义:
FOREIGNKEY(CNO)REFERENCESC(CNO)
ONDELETECASCADE;
(4)在关系SC的定义中,用外键子句定义:
FOREIGNKEY(SNO)REFERENCESS(SNO)
ONUPDATECASCADE;
8.20在教学数据库中的关系S、SC、C中,试用SQL的断言机制定义下列两个完整性约束:
⑴每位教师开设的课程不能超过10门。
(2)不允许男同学选修WU老师的课程。
(3)每门课程最多50名男同学选修
(4)学生必须在选修Maths课后,才能选修其他课程。
(5)每个男学生最多选修20门课程。
解:
⑴每位教师开设的课程不能超过10门。
CREATEASSERTIONASSE5CHECK
(10>=ALL(SELECTCOUNT(CNO)
FROMC
GROUPBYTNAME))
(2)不允许男同学选修WU老师的课程。
CREATEASSERTIONASSE2CHECK
(NOTEXISTS(SELECT*
FROMSC
WHERECNOIN(SELECTCNO
FROMC
WHERETNAME=’WU’
ANDSNOIN(SELECTSNO
FROMC
WHERESEX=’男’)));
(3)每门课程最多50名男同学选修
CREATEASSERTIONASSE3CHECK
(50>=ALL(SELECTCOUNT(SC.SNO)
FROMS,SC
WHERES.SNO=SC.SNOANDSEX=’男’
GROUPBYCNO));
(4)学生必须在选修Maths课后,才能选修其他课程。
这个约束可用下列形式表达:
“不存在一个学生的选课,这个学生没学过Maths课”。
这样就能很容易地写出断言:
CREATEASSERTIONASSE4CHECK
(NOTEXISTS(SELECTSNO
FROMSCX
WHERENOTEXISTS
(SELECT*
FROMSCY,C
WHEREY.CNO=C.CNO
ANDY.SNO=X.SNO
ANDCNAME=’Maths’)));
(5)每个男学生最多选修20门课程。
CREATEASSERTIONASSE5CHECK
(20>=ALL(SELECTCOUNT(CNO)
FROMS,SC
WHERES.SNO=SC.SNOANDSEX=’男’
GROUPBYS.SNO));
8.21什么是数据库的安全性?
有哪些级别的安全措施?
答:
DB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上海 大学 数据库 原理 第二 学期 复习资料