数据库系统概论练习2

此文转载自:https://blog.csdn.net/mez_Blog/article/details/112292196#commentBox

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

 

  1. 数据模型的三要素包括:数据结构、 数据操纵 、完整性约束。
  2. 数据库系统的三级模式和二级映像中外模式/模式映像 保证了数据与程序的逻辑独立性。
  3. 概念模型是对信息世界的建模,其表示方法我们常使用   E-R 图来描述。
  4. 关系代数的五种基本查询操作有选择、投影、并、差、 笛卡尔积
  5. 写出实现“ 赋权用户 U1 对学生表(STUD) 的查询权” 这一功能的 SQL 语句:Grant select on table STUD to U1;
  6. SQL 中创建数据库对象使用 create 关键字删除数据库对象使用 drop 关键字
  7. 在基于日志的数据库数据恢复技术中, 对发生故障时没有完成的事务应执行Undo 操作。
  8. 查询优化有多种方法,按照优化的层次可以分为 代数优化 和物理优化。
  9. 两段锁协议中,在释放一个封锁以后,规定事务 不再申请和获得任何其他封锁
  10. 在 2NF 的基础上,消除了 传递函数依赖 以后的关系模式,属于 3NF。

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

  1. 数据库系统中  是数据库全体数据的逻辑结构和特征的描述 (B )

          A.内模式 B. 模式 C. 外模式 D.视图

2.关于 E-R 方法中的联系,下列说法正确的是(A )

①联系必须有命名

②多个实体间也可以有联系

③单个实体间也可以有联系

④联系也可以有属性

A.①②③④ B. ①③④ C. ①②③ D. ②③④

3.在数据库物理设计阶段,建立索引的目的是为了提高数据的(C )

更改效率 B. 插入效率 C. 查询效率 D. 删除效率

4.设关系 R、S、W 各有 10 个元组,那么这 3 关系的自然联接的元组个数为多少(D)

A. 10 B. 30 C.1000 D.不确定

5.一个 M 行 N 列的关系,和一个 K 行 L 列的关系进行笛卡尔积,生成目标关系的列数为

( D)

A.M*K B.M+K C.N*L D.N+L

6.在关系数据库中,NULL 是一个特殊值,在很多数据操作中都需要对 NULL 进行特殊处理。关于 NULL,下列说法正确的是   ( B  )

A.判断元组的某一列是否为 NULL 一般使用“=NULL”

B.NULL 在数据库中表示尚不确定的值

C.对数值型数据,NULL 等价于 0

D.NULL 只适用于字符和数值类型

7.在视图上不能完成的操作是(D )

A.在视图上定义新的视图

B. 查询操作

C.更新操作

D. 在视图上定义新的基本表

8.SQL 查询中  谓词后面只能引出子查询(B )

A.[NOT] IN B.[NOT] EXISTS

C.[NOT]BETWEEN AND D.比较运算符

9.当关系 R(左)和 S(右)自然连接时,能够把 S 中原该舍弃的元组保留到结果关系中的操作是(B )

A.左外连接 B.右外连接 C.外部并 D.外连接

10.违反参照完整性时的系统处理方法,不包括 (C )

A. 拒绝执行 B. 级联操作 C. 系统自动修正 D. 设置为空

11.在数据库设计中,将 E-R 图转换成关系数据模型的过程属于(B )

A.需求分析阶段 B.逻辑设计阶段

C.概念设计阶段 D.物理设计阶段

12.E-R 图向关系模型转换原则中,一个 M:N 的联系(A)

A.转换为一个独立的关系模式 B. 与 M 端对应的实体关系模式合并

C.与 N 端对应的实体关系模式合并 D. 与任意一端实体关系模式合并

13. 在 ARMSTRONG 公理系统中,下列结论错误的是(C )

A.若 A→B, B→C 则 A→C

B.若 A→B, A→C 则 A→(B,C)

C.若 B→A, C→A 则(B,C)→A

D.若(B,C)→A 则 B→A, C→A

14.任给关系 R<U>,X 和 Y 是 U 的子集,若 X 既不函数决定 Y,又不函数依赖于 Y,则 X 与Y 间的联系为(D )     

A.1:1 B.1:N C.N:1 D.M:N

15.关于函数依赖,以下说法错误的是(C)

A.平凡的函数依赖不反映语义信息

B.函数依赖具有传递性

C.函数依赖的决定部分一定要包含有码

D.关系的码可以函数决定关系的每一个属性

16.若关系 R 的候选键都是由单属性构成的,则 R 至少应为(B ).

A.1NF B. 2NF C. 3NF D. BCNF

17.事务的多个性质,其中不包括(B )

A.一致性 B.唯一性 C 原子性 D.隔离性

              解析:ACID(原子性,一致性,隔离性,持久性)。

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

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

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

C.检查点可以定期建立

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

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

T1

T2

读 A=10

读 A=10

A=A-5 写回

A=A-8 写回

A、该操作丢失了更新 B、该操作不能重复读C、该操作读脏数据 D、该操作不存在问题

20.并发事务的调度时,以下说法正确的是(B )

A.  调度是可串行化的,则是正确调度

B.  2PL 隐含预防死锁的一次封锁法

C.  一个可串行化的调度一定不会产生死锁

D.  死锁可以通过“先来先服务”解决

 解析:D.避免活锁使用先来先服务算法。

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

 

1、简要描述查询处理中实现连接操作的嵌套循环算法(nested loop)。

            

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

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

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

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

 

2、什么是活锁?什么是死锁?在事务调度中,如何预防和解决死锁?

        如果事务T 1 封锁了数据R事务T 2 又请求封锁R于是T 2 等待。T 3 也请求封锁R当T 1 释放了R上的封锁之后系统首先批准了T 3 的请求T 2 仍然等待。然后T 4 又请求封锁R当T 3 释放了R上的封锁之后系统又批准了T 4 的请求……T 2 有可能永远等待这就是活锁的情形.

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

        采用一次封锁法和顺序封锁法预防死锁。

        采用超时法和等待图法来解决死锁  

          

四、应用题(共 20 分)

 

设有如下图书借阅关系模式:

图书:Book(bno, bname, author, publisher, price, stocks)/*图书编号,图书名,作者,出版商,单价,库存*/

读者:Reader(rno, rname, address)/*读者编号,读者名,住址*/

借阅:Borrow(bno, rno, b_date , r_date, flag)/*图书编号,读者编号,借期,还期,还书标志{1.已还,0.未还}*/

  1. 用关系代数表达式实现以下题目:
    1. 检索读者’ 李林’ 所借图书中未还的书名。(2 分)
    2. 检索借阅了包含读者 ’李林’ 所有借阅图书的读者姓名。(2 分)

              Flag=0,rname=’李林’

  1. πbname(σFlag=0rname=’李林’ (BorrowReaderBook

      2.  πrnamerno(BorrowReader)÷ πrno(σrname=‘李林‘ (Reader))

2.使用 SQL 语言实现如下题目:

  1. 检索借阅图书号为 ’B5’ 的所有读者姓名。(2 分)

 

                     Bno=’B5’(Book),rname(Reader)

 

          Select rname from Book,Reader,Borrow where Book.bno=Borrow.bno and

Reader.rno=Borrow.rno and Borrow.bno=’B5’;

2.使用 SQL 语言实现如下题目:

(1)检索借阅图书号为 ’B5’ 的所有读者姓名。(2 分)

 

                     Bno=’B5’(Book),rname(Reader)

 

          Select rname from Book,Reader,Borrow where Book.bno=Borrow.bno and

Reader.rno=Borrow.rno and Borrow.bno=’B5’;

(2)检索读者’ 李林’ 所借图书中未还的书名。(2 分)

(3)建立有未还图书的读者姓名和地址的视图。(2 分)

  (2)rname=’李林’,flag=0

  Select bname from Book,Reader,Borrow where Book.bno=Brrow.bno and

Reader.rno=Borrow.rno and Borrow.flag=0 and rname=’李林’;

(3)create view view1(rname,address) as select rname,address from Reader,Borrow

where  Reader.rno=Borrow.rno and Borrow.flag=0 ;

五、综合题(每小题 10 分,共 10 分)

4.对于查询:找出 ‘2012-01-01’日前 到期还书的图书名和读者名。

(1)用 SQL 语句实现此查询。(2 分)

(2)将上面问题转化为关系代数表达式(操作限定为关系代数的 5 种基本运算)。(2 分)

(3)画出上面关系代数表达式的语法树。(3 分)

(4)使用代数优化,画出优化后的语法树。(3 分)

答:

(1)r_data>20120101,flag=0,查询结果为图书名(bname)和读者名(rname)

Select bname,rname from Book,Reader,Borrow where Book.bno=Borrow.bno and Reader.rno=Borrow.rno and r_data>20120101 and flag=0;

(2)πbname,rname(σFlag=0r_data>’20120101’ (BorrowReaderBook))

 

(3)主要是了解一下关系代数表达式语法树即可,一般用到语法树就是5种关系代数之间的复合了。了解即可

五、综合题(每小题 10 分,共 10 分)

设有关系模式R<U,F> 其中 U=(A,B,C,D,E,P),定义在其上的函数依赖为 F={CE→B,A→B,C→D,E→A,CE→P},

(1)求(CE)关于函数依赖集 F 的闭包。(3 分)

          解:X0=CE C->D E->A CE->P CE->B X1=CEDAPB 因为X1已经等于全部属性的集合,所以(CE)^(+)F=ABCDEP

(2)说明 CE 应该具有什么性质。(2 分)

                   CE是关系模式中的码

(3)判断CE→B 是否是多余的函数依赖关系?如果是,请证明 F-{CE→B}逻辑蕴含 CE→B。(5 分)

                 答:CE->B是多余的函数依赖关系。证明:设u,v为R中任意两个元祖:若去掉CE->B,则有u[CE]=v[CE],且u[B]=v[B],而且E->A,A->B,E->B,CE->B,即u[CE]=v[CE],u[B]=v[B],满足题意。故F-{CE→B}逻辑蕴含 CE→B。

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

 

设有高校选课系统,需要对学校的系信息、教师信息、课程信息、学生信息、学生选课信息进行管理。已知系(DEPT)信息包括系编号(DeptNO)、系名称(DeptName),教师

(Teacher)信息包括教师号(TNO)、教师名(Tname),课程(Course)信息包括课程号

(CNO)、课程名(CName)、课程学分(Credit),学生(Student)信息包括学号(SNO)、学生姓名(Sname)、学生性别(Sex)。

选课系统的管理规则如下:

Ⅰ、一个系可聘用多名教师,一个教师只受聘于一个系; Ⅱ、一个系可有多名学生,一个学生只属于一个系;

Ⅲ、一名教师可讲授多门课程,一门课程可被多个教师讲授;

 Ⅳ、一名学生可选修多门课程,一门课程可被多名学生选修; Ⅴ、学生选修完课程后,可获得相应课程的成绩。

针对以上描述,完成下列设计内容:  

  1. 构建选修课系统的 ER 图。(5 分)
  2. 根据所构建的 ER 图,设计满足 3NF 的关系模式,并标出每个关系模式的主码和外码。(要求关系模式名同实体集名或联系名,属性名用试卷中给出的英文名,大小写不限)

(5 分)

解:(1)

(2)满足3NF的关系模式如下所示:

 DEPT(DeptNO,DeptName)主码DeptNO【系编号】,无外码 注:DeptName系名称不能唯一确定其它属性,故不是外码

Teacher(TNO,TName,DeptNO)主码TNO【教师号】,外码DeptNO 【系编号】注:系编号(DeptNO)可以唯一确定系名称(DeptName)

Student(SNO,SName,Sex,DeptNO)主码SNO,外码DeptNO

Course(CNO,CName,Credit)主码CNO,无外码

 T-C(TNO,CNO)主码(TEO,CNO),外码TNO,CNO 注:教师号(TNO)能唯一确定教师名(Tname),课程号

(CNO)能唯一确定课程名(CName):

 S-C(SNO,CNO,成绩)主码(SNO,CNO),外码SNO,CNO

 [解析] 建立相应的E-R图的过程如下:

 ①确定实体类型。②确定联系类型。

 ③把实体类型和联系类型组合成E-R图。④确定实体类型和联系类型的属性。

如果一个关系模式R是一个范式,且不存在非主属性传递依赖于主码,则R是一个3NF。

 

   

更多内容详见微信公众号:Python测试和开发

Python测试和开发

原文地址:https://www.cnblogs.com/phyger/p/14247318.html