数据结构期末考试精简总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、填空
1.传统的集合“并、交、差”运算施加于两个关系时,这两个关系的属性个数必须相等,相对应的属性值必须取自同一个域。

2.指出下列缩写的含义:DBMS DBMS数据库管理系统、DBA DBA 数据库管理员。

5.数据库在运行过程中可能产生的故障有①Transaction failure②System crash③Disk failure
3.关系数据库中基于数学上两类运算是关系代数和关系演算。

4.数据库设计的几个步骤是需求分析,概念设计,逻辑设计,物理设计,编码和调试、实施运行和维护。

7.关系操作的特点是集合操作。

5.在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则:保持原有的函数依赖和无损连接。

6.SQL语言的数据定义功能包括定义数据库、定义基本表、定义视图和定义索引。

二、判断
1.view可串行化的调度(schedule)一定也是冲突(conflict)可串行化的调度。


2.在确定关系的候选码时,如果属性X在函数依赖的左右都不出现,则候选码中必不包含X。


三、简答
2.什么是关系的外码?并举例说明。

答:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R 的外部码,也称外码。

学生数据库中有关系STUDENT(SNO,SNAME,SEX,AGE)、关系COURSE
(CNO,CNAME)和关系SC(SNO,
CNO,GRADE),SC关系中SNO
是外码,其参照关系是
STUDENT;CNO也是外码,其参
照关系是COURSE。

3.如何通过定义视图和存取
控制保证数据库的安全性?
并用SQL语言举例说明。

视图能够对机密数据提供安
全保护。

有了视图机制,就可
以在设计数据库应用系统时,
对不同的用户定义不同的视
图,使机密数据不出现在不应
看到这些数据的用户视图上,
这样就由视图的机制自动提
供了对机密数据的安全保护
功能。

例如Student表涉及三
个系的学生数据,可以在其上
定义三个视图,每个视图只包
含一个系的学生数据,并只允
许每个系的学生查询自己所
在系的学生视图。

例:建立信息系学生的视图。

CREATE VIEW IS_Student
AS
SELECT Sno, Sname,
Sage
FROM Student
WHERE Sdept='IS';
数据库的安全性是指保
护数据库,防止不合法的使用
所造成的数据泄露和破坏。


据库系统中保证数据安全性
的主要措施是进行存取控制,
即规定不同用户对于不同数
据对象所允许执行的操作,并
控制各用户只能存取他有权
存取的数据。

不同的用户对不
同的数据应具有何种操作权
力,是由DBA和表的建立者(即
表的属主)根据具体情况决定
的,SQL语言则为DBA和表的
属主定义和回收这种权力提
供了手段。

例:把查询Student表权限授
给用户U1。

GRANT SELECT ON TABLE
Student TO U1;
1.什么是数据库?
答:数据库是长期存储在计算
机内、有组织的、可共享的数
据集合。

数据库是按某种数据
模型进行组织的、存放在外存
储器上,且可被多个用户同时
使用。

因此,数据库具有较小
的冗余度,较高的数据独立性
和易扩展性。

2.什么是数据库的数据独立
性?
答:数据独立性表示应用程序
与数据库中存储的数据不存
在依赖关系,包括逻辑数据独
立性和物理数据独立性。

逻辑数据独立性是指局
部逻辑数据结构(外视图即用
户的逻辑文件)与全局逻辑数
据结构(概念视图)之间的独
立性。

当数据库的全局逻辑数
据结构(概念视图)发生变化
(数据定义的修改、数据之间
联系的变更或增加新的数据
类型等)时,它不影响某些局
部的逻辑结构的性质,应用程
序不必修改。

物理数据独立性是指数据的
存储结构与存取方法(内视
图)改变时,对数据库的全局
逻辑结构(概念视图)和应用
程序不必作修改的一种特性,
也就是说,数据库数据的存储
结构与存取方法独立。

数据独立性的好处是,数据的
物理存储设备更新了,物理表
示及存取方法改变了,但数据
的逻辑模式可以不改变。

数据
的逻辑模式改变了,但用户的
模式可以不改变,因此应用程
序也可以不变。

这将使程序维
护容易,另外,对同一数据库
的逻辑模式,可以建立不同的
用户模式,从而提高数据共享
性,使数据库系统有较好的可
扩充性,给 DBA维护、改变数
据库的物理存储提供了方便。

3.叙述等值连接与自然连接
的区别和联系。

答:等值连接表示为R A=B S,
自然连接表示为R S;自然
连接是除去重复属性的等值
连接。

两者之间的区别和联系
如下:
自然连接一定是等值连接,但
等值连接不一定是自然连接。

等值连接不把重复的属性除
去;而自然连接要把重复的属
性除去。

等值连接要求相等的分量,不
一定是公共属性;而自然连接
要求相等的分量必须是公共
属性。

等值连接不把重复的属性除
去;而自然连接要把重复的属
性除去。

2.数据库管理系统有哪些功
能?
答:数据库管理系统(DBMS)
是位于操作系统与用户之间
的一个数据管理软件,它主要
功能包括以下几个方面:
·数据定义功能 DBMS提
供数据描述语言(DDL),用户
可通过它来定义数据。

·数据操纵功能 DBMS还
提供数据操纵语言(DML),实
现对数据库的基本操作:查
询、插入、删除和修改。

·数据库的运行管理这
是DBMS运行时的核心部分,
它包括开发控制,安全性检
查,完整性约束条件的检查和
执行,数据库的内容维护等。

·数据库的建立和维护功能
它包括数据库初始数据的输
入及转换,数据库的转储与恢
复,数据库的重组功能和性能
的监视与分析功能等。

3.事务中的提交和回滚是什
么意思?
答:事务中的提交(COMMIT)
是提交事务的所有操作。

具体
说就是将事务中所有对数据
库的更新写回到磁盘上的物
理数据库中去,事务正常结
束。

事务中的回滚(ROLLBACK)是
数据库滚回到事务开始时的状态。

具体地说就是,在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤消,使数据库回滚到事务开始时的状态。

五应用题
1.已知 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.构造一个初始二维表如下图
2.运用函数依赖后,
二维表最终变为如下表所示
因此该分解是无损连接的。

3 由Armstrong公理证明:
合并规则:若X->Z , X->Y, 则X->YZ
证明:因为 X→Y
所以 X→XY (增广律)
因为 X→Z
所以 XY→ZY (增广律)
所以 X→YZ (传递律)
六、综合题:
1..设工厂里有一个记录职工每天日产量的关系模式:
R(职工编号,日期,日产量,车间编号,车间主任)。

如果规定:每个职工每天只有一个日产量;
每个职工只能隶属于一个车间;
每个车间只有一个车间主任。

试回答下列问题:⑴根据上述规定,写出模式R
的基本FD和关键码;
⑵说明R不是2NF的理由,
并把R分解成2NF模式集;
⑶进而再分解成3NF模式集,
并说明理由。

1.解:①基本的FD有3个:
(职工编号,日期)→日产
量职工编号→车间编

车间编号→车间主
任R的关键码为(职
工编号,日期)。

② R中有两个这样的
FD:(职工编号,日期)→(车
间编号,车间主任)
职工编号→(车间编号,车
间主任)可见前一个FD是局
部依赖,所以R不是2NF模式。

R应分解成R1(职工编号,车
间编号,车间主任)
R2(职工编号,日期,日产量)
此处,R1和R2都是2NF模式。

③ R2已是3NF模式。

在R1中,
存在两个FD:职工编号→车
间编号车间编号→车间
主任
因此,“职工编号→车
间主任”是一个传递依赖,R1
不是3NF模式。

R1应分解成R11(职工编
号,车间编号)
R12(车间编号,车间主任)
这样,ρ= { R11,R12,R2 }
是一个3NF模式集。

2.设有关系S、SC、C,试用
关系代数、元组关系演算表达
式和SQL完成下列操作。

(15
分,每小题5分)
S(S#,SNAME,AGE,SEX) 例:
(001,'李强',23,’男')
SC(S#,C#,SCORE)例:
(003,'C1',83)
C(C#,CNAME,TEACHER)例:
('C1','数据库原理','王华
')
(1)试用关系代数检索选修
了“程军”老师所授课程之
一的学生姓名。

∏SNAME (S SC TEACHER='程军'(C))
(2)试用元组关系演算表达
式检索选修了“程军”老师
所授课程之一的学生姓名。

{T(1)|(∃U)(∃V)(∃W)(S(U)∧
SC(V)∧C(W)∧T[1]=U[1]∧
U[1]=V[1]∧V[2]=W[1]∧
W[3]='程军')}
(2)试用元组关系演算表达
式检索选修了“程军”老师
所授课程之一的学生学号。

{T(1)| (∃V)(∃W)( SC(V)∧C(W)
∧T[1]=V[1]∧V[2]=W[1]∧
W[3]='程军')}
(3)找出“程序设计”课程
成绩在90分以上的学生姓名。

SELECT SNAME
FROM S,SC,C
WHERE S.S#=SC.S# AND
SC.C#=C.C# AND SCORE>=90
AND CNAME='程序设计'
或者
SELECT SNAME
FROM S
WHERER S.S# IN (SELECT S#
FROM SC
WHERE SCORE>=90 AND C.C#
IN (SELECT C# FROM C
WHERE CNAME='程序设计')
2.设有关系S、SC、C,试用
关系代数、元组关系演算表达
式和SQL完成下列操作。

(15
分,每小题5分)
S(S#,SNAME,AGE,SEX) 例:
(001,'李强',23,’男')
SC(S#,C#,SCORE) 例:
(003,'C1',83)
C(C#,CNAME,TEACHER) 例:
('C1','数据库原理','王华
')
(1)用关系代数检索既选修
了C1课程,又选修了C2课程
的学生学号。

(∏SNAME
(S C#='C1'
(SC)))∩(∏SNAME
(S C#='C2'
(SC)))
(2)用元组关系演算表达式
检索年龄大于21的男生的学
号和姓名。

{t(2)|(∃r)(S(r)∧t[1]=r[1]
∧t[2]=r[2]∧r[3]>21∧
r[4]='男')}
(3)用SQL找出“程序设计”
课程成绩在90分以上的学生
姓名。

解:
SELECT SNAME
FROM S,SC,C
WHERE S.S#=SC.S# AND
SC.C#=C.C# AND SCORE>=90
AND CNAME='程序设计'
或者
SELECT SNAME
FROM S
WHERER S.S# IN (SELECT S#
FROM SC
WHERE SCORE>=90
AND SC.C# IN (
SELECT C#
FROM C WHERE CNAME='程序设
计')
2.设有关系S、SC、C,试用
关系代数、元组关系演算表达
式和SQL完成下列操作。

(15
分,每小题5分)
S(S#,SNAME,AGE,SEX) 例:
(001,'李强',23,’男')
SC(S#,C#,SCORE) 例:
(003,'C1',83)
C(C#,CNAME,TEACHER) 例:
('C1','数据库原理','王华
')
(1)用关系代数检索选修课
程号(C#)为C1和 C2的学生
学号(S#)。

ΠS#,C#(SC)÷ΠC#(σC#=’C1’∨
C#=’C2’(C))-σC#≠’C1’ ∨C#≠’C2’
(ΠS#,C#(SC)÷ΠC#(σC#=’C1’∨
C#=’C2’(C)))
(2)用元组关系演算表达式
检索选修了“程军”老师所
授课程之一的学生姓名。

{T(1)|(∃U)(∃V)(∃W)(S(U)∧S
C(V)∧C(W)∧T[1]=U[1]∧U[
1]=V[1]∧V[2]=W[1]∧W[3]= '程军')}
(2)用元组关系演算表达式检索选修了“程军”老师所
授课程之一的学生学号。

{T(1)|
(∃V)(∃W)( SC(V)∧C(W)∧T[ 1]=V[1]∧V[2]=W[1]∧W[3]= '程军')}
3.设有关系模式R(U,F),其中:(10分)
U={A,B,C,D,E},F = { A →BC,CD→E,B→D,E→A}。

⑴计算B+。

(2分)
⑵求R的所有候选码。

(8分)
解:
⑴令X={B},X(0)=B,X(1)=BD,X(2)=BD,故B+=BD。

⑵根据候选码的定义,R的候选码只可能由F中各个函数依赖的左边属性组成,即A,B,C,D,E,由于A→BC(A→B,A→C),B→D,E→A,故:
可除去A,B,C,D,⎽组成候选码的属性可能是E。

计算可知:E+=ABCDE,即E→U,⎽ E是一个候选码。

可除去A,B,E,⎽组成候选码的属性可能是CD。

计算可知:(CD)+=ABCDE,即CD→U,但C+=C,D+=D,⎽ CD 是一个候选码。

可除去B,C,D,E,⎽组成候选码的属性可能是A。

计算可知:A+=ABCDE,即A→U,⎽ A是一个候选码。

可除去A,D,E,⎽组成候选码的属性可能是BC。

计算可知:(BC)+=ABCDE,即CD→U,但B+=BD,C+=C,⎽ BC 是一个候选码。

R的所有候选码是A,BC,CD,E。

4.设有关系STUDENT(S#,SNAME,SDEPT,MN AME,CNAME,GRADE),S#,CNAME 为候选码,设关系中有如下函数依赖:(10分)
S#,CNAME→SNAME,SDEPT,MNAME
S#→SNAME,SDEPT,MNAME
S#,CNAME→GRADE
SDEPT→MNAME
试求下列问题:
(1)关系STUDENT属于第几范式?(5分)
(2)如果关系STUDENT不属于BCNF,请将关系STUDENT逐步分解为BCNF。

(5分)
要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。

解:(1)关系STUDENT是1NF。

(2)首先消除部分函数依赖
{S#,CNAME}→
{SNAME,SDEPT,MNAME}
将关系分解为:
R1(S#,SNAME,SDEPT,MNAME)
R2(S#,CNAME,GRADE)
在关系R1中存在非主属性对候
选码的传递函数依赖S#→
SDEPT,SDEPT→MNAME,所以以
上关系模式还不是BCNF,进一
步分解R1:
R11(S#,SNAME,SDEPT)
R12(SDEPT,MNAME)
R11,R12都是3NF。

关系模式:
R2(S#,CNAME,GRADE)
R11(S#,SNAME,SDEPT)
R12(SDEPT,MNAME)
R2,R11,R12关系模式存在的
函数依赖
S#,CNAME→GRADE S#→
SNAME,SDEPT SDEPT→MNAME
上述函数依赖都是非平凡的,
并且决定因素是候选码,所以
上述关系模式是BCNF.
3.设有函数依赖集 F = { D
→G,C→A,CD→E,A→B},
计算闭包D+,(AC)+,(ACD)+。

解:令X={D},X(0)= D,X(1)= DG,
X(2)=DG,故D+=DG。

令X={AC},X(0)= AC,X(1)=ABC,X(2)=ABC,故(AC)+=ABC。

令X={ACD},X(0)= ACD,
X(1)=ABCD,X(2)=ABCDG,
X(3)=ABCDEG,故(ACD)+=ABCDEG
4.设有关系R和函数依赖F
R(W,X,Y,Z),F = { X→Z,
WX→Y }。

试求下列问题:(1)关系R
属于第几范式?(5分)
(2)如果关系R不属于BCNF,
请将关系R逐步分解为BCNF。

(5分)
要求:写出达到每一级范式的
分解过程,并指明消除什么类
型的函数依赖。

解:R是1NF。

侯选码为WX,
则Y,Z为非主属性,又由于X
→Z,因此F中存在非主属性
对侯选码的部分函数依赖。

将关系分解为:
R1(W,X,Y),F1 = { WX→
Y }
R2(X,Z),F2 = { X→Z }
消除了非主属性对码的部分
函数依赖。

F1和F2中的函数依赖都是非
平凡的,并且决定因素是候选
码,所以上述关系模式是
BCNF。

3.设有关系模式R(U,F),
其中:
U={E,F,G,H},F={E→G,
G→E,F→EG,H→EG,FH→E}
求F的最小依赖集。

解:
⑴将F中右部属性单一化:
(2分)
F1= {E→G,G→E,F→E,F
→G,H→E,H→G,FH→E}
⑵去掉冗余的函数依赖。


于FH→E,由于有F→E,则为
多余的。

F2= {E→G,G→E,F→E,F
→G,H→E,H→G} (2分)
(3) F2中的F→E和F→G,以
及H→E,H→G之一是冗余的,
则: F3= {E→G,G→E,F→G,
H→G}
1、选修了全部课程的学生姓

SLELECT Sname FROM
Student WHERE NOT EXISTS
(SELECT *FROM Course
WHER NOT EXISTS
(SELECT *FROM SC
WHERE Sno=Student.Sno
AND Cno=o));
2、至少选修了学生‘2005’
选修的全部课程的Sno。

SELECT Sno FROM SC SCX
WHERE NOT
EXISTS(SELECT*FROM SC
SCY WHERE
SCY.Sno=’2005’AND NOT
EXISTS(SELECT*FROM SC
SCZ WHERE
SCZ.Sno=SCX.Sno AND
o=o));。

相关文档
最新文档