课程
河南大学 2025-2026 学年第一学期期末考试
河南大学 2025-2026 学年第一学期期末考试
《数据库系统原理》试卷(模拟卷)
适用专业:计算机科学与技术 / 软件工程 考试形式:闭卷 考试时间:120 分钟 试卷总分:100 分
一、单项选择题(共 20 小题,每题 1 分,共 20 分)
- (第一章) 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是( )。 A. 外模式 B. 模式 C. 内模式 D. 存储模式
- (第一章) 数据的物理独立性是指( )。 A. 数据库与数据库管理系统的相互独立 B. 用户应用程序与数据库的逻辑结构相互独立 C. 用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的 D. 应用程序与数据库中数据的逻辑结构相互独立
- (第二章) 关系代数运算中,从两个关系的笛卡尔积中选取它们属性间满足一定条件的元组的操作称为( )。 A. 投影 B. 选择 C. 自然连接 D. 连接
- (第二章) 关系模型中,实体完整性规则是指( )。 A. 实体的主码中每个属性都不能为空 B. 实体的主码中可以有空值 C. 实体的外码不能为空 D. 实体的非主属性不能为空
- (第三章) SQL语言中,用于修改表结构的命令是( )。 A. ALTER TABLE B. UPDATE TABLE C. MODIFY TABLE D. CHANGE TABLE
- (第三章) 在视图上不能完成的操作是( )。 A. 查询 B. 在视图上定义新的视图 C. 更新视图(涉及聚合函数时) D. 在视图上定义新的表
- (第四章) SQL中的
GRANT和REVOKE语句主要用于实现数据库的( )。 A. 完整性控制 B. 并发控制 C. 安全性控制 D. 恢复控制 - (第四章) 强制存取控制(MAC)中,当主体的许可证级别大于客体的密级时,主体可以( )。 A. 读取客体 B. 写入客体 C. 既可读也可写 D. 不可读不可写
- (第五章) 下列关于触发器(Trigger)的描述,错误的是( )。 A. 触发器是一种特殊的存储过程 B. 触发器由用户直接调用执行 C. 触发器主要用于实现复杂的完整性约束 D. 触发器定义在表上
- (第六章) 若关系模式 ,且每个非主属性都完全函数依赖于码,则 ( )。 A. 2NF B. 3NF C. BCNF D. 4NF
- (第六章) 关系模式中,如果 ,,且 ,则称 对 ( )。 A. 完全函数依赖 B. 部分函数依赖 C. 传递函数依赖 D. 多值依赖
- (第七章) 在数据库设计中,将E-R图转换为关系模式的过程属于( )。 A. 需求分析阶段 B. 概念结构设计阶段 C. 逻辑结构设计阶段 D. 物理结构设计阶段
- (第七章) 两个实体型之间的联系为 时,转换为关系模型,该关系模式的码是( )。 A. 端实体的码 B. 端实体的码 C. 端与 端实体码的组合 D. 重新选取其他属性
- (第八章) JDBC编程中,用于执行静态SQL语句并返回其生成结果的对象是( )。 A. Connection B. Statement C. PreparedStatement D. ResultSet
- (第九章) 下列哪种索引结构最适合范围查询?( ) A. 哈希索引 B. B+树索引 C. 位图索引 D. 顺序索引
- (第十章) 查询优化策略中,最重要的启发式规则是( )。 A. 尽可能早地执行连接操作 B. 尽可能早地执行投影操作 C. 尽可能早地执行选择操作 D. 尽可能早地执行笛卡尔积操作
- (第十一章) 事务的原子性(Atomicity)是指( )。 A. 事务中包括的所有操作要么都做,要么都不做 B. 事务一旦提交,对数据库的改变是永久的 C. 一个事务内部的操作对并发的其他事务是隔离的 D. 事务必须使数据库从一个一致性状态变到另一个一致性状态
- (第十一章) 用于数据库恢复的重要文件是( )。 A. 索引文件 B. 日志文件 C. 数据字典 D. 备注文件
- (第十二章) 若事务T对数据对象A加上了S锁,则( )。 A. 事务T可以读A,也可以修改A B. 其他事务只能对A加S锁,不能加X锁 C. 其他事务可以对A加X锁 D. 其他事务不能对A加任何锁
- (第十二章) 解决并发操作带来的“死锁”问题,通常采用的方法不包括( )。 A. 一次封锁法 B. 顺序封锁法 C. 也就是超时法或等待图法 D. 两段锁协议
二、填空题(共 10 小题,每题 1 分,共 10 分)
- (第一章) 数据库系统(DBS)由数据库、________、应用系统、数据库管理员和用户组成。
- (第二章) 关系模型的三要素包括数据结构、________和完整性约束。
- (第三章) 在SQL中,用于删除表中数据的命令是________,用于删除整个表的命令是 DROP TABLE。
- (第五章) 完整性约束条件包括实体完整性、________和用户定义完整性。
- (第六章) 任何一个二元关系模式(只包含两个属性)必定属于________范式。
- (第七章) 在E-R图中,用矩形表示实体,用________表示联系,用椭圆表示属性。
- (第十一章) 事务的ACID特性是指原子性、________、隔离性和持久性。
- (第十二章) 并发操作带来的数据不一致性主要包括丢失修改、________和读“脏”数据。
- (第十二章) 封锁协议中,________协议可以防止丢失修改,但不能保证可重复读。
- (第十章) 代数优化是通过对________进行等价变换来提高查询效率。
三、简答题(共 4 小题,每题 5 分,共 20 分)
- (第一章) 什么是数据库的数据独立性?三级模式结构是如何保证数据独立性的?
- (第三章 & 第八章) 简述视图(View)的作用,以及存储过程(Stored Procedure)的优点。
- (第十一章) 什么是检查点(Checkpoint)记录?检查点技术在数据库恢复中起什么作用?
- (第十二章) 简述两段锁协议(2PL)的内容,并说明它与可串行化调度的关系。
四、综合设计与应用题(共 3 小题,共 50 分)
1. SQL 综合应用题(15 分)
设有一个学生选课数据库,包含三个表:
- 学生表 ,主码为 。
- 课程表 ,主码为 。
- 选课表 ,主码为 ,外码分别为 和 。
请使用 SQL 语句完成下列操作:
(1) 查询“计算机系”(Dept = ‘CS’)所有学生的学号、姓名和年龄,结果按年龄降序排列。
(2) 查询选修了“数据库原理”课程且成绩在 85 分以上的学生姓名。
(3) 统计每门课程的选修人数,要求输出课程号和选修人数,并只列出选修人数超过 10 人的课程。
(4) 将学号为“2023001”的学生的“数据库原理”课程成绩改为 90 分(假设已知该课程的课程号为’C01’)。
(5) 创建一个视图 V_Fail,包含所有不及格(Grade < 60)学生的学号、姓名、课程名和成绩。
2. 数据库设计题(E-R图与逻辑设计)(20 分)
某医院病房管理系统需要管理以下信息:
- 科室:包括科名、科地址、科电话。
- 医生:包括工号、姓名、职称、年龄。
- 病房:包括病房号、床位号。
- 病人:包括病历号、姓名、性别、诊断。
语义规则如下:
- 一个科室有多个病房,多个医生;但一个病房、一个医生只属于一个科室。
- 一个医生可以负责多个病人的诊治,一个病人只能有一个主治医生。
- 一个病房可以住多个病人,一个病人只能住在一个病房的某一个床位。
请完成以下任务: (1) 画出该系统的 E-R 图,需标明实体属性及联系的类型(1:1, 1:n, m:n)。(10分) (2) 将 E-R 图转换为关系模式,并指出每个关系模式的主码和外码。(10分)
3. 规范化理论应用题(15 分)
设有关系模式 ,其函数依赖集为 。
(1) 求 的所有候选码。(5分) (2) 判断 属于第几范式?并说明理由。(5分) (3) 将 分解为 3NF,要求保持函数依赖。(5分)
附:参考答案与解析
一、单项选择题
1-5: B C D A A 6-10: C C A B A 11-15: C C C B B 16-20: C A B B D
二、填空题
- 数据库管理系统(DBMS)
- 关系操作
- DELETE
- 参照完整性
- BCNF (或 3NF/2NF/1NF,但BCNF最准确)
- 菱形
- 一致性
- 不可重复读
- 一级封锁
- 关系代数表达式(或查询树)
三、简答题
-
数据独立性:指应用程序和数据结构之间相互独立,不受影响。
- 逻辑独立性:当模式(逻辑结构)改变时,通过修改外模式/模式映像,使外模式保持不变,从而应用程序不必修改。
- 物理独立性:当内模式(存储结构)改变时,通过修改模式/内模式映像,使模式保持不变,从而应用程序不必修改。
-
视图作用:简化用户操作;使用户能以多种角度看待同一数据;提供一定程度的逻辑独立性;对机密数据提供安全保护。 存储过程优点:提高运行速度(预编译);减少网络流量;增强数据库安全性(权限控制);支持模块化编程。
-
检查点:在日志文件中增加的一类记录,记录了某一时刻数据库中活动事务的列表。 作用:恢复时,只需扫描检查点之后的日志记录,缩短了扫描日志的时间,提高了恢复效率。
-
两段锁协议:指所有事务必须分两个阶段对数据项加锁和解锁。
- 扩展阶段:获得锁,不能释放锁。
- 收缩阶段:释放锁,不能获得锁。
- 关系:若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。
四、综合设计与应用题
1. SQL 综合应用 (1)
SELECT Sno, Sname, Age FROM S
WHERE Dept = 'CS' ORDER BY Age DESC;
(2)
SELECT Sname FROM S, C, SC
WHERE S.Sno = SC.Sno AND C.Cno = SC.Cno
AND C.Cname = '数据库原理' AND SC.Grade > 85;
(3)
SELECT Cno, COUNT(*) FROM SC
GROUP BY Cno HAVING COUNT(*) > 10;
(4)
UPDATE SC SET Grade = 90
WHERE Sno = '2023001' AND Cno = 'C01';
(5)
CREATE VIEW V_Fail AS
SELECT S.Sno, S.Sname, C.Cname, SC.Grade
FROM S, C, SC
WHERE S.Sno = SC.Sno AND C.Cno = SC.Cno AND SC.Grade < 60;
2. 数据库设计 (1) E-R图描述:
- 实体:科室、医生、病房、病人。
- 联系:
- 科室 - 医生:1:n (联系名:聘用/所属)
- 科室 - 病房:1:n (联系名:拥有)
- 医生 - 病人:1:n (联系名:诊治)
- 病房 - 病人:1:n (联系名:住院,属性:床位号) (此处需画图,文字描述即可理解)
(2) 关系模式:
- 科室 (
<u>科名</u>, 科地址, 科电话) - 医生 (
<u>工号</u>, 姓名, 职称, 年龄, 科名) —— 外码:科名 - 病房 (
<u>病房号</u>, 科名) —— 外码:科名 (注:假设病房号全局唯一,若不唯一需联合科名) - 病人 (
<u>病历号</u>, 姓名, 性别, 诊断, 工号, 病房号, 床位号) —— 外码:工号, 病房号
3. 规范化理论 (1) 候选码:
- 类属性:无
- 类属性:无
- 类属性:
- 闭包计算:
- -> A 是候选码
- -> BC 是候选码
- -> E 是候选码
- -> CD 是候选码
- 候选码为:A, BC, E, CD
(2) 范式判断:
- 候选码为 。主属性为 (全为主属性)。
- 因为没有非主属性,所以肯定满足 3NF。
- 检查 BCNF:看决定因素是否都包含码。
- : 不是候选码。
- 结论: 属于 3NF,但不属于 BCNF。理由:存在主属性 对 码 的部分函数依赖(因为 ),或者说决定因素 不包含码。
(3) 分解为 3NF:
- 最小函数依赖集 :
- 分解结果(根据 的左部相同原则合并,及包含候选码):
- (注: 包含了候选码 和 ,无需额外添加候选码模式)













