视频加载失败

课程

5785 字
约 17 分钟

河南大学《数据库系统原理》期末考试

数据库系统原理及应用exams/past-exams·更新于 2026-09-15

河南大学《数据库系统原理》期末考试

适用专业:计算机科学与技术    试卷所需时间:120 分钟    考试形式:闭卷    试卷总分:100 分


一、 选择题(共 15 小题,每小题 2 分,共计 30 分)

  1. 数据库系统中的外模式/模式映像保证了数据的( ) A. 完整性 B. 逻辑独立性 C. 并发性 D. 物理独立性
  2. 设有关系:R(A,B,C) 主键为 A;S(D,A) 主键为 D,外键 A 参照了 R 的主键 A。关系 R 和 S 的元组如下图,以下叙述正确的是( )

关系 R

ABC
135
246

关系 S

DA
11
2Null
34
42

A. 关系 S 违背了实体完整性规则 B. 关系 S 违背了参照完整性规则 C. 关系 S 违背了用户自定义完整性规则 D. 关系 S 没有违背任何完整性规则

  1. 设有关系 R,在属性 A 上对 R 进行投影,正确的是( ) A. R×RR \times R B. RRR \cup R C. πA(R)\pi_A(R) D. σF(R)\sigma_F(R)
  2. 下列 SQL 语句中,可以对表结构进行修改的是( ) A. UPDATE B. CREATE C. ALTER D. MODIFY STRUCTURE
  3. 下列说法中错误的是( ) A. 两个实体型之间的联系可以是一对多联系 B. 联系可以有自己的属性 C. 实体和属性间可以有联系 D. 属性不能再有需要描述的性质
  4. 下列语句中哪些可以用来对其他用户授权( ) A. REVOKE B. GRANT C. CREATE ROLE D. (无选项)
  5. 语句“DELETE FROM S”的含义是( ) A. 删除 S 表 B. 删除 S 表中的所有记录 C. 删除基本表 S 中的列数据 D. 该语句错误
  6. 保护数据库以防止不合法的使用(查询、修改、删除等操作)所造成的数据泄露、更改或破坏是指数据库的( ) A. 安全性控制 B. 完整性控制 C. 并发性控制 D. 数据库恢复
  7. 在数据库设计中,将需求分析的结果转化为 E-R 图的过程属于( ) A. 需求分析 B. 概念结构设计 C. 逻辑结构设计 D. 物理结构设计
  8. 下列查询优化策略中,正确的策略是( ) A. 尽可能早地执行笛卡尔积操作 B. 尽可能早地执行连接操作 C. 尽可能早地执行投影操作 D. 尽可能早地执行选择操作
  9. 对于关系 R,如果 R 的每个非主属性完全函数依赖于码,则 R 为第几范式( ) A. 4NF B. 2NF C. 3NF D. BCNF
  10. 事务的原子性是指( ) A. 事务中包括的所有操作要么都做,要么都不做 B. 一个事务内部的操作及使用的数据对并发的其他事务是隔离的 C. 事务一旦提交,对数据库的改变是永久的 D. 事务必须是使数据库从一个一致性状态变到另一个一致性状态
  11. 设有两个事务 T1、T2,其并发调度序列如下图所示,下面说法中正确的是( )

调度序列: T2 先读取 A=1000 并修改为 1500 并写入,随后 T1 读取 A=1500;接着 T2 执行 Rollback 将 A 恢复为 1000,最后 T1 使用 A 值。

A. 该调度执行结果是正确的 B. 会产生丢失修改 C. 会产生不能重复读 D. 会产生读“脏”数据

  1. 数据库中封锁机制是( )的主要方法 A. 完整性控制 B. 安全性控制 C. 并发控制 D. 恢复
  2. 下列和数据库恢复技术无关的是( ) A. 建立检查点 B. 数据转储 C. 建立日志文件 D. 建立索引

二、 填空题(共 10 小题,每小题 1 分,共计 10 分)

  1. 数据库领域中最常用的逻辑数据模型有层次模型、网状模型和( )。
  2. 在 CREATE TABLE 中定义某列值不能重复的短语是( )。
  3. 数据库中插入一条记录所用的语句是( )。
  4. 能够唯一确定一个元组,称这个属性(或属性组)为( )。
  5. 嵌入式 SQL 语句中使用的主语言程序变量简称为( )。
  6. 学校有很多学生,开设了若干门课程,每个学生可以选修多门课程,一门课程可以有多个学生选修,则学生和课程之间的联系类型是( )。
  7. 在一个关系 R 中,若每个数据项都是不可再分割的,那么 R 一定属于( )。
  8. 最基本的封锁类型有两种:排它锁和( )。
  9. 事务具有四个特性:原子性、( )、隔离性和持续性。
  10. 预防死锁通常有两种方法:分别是( )和顺序封锁法。

三、 简答题(共 6 小题,共计 35 分)

  1. 有如下两个关系 Student 和 SC,请依次写出 Student×SCStudent \times SCΠSNO(σAGE>16(Student))\Pi_{SNO}(\sigma_{AGE>16}(Student)) 的结果。(10 分)

Student 表

snosnameage
1ZS18
2ls20
3ww16

SC 表

snocnograde
1290
3485
  1. 简述关系模型的参照完整性规则,并举例说明。(5 分)
  2. 简述数据库设计过程。(5 分)
  3. 简述存储过程有哪些优点。(5 分)
  4. 假设某学生管理数据库中有一关系模式如下:R(学生姓名, 宿舍, 课程名, 学分, 成绩)。如果规定:(1) 每个学生只有一个宿舍;(2) 每门课有规定的学分;(3) 每个学生选修一门课后就有一个成绩。试回答:(1) 写出基本函数依赖;(2) 找出候选码。(5 分)
  5. 试述事务的定义及事务的 4 个特性。(5 分)

四、 编程题(共 5 小题,每小题 5 分,共计 25 分)

设关系数据库有下列三个关系:

  • 学生关系 S (SNO, SNAME, SSEX, SAGE),主码为 SNO
  • 小组关系 G (GNO, GNAME, TIME),主码为 GNO
  • 参加关系 J (SNO, GNO, PRIZE),反映学生参加小组的获奖情况

请用 SQL 语言完成如下操作:

  1. 查询参加了组号为 G3 的小组的学生的姓名和获奖情况;
  2. 查询参加了组名为“我爱大自然”的小组的学生的学号和姓名;
  3. 将组号为 G4 的小组的名称改为“计算机爱好者”;
  4. 往学生关系 S 中插入一条记录 (‘S3’, ‘张三’, 20, ‘男’);
  5. 将所有没有参加兴趣小组的学生信息从 S 表中删除。

参考答案

一、 选择题

  1. B (逻辑独立性)
  2. B (关系 S 违背了参照完整性规则:S 中 (3,4) 的外键 A=4 在 R 中不存在)
  3. C (πA(R)\pi_A(R))
  4. C (ALTER)
  5. C (实体和属性间可以有联系 - 错误,联系建立在实体之间)
  6. B (GRANT)
  7. B (删除 S 表中的所有记录)
  8. A (安全性控制)
  9. B (概念结构设计)
  10. D (尽可能早地执行选择操作)
  11. B (2NF - 非主属性完全依赖于码)
  12. A (要么都做,要么都不做)
  13. D (会产生读“脏”数据)
  14. C (并发控制)
  15. D (建立索引 - 与性能优化有关,非恢复技术)

二、 填空题

  1. 关系模型
  2. UNIQUE
  3. INSERT INTO (或 INSERT)
  4. 候选码 (或 码/Key)
  5. 主变量 (Host Variable)
  6. 多对多 (m:n)
  7. 第一范式 (1NF)
  8. 共享锁 (S 锁)
  9. 一致性 (Consistency)
  10. 一次封锁法

三、 简答题

  1. 结果如下:

Student×SCStudent \times SC (笛卡尔积):

snosnameagesnocnograde
1ZS181290
1ZS183485
2ls201290
2ls203485
3ww161290
3ww163485

ΠSNO(σAGE>16(Student))\Pi_{SNO}(\sigma_{AGE>16}(Student)) (选择年龄大于16的记录并投影SNO):

sno
1
2
  1. 参照完整性规则: 若属性(或属性组)F 是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为:
  • 或者取空值(F 的每个属性值均为空值);
  • 或者等于 S 中某个元组的主码值。 举例:在学生关系 (学号, 姓名, 专业号) 和 专业关系 (专业号, 专业名) 中,学生关系中的“专业号”是外码,参照专业关系的主码“专业号”。学生表中的专业号必须是专业表中存在的专业号,或者是空值(表示尚未分配专业)。
  1. 数据库设计过程: (1) 需求分析:了解用户需求,形成需求说明书。 (2) 概念结构设计:将需求转化为概念模型(如 E-R 图)。 (3) 逻辑结构设计:将概念模型转化为特定的数据模型(如关系模型),并进行优化。 (4) 物理结构设计:为逻辑数据模型选取最适合应用环境的物理结构(存储结构和存取方法)。 (5) 数据库实施:建立数据库,编制与调试应用程序,组织数据入库,进行试运行。 (6) 数据库运行和维护:从数据库试运行开始,对数据库进行评价、调整、修改。
  2. 存储过程的优点: (1) 运行速度快:存储过程在服务器端预编译和优化,执行效率高。 (2) 减少网络流量:客户端只需要发送调用语句,不需要发送复杂的 SQL 代码。 (3) 增强安全性:可以通过权限设置限制用户对自己存储过程的访问,而不需要直接授权访问底层表。 (4) 模块化编程:一次编写,多次调用,易于维护和修改。
  3. 答: (1) 基本函数依赖
  • 学生姓名 \rightarrow 宿舍
  • 课程名 \rightarrow 学分
  • (学生姓名, 课程名) \rightarrow 成绩 (2) 候选码
  • (学生姓名, 课程名) 注:假设“学生姓名”能唯一标识学生,“课程名”能唯一标识课程。
  1. 答: 事务定义:事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。 事务的 4 个特性 (ACID): (1) 原子性 (Atomicity):事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。 (2) 一致性 (Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。 (3) 隔离性 (Isolation):一个事务的执行不能被其他事务干扰。 (4) 持续性 (Durability):一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

四、 编程题

  1. 查询参加了G3小组的学生姓名和获奖情况
SELECT S.SNAME, J.PRIZE
FROM S, J
WHERE S.SNO = J.SNO AND J.GNO = 'G3';
  1. 查询参加了“我爱大自然”小组的学生学号和姓名
SELECT S.SNO, S.SNAME
FROM S, J, G
WHERE S.SNO = J.SNO AND J.GNO = G.GNO AND G.GNAME = '我爱大自然';
  1. 将G4小组名称改为“计算机爱好者”
UPDATE G
SET GNAME = '计算机爱好者'
WHERE GNO = 'G4';
  1. 插入记录
INSERT INTO S (SNO, SNAME, SAGE, SSEX)
VALUES ('S3', '张三', 20, '男');
  1. 删除没有参加兴趣小组的学生信息
DELETE FROM S
WHERE SNO NOT IN (SELECT DISTINCT SNO FROM J);
Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录