湖南大学-数据库系统-2017期末考试解析

2024-01-09 12:52

本文主要是介绍湖南大学-数据库系统-2017期末考试解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【写在前面】

这是2017年的卷子,复习备考的时候做了并与同学校对了答案。答案仅供参考。这张难度不大,比起前一年的并没有增加什么知识点。这一年好像没有简答题。

一、 单选题(每小题 2 分,共 20 分)

1 、数据库的概念模型独立于( )。
A )具体的机器和 DBMS B E-R
C )信息世界(D )现实世界
2 、对关系 R(A,B,C) S(B,C,D) ,下列关系代数表达式不成立的是( )
A π B (R) π B , D (S)
B R S
C π B (R) π B (S)
D R S
3 、如果一个关系 R 中的属性全部都是主属性,则 R 至少可以达到( )。
A 2NF B 3NF
C BCNF D 4NF
4 、在 E-R 模型中,如果有 3 个不同的实体集, 3 个多对多的联系, 则应转换为( )个关系模式。
A 3 B 6 C 9 (D 4
5 、关于死锁,下列说法正确的是( )
A )死锁是操作系统中的问题,数据库中不存在
B )数据库中防止死锁的方法是禁止两个用户同时访问数据库
C )当两个用户竞争相同的资源时不会发生死锁
D )只有出现并发操作时,才有可能出现死锁
6 、写一个修改到数据库中,与写一个表示这个修改的记录到日志文件中 的操作,应该( )。
【这个知识点老熟人了】
A )前者先做
B )由程序员安排
C )后者先做
D )由系统决定哪一个先做
7 、查询优化策略中,首先应该做的是()
A )对数据进行预处理
B )尽早执行选择运算
C )尽早执行笛卡尔乘积运算
D )投影运算
8 、在第一个事务以 S 封锁方式读数据 A 时,第二个事务对数据 A 的读取 方式会遭到失败的是( )。
A )实现 X 封锁的读
B )实现 S 封锁的读
C )不加锁的读
D )实现意向共享锁的读
9 、视图建立后,在数据字典中存放的是( )。 【这道题挺好的,要注意,有几年没考了】
A )查询语句
B )组成视图的表的内容
C )视图的定义
D )视图对应的表的定义
10 、设有关系 R A, B, C, D ),依赖集 F={A B, B C} ,则属性集 BD 关于 F 的闭包 (BD) + F 为( )。
A BD
B BCD
C BC
D CD
【答案】
ABBBD CBACB

二、一个图书借阅管理数据库要求提供下述服务:(共 15 分)

1 )可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。
2 )可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、 借书日期和还书日期。 这里约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。
3 )当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。这里约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。
根据以上情况和假设,试作如下设计:
1 )构造满足需求的 E R 图。( 7 分)
2 )转换为恰当的关系模式,并标出主码和外码。( 8 分)
【答案】
2023年,也就是今年的题就跟这道差不多,改了一两个属性而已。所以有时刷刷题还是有点用的(虽然这个题目也很简单)

三、设有如下关系模式(共 10 分)

书店(书店编号,书店名,地址)
图书(书号,书名,定价)
图书馆(馆号,馆名,城市,电话)
图书发行(馆号,书号,书店号,数量)
1 )用 SQL 语句查询已发行图书中最贵的图书的书名和定价。( 5 分)
2 )写出以下 SQL 语句的含义(查的是什么?)( 5 分)
SELECT 馆名
FROM 图书馆
WHERE 馆号 IN
(SELECT 馆号
FROM 图书发行
WHERE 书号 IN
(SELECT 书号
FROM 图书
WHERE 书名=’数据库系统概念’));
【答案】
(1)我用的嵌套查询,方法应该不止一种
(2)查询藏有已发行图书《数据库系统概念》的图书馆的馆名

四、(共 15 分)

1 )设有关系模式 R X, Y, Z ),依赖集 F={XY Z, XZ Y, Y Z} ,判断
R 最高满足第几范式并说明理由。( 8 分)
2 )设关系模式 R A, B, C ),其关系 r 如下表所示。判断 A B, BC A,
B A 各自在 r 上是否成立,并说明理由。( 7 分)

【答案】

(1)3NF;主码XY,XZ,不存在非主属性,故至少有3NF。但是Y→Z,决定因素不含码,故不能到BCNF。

这道题在前一年的2016考题中考过了,思路一样的,所以说这个模式那几年很流行。

(2)A→B 成立;BC→A 不成立;B→A 不成立

五、举例说明连接操作的排序-合并实现方法(10 分)

【答案】
《数据库系统概论》第6版 书P305

六、并发

下图中的事务是否为冲突可串行化?说明理由。如果是,请给出一 个等价的串行调度。(10 分)

【答案】

显然这是无法交换的,不论T1还是T2谁在前。

如果试图交换T1在前,对于B的读和写是互斥的,不可能交换。

如果试图交换T2在前,则会遇到对于A的读写冲突。

七、恢复

系统出现故障时,恢复子系统将根据事务的不同状态采取不同的恢复策略。说明下图中 T 1 ~T 5 五个事务对应的恢复策略(无操作,REDO 或 UNDO ),并说明理由( 10 分)

 

这种题是前几年的老熟人了,不过从今年(2023)开始对恢复的考察开始改了不用这种无脑的方法了。

【答案】

八、

在学习了关系数据库以后,你觉得它主要的好处是什么?它又有哪些缺陷导致它无法胜任某些应用?(10 分,非标准答案,根据理解自由发挥)

【最近不考扩展题了,没做】

这篇关于湖南大学-数据库系统-2017期末考试解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/587179

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决