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测试和开发

  • 相关阅读:
    linux下压缩-解压命令
    配置 samba
    我如何在Linux shell脚本提示输入?
    乔布斯语录
    Oracle 查看表空间及扩容
    Linux添加/删除用户和用户组
    学习进度条
    作业8:单元测试练习(个人练习)
    作业7: 用户体验设计案例分析
    作业6 成绩录入系统设计 阶段一
  • 原文地址:https://www.cnblogs.com/phyger/p/14247118.html
Copyright © 2011-2022 走看看