zoukankan      html  css  js  c++  java
  • 数据库系统概论练习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测试和开发

  • 相关阅读:
    天梯赛5-12 愿天下有情人都是失散多年的兄妹 【dfs】
    poj2718 Smallest Difference【贪心】
    HDU problem 5635 LCP Array【思维】
    codeforces 782C Andryusha and Colored Balloons【构造】
    HDU 4278 Faulty Odometer【进制转换】
    codeforces B. The Meeting Place Cannot Be Changed【二分】
    POJ 3264 Balanced Lineup 【线段树】
    HDU 1850
    CodeForces-714C
    HDU Problem 1247 Hat's Words 【字典树】
  • 原文地址:https://www.cnblogs.com/phyger/p/14247118.html
Copyright © 2011-2022 走看看