数据库系统概论练习5

一、填空题(每空1分,共10分)

 

  1. 用户与操作系统之间的数据管理软件称为   DBMS(数据库管理系统)    
  2. 用二维表表示实体类型和实体间关系的数据模型是   关系数据模型         
  3. 关系代数的五种基本查询操作有选择、投影、            、差、笛卡尔积。
  4. 在SELECT语句中使用ORDER BY子句将查询结果排序,其中的    desc        选项表示降序。
  5. 子查询的条件不依赖于父查询,这类查询称为  嵌套子查询或不相关子查询 
  6. 若关系模式R(U,F)中U为全键,则R能够满足的最高范式级别为____3NF_________
  7. 对于函数依赖XY,如果Y包含于X则称XY是  平凡的     的函数依赖。
  8. 在数据库设计中,E—R图是进行___概念模型___设计的主要方法。
  9. 避免活锁的最简单的方法是采用   先来先服务  的策略。
  10. 两段锁协议中,在释放一个封锁以后,规定事务    不能再申请和获取新的封锁  

二、单项选择题(每小题2分,共40分)

 

1. DB , DBMS , DBS 之间的关系是       。 ( C  )

A.DB包括DBMS和DBS B. DBMS包括DB和DBS

C. DBS包括DBMS和DB D. DBS与DBMS,DBS无关

2. 要保证数据库物理数据独立性,需要修改的是       。 (  B )

A.模式 B.模式与内模式的映射

C.模式与外模式的映射 D.内模式

3. 储蓄所有多个储户,储户可以在多家储蓄所存取款,则储户与储蓄所之间是 (  D )

A.一对一的联系 B.一对多得联系

C.多对一的联系 D.多对多的联系

4. 设R为4元关系R(A,B,C,D),S为3元关系S(B,C,D),则R∞S自然连接构成

的结果集是几元关系。    ( D  )

A.4 B.3

C.7 D.6

5.关系代数∏ 对应SQL语句中的哪个子句。 (  A )

A.SELECT B.FROM

C.WHERE D.GROUP BY

6. 实体完整性要求主属性不能取空值,这通常是通过       。 ( C  )

A.定义外键来保证 B.用户自定义完整性来保证

C.定义主键来保证 D.关系系统自动保证

7.若用如下的SQL语句创建一个student表:

    CREATE TABLE student(NO Char(4) NOT NULL,

    NAME Char(8) NOT NULL,

    SEX Char(2),

    AGE Number(2))

可以插入到student表中的是       。    ( B  )

A. (‘1031’, ‘曾华’,男,23) B. (‘1031’,’曾华’,NULL,NULL)

C. (NULL,‘曾华’, ‘男’, ‘23’) D.(‘1031’ , NULL, ‘男’,23)

8. SELECT语句中与HAVING子句同时使用的是哪个子句。    (  C )

A.ORDER BY B.WHERE

C.GROUP BY D.无需配合

9.下列哪种情况不是一个属性列(组)上建立索引的依据。    (  A )

A.该属性列(组)经常需要被更新

B.该属性列经常作为聚集函数的参数

C.该属性列(组)经常在查询条件中出现  

D.该属性列(组)经常在连接条件中出现

10.下列哪项操作可能破坏参照完整性。 ( B  )

A.被参照表插入元组(不影响) B.被参照表修改主码值

C.参照表删除元组(不影响) D.参照表修改主码值(不影响)

解析:

参照表(破坏参照完整性)

被参照表(同理)

其他情况

插入元组(参照表新增了一列,导致被参照表没有所对应的新列。)

删除元组(建立的被参照表被删除一列,造成不符合参照表规则)

都不变

修改外码值(修改参照表本身,破坏参照完整性)

修改主码值(就是修改被参照表本身属性),一般被参照的表参照的就是主码,主码不能动

 

总结:被参照表可以多,但不能少【在参照表不变的情况】,不能动参照的主键列(主码)。

     参照表可以少,但不能多【在被参照表不变的情况】,不能动参照表本身属性(外码)。

   也就是参照表相当于限制条件,在建表(参照表)的基础上,规则可以少。

   同理,在规则已经确定的情况下,必须依照此规则,并且可以多些按照相同规则的属性,但是不能出现某些规则有,但没有符合该规则的属性列。自己慢慢体会,一样的道理!!!

11.关系规范化中的插入异常是指       。  ( C  )

A.不应插入的数据被插入 B.不该删除的数据被删除

C.应该插入的数据不能被插入 D.应该删除的数据未被删除

解析:删除异常的指不该删除的数据被删除。

12. 在关系模式R(A,B,C,D)中,有函数依赖集F={B→C,C→D,D→A},则R最高达到第几范式。   ( B  )

A.1NF B. 2NF

  1. 3NF D. 以上三者都不行

解析:存在传递函数依赖,故最高为2NF

13. 在最小依赖集F中,下面叙述不正确的是       。    (B   )

A.F中每个FD的右部都是单属性

B.F中每个FD的左部都是单属性

C.F中没有冗余的FD

D.F中每个FD的左部没有冗余的属性

解析:最小函数依赖集条件:(1)F中任一函数依赖右部仅含有一个属性

  1. F中不存在这样的函数依赖X->A,使得F与F-{X->A}等价。【无多余函数依赖】
  2. 左部不能再分,无多余属性

14.如果关系R的分解为ρ=(R1,R2),F是R上的一个FD集,那么分解ρ具有无损连接性的充分必要条件是       。    (  A )

(1). (R1∩R2)→(R1-R2) (2). (R1∩R2)→(R2-R1)

(3). (R1∪R2)→(R1-R2) (4). (R1∪R2)→(R2-R1)

供选择的答案:

A. (1)或(2) B. (1)或(3)

C. (3)或(4) D. (2)或(4)

15.数据库系统可能发生的各类故障中,破坏性最大的是       。   ( C  )

A.事务故障 B.系统故障

C.介质故障 D.计算机病毒

16. 对基于检查点的恢复技术,下列说法中错误的是       。  ( A  )

A. 无论事务在检查点之前还是之后提交,都需执行REDO操作

B. 检查点技术可以提高恢复效率

C. 检查点可以定期建立

D. 能最大限度的减少恢复数据库时根据日志记录所需执行的恢复操作

17.保护数据库,防止未经授权或不合法的使用造成的数据泄漏、非法更改或破坏。这是指数据的       。   (  A )

A. 安全性 B.完整性

C.并发控制 D.恢复

18.在DB恢复时,对已经提交但更新未写入磁盘的事务执行       。   (  B )

A.UNDO处理 B.REDO处理

C.ROLLBACK处理 D.ABORT处理

19. 设有两个事务T1和T2,它们的并发操作如图所示。对于这个并发操作,下列评价正确的是       。   ( A  )

 

T1

T2

读A=10

 

 

读A=10

A=A-5写回

 

 

A=A-8写回

A、该操作丢失了更新 B、该操作不能重复读

C、该操作读脏数据 D、该操作不存在问题

20. 若事务T对数据R已加X锁,则其他事务对数据R       。  ( D  )

A.可以加S锁不能加X锁 B.不能加S锁可以加X锁

C.可以加S锁也可以加X锁 D.不能加任何锁

三、简答题(每小题5分,共10分)

 

1.简单描述连接查询的排序合并算法(sort-merge)。

答:首先按连接属性对表1和表2排序

对表1的第一个元组,从头开始扫描表2,顺序查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。当遇到表2中第一条大于表1连接字段值的元组时,对表2的查询不再继续

找到表1的第二条元组,然后从刚才的中断点处继续顺序扫描表2,查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。直到遇到表2中大于表1连接字段值的元组时,对表2的查询不再继续

重复上述操作,直到表1或表2中的全部元组都处理完毕为止

  1. 什么是事务?什么是事务的ACID属性?

一个数据库操作序列,是数据库应用程序的基本逻辑单元。 这些操作要么都做,要么都不做,是一个不可分割的执行单位。

原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)

四、应用题(每小题3分,共21分)

 

对于供应商--零件--工程的四个基本表

供应商:    S (s#,sname,status,city)  /*代码,姓名,状态,供应商所在城市*/

零件表:     P (p#,pname,color,weight,city)  /*零件代码,零件名,颜色,重量,零件商所在的城市*/

工程项目表: J (j#,jname,city)  /*项目代码,项目名,项目所在的城市*/

供应情况表: SPJ (s#,p#,j#,qty)  /*供应商代码,零件代码,工程项目代码,供应数量(表示某供应商  供应某种零件  给某工程项目的数量为QTY)*/

试用关系代数表达下列查询

(1)求由’S1’ 供应的工程名称。

(2)没有使用’天津’供应商生产的’红’色零件的工程号J#。

解:(1)s#=S1,求jname。(先从SPJ表中选出供应商代码为s1,然后要求的是jname,jnanme在工程项目表中,需要将两表进行连接,并选出jname的投影)

∏JNAME (σ S#=’S1’ (SPJ∞J));

(2)答案采取的思路是用

∏J#(J)-J#(∏S#(σCITY = “天津”)(S)) ∞∏S#,P#,J#(SPJ) ∞ ∏P#(σCOLOR=“红”)(P)))

J#(J)-J#(σCITY = “天津”^COLOR=“红”(P∞SSPJ));

  1. ∏S#(σCITY = “天津”)(S) 是从S表中选取city=天津,并根据s#供应商代码进行投影。意思就是选出天津供应商的代码。
  2. ∏S#,P#,J#(SPJ) 是从SPJ表中投影出S#,P#,J#项,意思就是为了方便将供应商表和零件表和工程项目表三个表联立,并为以后选出符合要求的条件提供前提。
  3. ∏P#(σCOLOR=“红”)(P)) 是从P表中找到颜色为红色的零件代码,先选择,后投影。

将(1)(2)(3)三个部分的部分的语句进行连接,并一起投影出J#。选出了使用

  1. 天津供应商,红色零件,同时瞒住的工程号J#。最后用再J表中所有的J#项目代码减去不满足条件的工程号,剩下的就是满足题意的工程号J#。

 

试用SQL语句表达下列操作

(3)查询供应商,零件和工程在同一个城市的所有的供应商号,零件号,项目号。

(4)找出工程项目’J2’使用的各种零件的名称及其总数量。

(5)统计所有项目中供应零件’P1’总数量最大的供应商号。

(6)根据关系代数:∏j#(∏p#(σpname=’TV’(P))∞SPJ)写出SQL语句。

(7)根据S表建立一个视图,要求有s#,sname,city三个属性,并且供应商有供应零件。

(3)SELECT S.S#, P.P#, J.J# FROM   S, P, J

WHERE  ( S.CITY = P.CITY AND P.CITY = J.CITY )

(4)SELECT  PNAME , sum(QTY )

FROM  P ,SPJ

WHERE  SPJ.J# = ‘J2’   AND SPJ.P# = P.P#

GROUP BY  P.PNAME

  1. Select S# from spj where p#=’p1’ group by s# having sum(qty)=(SELECT max(sum_qty) FROM ( SELECT S# ,sum (QTY ) sum_qty from spj where p#=’p1’group by s#) );

①SELECT S# ,sum (QTY ) sum_qty from spj where p#=’p1’group by s#;

【查询供应商代码,最大供应数量,从spj表中,条件是零件代码是p1,并且按照供应商代码分类】

剩下的还是套娃:②从第一步的查询结果中找到最大供应数量并将其赋值给sum(qty)聚集函数。第一步就是做了个分类。。。。

(6)Select  disctinct j#  from p,spj  where p.p#=spj.p# and pname=’TV’;

(7)Create view sp As   Select s#,sname,city from s where s# in  (select s# from SPJ)

五、综合题(共9分)

 

关系R(A,B,C,D,E,P,G,H,I,J)满足下列函数依赖:F={AB→E, ABE→GP, B→PI,C→J,CJ→I,G→H}

(1)该函数依赖集是最小函数依赖集吗?若不是,将其化为最小函数依赖集。(6分)

(2)给出该关系的候选码,并说明R属于几范式。(3分)

解:(1)F不是最小函数依赖集。最小函数依赖集Fm={AB→E,AB→G,B→P,B→I,C→J,C→I,G→H}

详细步骤:①对于AB->E, B->PI [ABPI],AB的闭包不能确定E,所以AB->E不多余

②ABE→GP, 先对其进行分解,ABE->G,ABE->P,然后我们知道E是多余的,然后得到AB->G,AB->P。然后判断AB->G,发现不是多余的,故保留。然后看AB->P,我们可以看到B->P,B->I,可以看出A是多余的,故为B->P保留。

③B->P,B->I,已经有B->P,只需看B->I,发现B的闭包确定不了I,故B->I不多余。

④C→J,C的闭包确定不了J,故C→J保留。

⑤CJ→I,已知C→J,那么J多余,判断C→I是否多余,C的闭包确定不了I,故C→I保留。

⑥G→H,G的闭包确定不了H,故G→H保留。

综上所述,最小函数依赖集Fm={AB→E,AB→G,B→P,B→I,C→J,C→I,G→H}

(2)候选码为ABC,并且R∈1NF

六、数据库设计题(共10分)

 

设某汽车运输公司数据库中有三个实体集.一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。

设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有个聘用期属性;车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在“使用”联系,司机使用车辆有使用日期和公里数两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。

  1. 请画出该运输公司管理系统的E-R图。(5分)
  2. 设计出满足3NF的关系模式集。(5分)

解:(1)矩形代表实体,椭圆代表属性,菱形框代表关系。

分析:三个实体:车队,车辆,司机

属性:【车队的属性】车队号、车队名,【车辆】牌照号、厂家、出厂日期,【司机】司机编号、姓名、电话。

关系:车队--》聘用--》司机,1对多的关系【司机拥有聘用期属性】。车队和车辆是1对多的关系,并且车队拥有车辆。司机和汽车是多对多,是使用与被使用关系使用车辆

有使用日期和公里数两个属性。

(2)

关系模式:

车队(车队员,车队名)

司机(司机编号,姓名,电话,聘用期,车队号)

车辆(牌照号,厂家,出厂日期,车队号)

使用(司机编号,牌照号,使用日期,公里数)

猜你喜欢

转载自blog.csdn.net/mez_Blog/article/details/112294551