2016数据库考试题

一 填空题

1.1

数据库的本质特征:永久存储有组织可共享

数据库的目标特征:较小的冗余度,较高的独立性,较好的扩展性

1.2

数据库管理系统提供的主要功能有:数据定义功能(DDL)数据操纵功能(DML)数据控制功能(DCL)

计算机数据管理技术主要经历了:人工管理阶段文件管理阶段数据库管理阶段

1.3

数据模型三要素是:数据结构数据操作数据的完整性规则

常用的数据类型有:层次模型网状模型关系模型

1.4

数据库的三级模式是指:模式(逻辑模式)外模式(子模式)内模式(物理模式、存储模式)

数据库的二级映像:模式到外模式的映像内模式到模式的映象

1.5

关系的操作语言有:关系代数SQL关系演算

关系的完整性包括:实体完整性参照完整性用户自定义完整性

1.6

关系代数中传统的集合运算包括:并、交、差、积

关系代数中专门的关系运算包括:选择、投影、连接、除

1.7

两个实体之间的联系类型有:一对一一对多多对多

封锁的类型有:排他锁(X锁)共享锁(S锁)

意向锁的种类有:意向共享锁(IS)意向排他锁(IX)共享意向排他锁(SIX)

1.8

数据依赖的类型有:函数依赖多值依赖连接依赖

“不好”的关系模式存在的主要问题包括:插入异常删除异常较大的冗余

1.9

在E-R图设计时,常用的三种抽象是:分类概括聚集

E-R图合并时,常见的三种冲突是:属性冲突命名冲突结构冲突

1.10

数据库的存储控制包括:自助存储控制强制存储控制

数据库的SQL语言中,授予权限的命令是:grant;回收权限的命令是:revoke

二 判断题

2.1

超码一定是候选码。(×)

候选码一定是超码  (√)

2.2

数据库中尽量减少冗余。(√)

数据库中消除一切数据冗余。(×)

2.3

关系的元祖具有顺序无关性。(√)

关系的列具有顺序无关性。(√)

2.4

模式是关系的集合。(×)

关系数据库是关系的集合。(√)

2.5

若X→→Y在U上成立,则在W(XYWU)上一定成立;(√)

若X→→Y在U上成立,则在W(XYUW)上一定成立。(×)

2.6

属性3NF的关系模式必属于BCNF。(×)

属性BCNF的关系模式必属于3NF。(√)

2.7

全码的1NF一定是BCNF。(√)

单码的1NF一定是2NF。(√)

2.8

基本的关系运算是:并、差、积、选择、投影。(√)

基本的关系运算是:并、交、积、选择、投影。(×)

2.9

数据库系统就是数据库管理系统。(×)

数据库管理系统就数据库系统。(×)

2.10

冲突可串行化调度一定是可串行化调度。(√)

可串行化调度一定是冲突可串行化调度。(×)

遵守两端锁协议的调度一定是可串行化调度。(√)

可串行化调度一定是遵守两端锁协议。(×)

一 选择题

3.1

网状模型的数据结构是(B)

层次模型的数据结构是(A)

A.树    B.图    C.栈    D.堆

3.2  

 E-R图中,表示实体型的图形是(A)

 E-R图中,表示属性的图形是(C)

A.矩形    B.棱形    C.椭圆形    D.直线

3.3

关系模式R(U,D,dom,F),表示属性集合的是(A)

关系模式R(U,D,dom,F),表示属性集合的是(D)

A.U    B.D   C.dom    D.F

3.4

2NF是在1NF的基础上,消除了非主属性对码的(A)

3NF是在2NF的基础上,消除了非主属性对码的(B)

A.部分函数依赖   B.传递函数依赖   C.多值依赖    D.连接依赖

3.5 

表属于数据库三级模式中的(A)

视图属于数据库三级模式中的(D)

A.模式    B.物理模式    C.内模式    D.外模式

3.6

关系是一张二维表,其中一行在某一列上的值对应的概念是(A)

关系是一张二维表,其中一行对应的概念是(C)

A.分量   B.属性    C.元祖    D.关系

3.7

如果事物T1对数据对象D施加了共享锁S,则事物T1对D可进行的操作有(A)

如果事物T2对数据对象D施加了排他锁X,则事物T2对D可进行的操作有(D)

A.只能读不能写    B.只能写不能读    C.可读可写    D.不能读和写

3.8

下列关键字打头的语句,不属于DML的是(A)

下列关键字打头的语句,属于DDL的是(A)

A.CREATE    B.INSERT   C.DELETE    D.UPDATE

3.9

数据库物理结构设计的成果是(C)

数据库概念结构设计的成果是(D)

A.数据模型    B.逻辑模型    C.物理模型   D.概念模型

3.10

关系数据库的代数优化中,应尽早执行(B)

A.笛卡尔积    B.选择    C.投影    D.连接

在关系数据库中,null表示(A)

A.不确定    B.空字符串    C.空格    D.0

B. 

四 简答题

4.1

1 简述实体完整性规则和参照完整性规则。

答:

实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A 不能取空值(null value)。所谓空值就是“不知道”或“不存在”或“无意义”的值。

参照完整性规则:若属性A(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应(基本关系R和S不一定是不同的关系),则对于R中每个元祖在F上的值必须:或者取空值(F的每个属性值均为空值);或者等于S中某个元祖的主码值。

2 简述数据的逻辑独立性和物理独立性

答:

逻辑独立性:当模式改变时,由数据库管理员对各个模式/模式的映像作相应改变,可以是外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

物理独立性:当数据库的存储结构改变时,由数据库管理员对模式/内模式的映像作相应改变,可以是模式保持不变,从而应用程序不必修改,保证了数据与程序的物理独立性,简称数据的物理独立性。

4.2

1 简述数据库安全控制的常用方法

答:

(1)用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
(2)存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。
(3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
(4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
(5)数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据

2 简述视图的作用

答:

(1)简化了用户操作。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。

(2)有利于数据保密。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。

(3)提高数据逻辑独立性。视图可帮助用户屏蔽真实表结构变化带来的影响。

4.3

1简述数据库管理系统完整性控制方法

答:(1)用户定义完整性约束(2)完整性检测 (3)违约处理

2 简述数据库系统的安全性控制和完整性控制的区别

答:

(1)数据库系统的完整性控制是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据

(2)数据库系统的安全性控制是为了防止非法用户恶意破坏和非法存取和合法用户的非法操作(超权操作)

4.4

1 简述数据库管理系统对数据查询的基本过程

答:DBMS对查询的处理过程分为4个阶段:查询分析查询检查查询优化查询执行

2 简述数据库管理系统对链接查询操作的实现方法

答:(1)循环连接方法 (2)排序连接方法(3)索引连接方法(4)哈希连接方法

4.5

1 简述事务的概念及事务的特性

答:事务的概念:事务是用户定义的一个数据操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。

2 事务的特性:原子性、一致性、隔离性、持续性。

A:原子性(Atomicity)

       事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。

B:一致性(Consistency)

       事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。

C:隔离性(Isolation)

      一个事务的执行不能被其他事务干扰。

D:持续性/永久性(Durability)

      一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

3 简述数据库系统发生故障的种类

答:(1)事务故障(2)系统故障(3)介质故障

4.6

1 简述日志文件的内容,说明在数据库的恢复中如何根据日志文件进行READ和UNDO?

答:

日志登记内容:(1)事务的开始标记(2)事务的结束标记(3)事务的更新操作。

日志记录内容:(1)事务标识(2)操作的类型(3)操作对象(4)更新前数据的旧值(5)更新后数据的新值。

UNDO:正向扫描日志文件,找出没有事务结束标志的事务,对日志记录的更新操作进行反向逆操作

READ:正向扫描日志文件,找出既有开始标记又有结束标志的事务,然后根据日志文件顺序重做该事务

4.7

1 简述并发操作可能导致的数据不一致情形

答:

(1)丢失修改:两个事物T1和T2读入统一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。

(2)不可重复读:是指事物T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。

(3)读“脏”数据:指事务T1修改某一数据并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1修改过的数据恢复原值,T2读到的数据与数据库中的数据不一致。

2 封锁协议:一级封锁协议二级封锁协议三级封锁协议

一级封锁协议:防止丢失数据,并保证事物T是可恢复的

二级封锁协议:防止丢失数据、防止读“脏”数据

三级封锁协议:防止丢失数据、防止读“脏”数据,防止重复读

3 简述封锁类型与并发度、系统开销的关系,并说明理由

封锁的粒度越大,并发度越小,系统开销也越小;

封锁的粒度越小,并发度越大,系统的开销也越大。

如果封锁粒度是比较小,减少事务的等待时间从而提高了并发度,但是粒度小事务需要加锁的东西就增多系统用于并发控制的开销加大。反之如果封锁粒度是比较大并发度就较小系统开销就小。

4.8

简述死锁的原因、死锁的预防方法、死锁的检测方法

答:

1 原因:如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁;接着T2又请求封锁R1,因T1已封锁了R1,T2也只能等待T1释放R1上的锁。这样就出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成死锁。

2 预防方法:

(1)一次性封锁法:要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。

(2)顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实施封锁。

3 死锁的检测方法:

(1)超时法:如果一个事务的等待时间超过了规定的期限,就认为发生了死锁。

(2)等待图法:事务等待图是一个有向图G=(T,U),T为节点的集合,每个节点表示正在运行的事务,U为边的集合,每条边表示事务等待的情况。

五 应用题

现有关系如下

学生:student(sno,sname,sage)

Sno学号,sname姓名,sage年龄

课程:course(cno,cname)

Cno课号,cname课名

学习:study(sno,cno,grade)

Sno学号,Cno课号,grade成绩

要求:

1-2小题用关系代数表达式实现;

3-10小题用SQL实现

1 查询所有学生的姓名和年龄

答:psname,sage (student)

2 查询年龄小于20岁学生学号,姓名,年龄。

答:psno,sname,sage( ssage<20(student) )

3 查询所有性’李’的学生姓名。

select sname

from student

where sname  like  '李%'

4查询每门课程的平均成绩。

select ave(grade)

from study

group by  cno

查询每个学生的平均成绩。

select ave(grade)

from study

group by  sno

5 查询大于所有学生平均年龄的学生数。

select count(*)  from student

where sage  > ( select  ave (age) from  student )

6 查询所有学生学号,姓名,课号,成绩,

(包括没有学习任何课程的学生)

select S.sno ,S.sname ,D.cno , D.grade

from student S  left outer join  study D

where S.sno=D.sno

查询所有课程的课号,课名,学号,成绩,

(包括没有被任何学生学习的课程)

select C.cno ,C.cname ,D.sno , D.grade

from course C  left outer join  study D

where S.cno=D.cno

7查询学生成绩单:包括学号,姓名,课号,成绩。

select S.sno,S.sname,C.cno,C.cname,D.grade

where student S, course C ,study D

where S.sno=D.sno and C.cno=D.cno

8插入学生记录(’S2’,‘廖明’,22)到student表中

insert into student(sno,sname,sage)

values(’S2’,‘廖明’,22)

9

修改课号为“C2”的课程名为“数据库原理”

update course

set cname  =‘数据库原理’

where cno =  ‘C2’

10

删除序号为‘S2’课号为‘C2’的学习记录。

delete  from  study

where sno=‘S2’  and cno=’C2’

六  计算题

概念:

例:设有关系模式R(U,F),其中U={A,B,C,D,E};

F={AB→C,B→D,C→E,EC→B,AC→B}。

求(AB)F

第一步:设X(0)=AB;

第二步:在函数依赖集中找AB的子集(AB,A,B)的函数依赖,有

AB→C,B→D。形成集合CD

第三步:X(1)=AB∪CD=ABCD

第四步:X(1)≠ X(0)且X(1)≠U。转第二步

第二步:在函数依赖集中找出ABCD的子集的函数依赖,有C→E,

AC→B。形成集合BE

第三步:X(2)=ABCD∪BE=ABCDE

第四步:X(2)≠ X(1)但X(2)=U(终止于等于U)。于是(AB)F=ABCDE。

 

求Fmin

①利用分解规则,把右端多属性(n个)的函数依赖变成左端不变的n个函数依赖。(分解规则)

②对于F中每个X→A,设G=F-{X→A}。如果AÎXG,则将X→A从F中删除,否则保留。

③对于F中每个左边包含多属性的X→A,选择X的每个真子集Z,如果AÎZF,则用Z→A代替X→A。(因为F与(F-{X→A})∪{Z→A}等价的充要条件是AÎZF)

极小函数依赖集Fmin不是唯一的,与处理顺序有关。

(一) 设有关系模式,求Fmin,写出详细步骤。

.R(U,F),U={A,B,C,D},F={AB→CD,C→A,A→D,D→B};

解:

U={A,B,C,D},F={AB→CD,C→A,A→D,D→B}

①分解

G={AB→C,AB→D,C→A,A→D,D→B}

②计算

G={        AB→D,C→A,A→D,D→B} ={ABD}  无C保留

G={ AB→C,        C→A,A→D,D→B} ={ABCD} 有D去掉

G={ AB→C,             A→D,D→B}           无A保留

G={ AB→C,        C→A,     D→B }           无D保留

G={ AB→C,        C→A, A→D,    }          无B保留

F={ AB→C,C→A, A→D, D→B}

③拆分:

对于A→C:G={     ,C→A, A→D, D→B}   AG ={A,B,C,D}  

对于B→C:  G={    ,C→A, A→D, D→B}   BG =F

所以 Fmin={ A→C,C→A, A→D, D→B}

(二) 求关系R的码

概念:

求码的算法。

第1步:求Fmin

第2步:将属性集U中的属性划分为3类:

UL类:仅出现在F中的函数依赖左部的属性。

   UL=左部属性集-右部属性集

UR类:仅出现在F中的函数依赖右部的属性。

   UR=右部属性集-左部属性集

UB类:均出现或均未出现在函数依赖左部和右部的属性。  UB=U-UL-UR

第3步:若UL¹FÙ (UL)F=U,则UL为R的唯一码,算法终止。若(UL)F¹U,转第4步;若UL=F转第5步。

第4步:若UB¹F,UL依次与UB中属性或属性组组合后,根据码的定义求出所有码,算法终止。

第5步:若UB¹F,根据码的定义求出UB中属性或属性组的所有码,算法终止

题目:

(1)R(U,F) ,U={A,B,C,D}  Fmin={ A→B,A→D, B→C }

解:

第一步:求:Fmin={ A→B,A→D, B→C }

第二步:

UL ={A}     UR ={D,C}    UB ={B}

第三步:

(UL)F ={A,B,C,D } =U

所以R有唯一的码 A

(2)R(U,F) ,U={A,B,C,D}  Fmin={ D→B,B→D, AC→D }

第一步:求:Fmin={ D→B,B→D, AC→D }

第二步:

UL ={A,C}     UR= FUB ={B,D}

第三步:

(UL)F ={A,B,C,D } =U

所以R有唯一的码 AC

(三)范式判断

概念:

1NF:规定了一个关系中的属性值(分量)必须是"原子"

2NF:消除了非主属性对码的部分函数依赖

3NF:在2NF的基础上消除了非主码属性对码的传递函数依赖

BCNF:在3NF的基础上,BCNF消除了主属性对不含它码的部分函数依赖和传递函数依赖(判断标准是每一个决定因素都含码

题目:

1    R(U,F) U={A,B,C,D}  F={ D→B,B→D, AC→D } 

码为AC

解:

(1)每一个属性都是“原子”的所以是  1NF

(2)非主属性有B,D 所以其对主码没有部分函数依赖所以是2NF

(3)AC→D  D→B  所以B传递函数依赖与AC所以不是3NF

所以R是二范式:

(四)模式分解

概念:

第一步:

构造一个k行n列的表,每行对应一个模式Ri(Ui)(i=1,2, …,k)的属性集合。每列对应一个属性Aj(j=1,2, …,n),如果Aj在Ui中,那么在表格的第i行第j列处添上记号aj(j为列号),否则添上记号bij(i为行号)。

第二步:

取F中每一个函数依赖X→Y,找出表中在X分量上相等的行,修改这些行Y分量上的值,使这些行在Y分量上的值相等。修改分为两种情况:

①如果这些行的Y分量中有一个是aj,全部修改成aj;

②如果这些行的Y分量中没有aj,全部修改成标号较小的bij。

第三步:

修改结束后的表格中若有一行全是a,即a1,a2,…,an,则ρ相对于F是无损连接分解,否则不是无损连接分解。

题目:

R(U,F)      U={A,B,C,D,E}  Fmin=F={AB→C,C→D, D→E }

ρ={ABC,CD,DE}

解:

第一步:

 

A

B

C

D

E

A,B,C

a1

a2

a3

b14

b15

C,D

b21

b22

a3

a4

b25

D,E

b31

b32

b33

a4

a5

第二步:

(1) AB→C (A,B列没有同时相等的值所以表不变)

 

A

B

C

D

E

A,B,C

a1

a2

a3

b14

b15

C,D

b21

b22

a3

a4

b25

D,E

b31

b32

b33

a4

a5

(2) C→D

 

A

B

C

D

E

A,B,C

a1

a2

a3

b14 [a4]

b15

C,D

b21

b22

a3

a4

b25

D,E

b31

b32

b33

a4

a5

(3) D→E

 

A

B

C

D

E

A,B,C

a1

a2

a3

a4

b15[a5]

C,D

b21

b22

a3

a4

b25[a5]

D,E

b31

b32

b33

a4

a5

第三步:判断(第二部最后得到的表如下)

 

A

B

C

D

E

A,B,C

a1

a2

a3

a4

a5

C,D

b21

b22

a3

a4

a5

D,E

b31

b32

b33

a4

a5

由于第一行都是a所以模式R(U)的分解ρ是无损连接的分解。

第七题:设计题:

概念:

(1)E-R图

实体:用矩形框表示   联系:用菱形表示

属性:用椭圆形表示

(2)ER模型转换为关系模式的方法如下:

(1)一个实体转换为一个关系模式,实体的属性转换为关系的属性,实体的码转换为关系的码。

(2)实体间的联系根据联系的类型:

①1:n的联系

1:n的联系合并到n端对应的关系模式中,将1端的码添加在n属性中,并作为外码。

②1:1的联系

1:1联系与某个1端的关系模式合并,并在该关系模式中增加另一个实体的码(作为外码)以及联系本身的属性。

③m:n的联系

通过引进一个新关系模式表达两个实体间多对多的联系,新关系模式的码由联系两端实体的码组合而成,同时增加相关的联系属性

题目:

(一) 根据描述画出E-R图,标明实体及其属性,联系及其联系类型和属性;

(二)将E-R图转化为模式(注意联系的转化)并用下划线指出每个关系模式的主键

设有教研室,教师,课程,三个实体集,

教研室有教研室名,地址等属性。

教师有姓名,性别,年龄等属性

课程有课名,学分等属性。

每个教研室有若干教师,每个教师只能有一个教研室

每个教研室可以“开课“若干课程,每一门课只能在一个教研室开课

每一个教师可“讲授”多门课程每一个课程课由多个老师讲授老师讲授课程有学期属性。

解:

(1)E-R图:


                       1              N

             1                                    N

                      N               M

 

(2) 模式设计

教研室(教研室编号,名字,地址)

教师(教师号, 姓名, 性别, 年龄,教研室编号

课程(课号, 课名, 学分,教研室编号

教学(教师号 ,课号 , 学期)

原文地址:https://www.cnblogs.com/sdksdk0/p/5585083.html