数据库系统概论期末考试常考模拟试卷及答案解析

适用教材:《数据库系统概论》第 6 版,王珊、萨师煊
适用对象:大学数据库期末复习
说明:本文根据大学数据库系统概论期末常考题型整理,非官方真题。
满分:100 分
考试时间:120 分钟


文章目录

一、考试范围与题型说明

本套试卷重点覆盖以下内容:

第一章:数据库基本概念、数据库系统特点、DBMS 功能
第二章:关系模型、关系代数、五种基本运算
第三章:SQL 查询,重点是连接查询、嵌套查询、分组查询
第四章:数据库安全性,主要考 GRANT、REVOKE、基本概念
第五章:数据库完整性,主要考实体完整性、参照完整性、用户定义完整性
第六章:关系数据库理论,主要考函数依赖、范式、模式分解

题型与分值:

一、单选题:15 题,每题 2 分,共 30 分
二、多选题:5 题,每题 2 分,共 10 分
三、判断题:10 题,每题 1 分,共 10 分
四、填空题:10 题,每题 1 分,共 10 分
五、简答题:2 题,每题 3 分,共 6 分
六、综合应用题:共 34 分

《数据库系统概论》期末考试常考模拟试卷


一、单选题(15 题,每题 2 分,共 30 分)

1. 数据库是长期存储在计算机内、有组织的、可共享的( )

  A. 数据集合

  B. 程序集合

  C. 文件集合

  D. 命令集合

2. 数据库管理系统的英文缩写是( )

  A. DB

  B. DBS

  C. DBMS

  D. DBA

3. 数据库系统的核心软件是( )

  A. 数据库

  B. 数据库管理系统

  C. 操作系统

  D. 应用程序

4. 数据库系统的特点不包括( )

  A. 数据结构化

  B. 数据共享性高

  C. 数据冗余度高

  D. 数据独立性高

5. 数据模型的三要素不包括( )

  A. 数据结构

  B. 数据操作

  C. 完整性约束

  D. 数据库管理员

6. 关系模型的数据结构是( )

  A. 树形结构

  B. 网状结构

  C. 二维表

  D. 图结构

7. 在关系模型中,表中的一行称为( )

  A. 属性

  B. 元组

  C. 域

  D. 分量

8. 在关系代数中,选择运算对应 SQL 中的( )

  A. SELECT

  B. FROM

  C. WHERE

  D. ORDER BY

9. 在关系代数中,投影运算对应 SQL 中的( )

  A. SELECT

  B. WHERE

  C. GROUP BY

  D. HAVING

10. SQL 中用于对分组后的结果进行筛选的是( )

  A. WHERE

  B. HAVING

  C. ORDER BY

  D. DISTINCT

11. SQL 中判断空值应使用( )

  A. = NULL

  B. IS NULL

  C. == NULL

  D. NULL = NULL

12. SQL 中用于授权的语句是( )

  A. GRANT

  B. REVOKE

  C. SELECT

  D. UPDATE

13. 数据库完整性主要保证数据的( )

  A. 保密性、可靠性和安全性

  B. 正确性、有效性和相容性

  C. 独立性、共享性和完整性

  D. 结构化、冗余度和安全性

14. 第二范式是在第一范式基础上消除( )

  A. 部分函数依赖

  B. 传递函数依赖

  C. 多值依赖

  D. 平凡函数依赖

15. 第三范式是在第二范式基础上消除( )

  A. 部分函数依赖

  B. 传递函数依赖

  C. 多值依赖

  D. 完全函数依赖


二、多选题(5 题,每题 2 分,共 10 分)

1. 数据库系统通常包括( )

  A. 数据库

  B. 数据库管理系统

  C. 应用程序

  D. 数据库管理员和用户

2. 数据库系统的主要特点包括( )

  A. 数据结构化

  B. 数据共享性高、冗余度低

  C. 数据独立性高

  D. 数据由 DBMS 统一管理和控制

3. 关系代数的基本运算包括( )

  A. 并

  B. 差

  C. 选择

  D. 投影

4. 数据库安全控制方法包括( )

  A. 用户身份鉴别

  B. 存取控制

  C. 视图机制

  D. 审计和数据加密

5. 用户定义完整性常用的 SQL 约束包括( )

  A. NOT NULL

  B. UNIQUE

  C. CHECK

  D. DEFAULT


三、判断题(10 题,每题 1 分,共 10 分)

1. 数据库 DB 和数据库管理系统 DBMS 是同一个概念。( )

2. 数据库系统的核心软件是 DBMS。( )

3. 关系模型用二维表表示实体以及实体之间的联系。( )

4. 关系中的一行称为属性,一列称为元组。( )

5. 关系代数中的投影运算默认去除重复元组。( )

6. SQL 中 `WHERE` 子句可以直接使用聚集函数筛选分组。( )

7. `COUNT(*)` 会统计表中的所有行,包括含 NULL 的行。( )

8. 数据库安全性管“谁能访问”,数据库完整性管“数据对不对”。( )

9. 主键可以取 NULL 值。( )

10. 3NF 一定满足 BCNF。( )


四、填空题(10 题,每题 1 分,共 10 分)

1. 数据库是长期存储在计算机内、________、________ 的大量数据的集合。

2. 数据库管理系统的英文缩写是 ________。

3. 数据模型由数据结构、数据操作和 ________ 组成。

4. 关系中能唯一标识一个元组的属性或属性组称为 ________。

5. 关系代数中选择运算的符号是 ________。

6. 关系代数中投影运算的符号是 ________。

7. SQL 中用于收回权限的语句是 ________。

8. 实体完整性要求基本关系的 ________ 不能取空值。

9. 第二范式消除的是非主属性对候选码的 ________ 函数依赖。

10. 第三范式消除的是非主属性对候选码的 ________ 函数依赖。


五、简答题(2 题,每题 3 分,共 6 分)

1. 简述数据库系统的主要特点。

2. 简述数据库安全性和数据库完整性的区别。


六、综合应用题(共 34 分)

已知三个关系模式:

Student(Sno, Sname, Sex, Birthday, Smajor)

Course(Cno, Cname, Credit, Cpno)

SC(Sno, Cno, Grade, Semester, Teachingclass)

1. 关系代数与 SQL 查询题(12 分)

(1)查询“计算机科学与技术”专业学生的学号和姓名。要求写出关系代数表达式和 SQL 语句。(4 分)

(2)查询选修了课程号为 `81001` 的学生姓名和成绩。要求写出关系代数表达式和 SQL 语句。(4 分)

(3)查询没有选修课程号为 `81001` 的学生姓名。要求写出关系代数表达式和 SQL 语句。(4 分)


2. SQL 查询题(8 分)

(1)查询每门课程的课程号和平均成绩,只显示平均成绩大于 80 分的课程。(4 分)

(2)查询选修“数据库系统概论”课程的学生姓名、课程名和成绩。(4 分)


3. 数据库安全性与完整性题(6 分)

(1)把 `SC` 表中 `Grade` 列的修改权限授给用户 `Teacher1`。(3 分)

(2)创建 `SC` 表时,要求 `Grade` 的取值范围为 0 到 100,请写出对应约束。(3 分)


4. 关系数据库理论题(8 分)

已知关系模式:

R(Sno, Cno, Sname, Cname, Grade)

函数依赖集:

F = {
    Sno → Sname,
    Cno → Cname,
    (Sno, Cno) → Grade
}

(1)求 R 的候选码。(2 分)

(2)指出 R 中的主属性和非主属性。(2 分)

(3)判断 R 是否满足 2NF,并说明理由。(2 分)

(4)若不满足 2NF,请将其分解到 2NF。(2 分)


参考答案与解析


一、单选题答案

1. A
2. C
3. B
4. C
5. D
6. C
7. B
8. C
9. A
10. B
11. B
12. A
13. B
14. A
15. B

二、多选题答案

1. ABCD
2. ABCD
3. ABCD
4. ABCD
5. ABCD

三、判断题答案

1. 错
2. 对
3. 对
4. 错
5. 对
6. 错
7. 对
8. 对
9. 错
10. 错

四、填空题答案

1. 有组织、可共享
2. DBMS
3. 完整性约束
4. 码
5. σ
6. π
7. REVOKE
8. 主属性
9. 部分
10. 传递

五、简答题参考答案

1. 数据库系统的主要特点

1. 数据结构化。
2. 数据共享性高、冗余度低、易扩充。
3. 数据独立性高。
4. 数据由 DBMS 统一管理和控制。

2. 数据库安全性和数据库完整性的区别

数据库安全性是防止非法用户非法访问数据库,避免数据泄露、更改或破坏,关注的是“谁能访问”。

数据库完整性是保证数据库中数据的正确性、有效性和相容性,关注的是“数据是否正确”。

简单说,安全性管“谁能用”,完整性管“数据对不对”。

六、综合应用题参考答案

1. 关系代数与 SQL 查询题

(1)查询“计算机科学与技术”专业学生的学号和姓名

关系代数:

π Sno,Sname(σ Smajor='计算机科学与技术'(Student))

SQL:

SELECT DISTINCT Sno, Sname
FROM Student
WHERE Smajor = '计算机科学与技术';

(2)查询选修了课程号为 81001 的学生姓名和成绩

关系代数:

π Sname,Grade(σ Cno='81001'(Student ⋈ Student.Sno=SC.Sno SC))

SQL:

SELECT DISTINCT S.Sname, SC.Grade
FROM Student S
JOIN SC ON S.Sno = SC.Sno
WHERE SC.Cno = '81001';

(3)查询没有选修课程号为 81001 的学生姓名

关系代数:

T = π Sno(Student) - π Sno(σ Cno='81001'(SC))
π Sname(Student ⋈ T)

SQL:

SELECT S.Sname
FROM Student S
WHERE NOT EXISTS (
    SELECT *
    FROM SC
    WHERE SC.Sno = S.Sno
      AND SC.Cno = '81001'
);

2. SQL 查询题

(1)查询每门课程的课程号和平均成绩,只显示平均成绩大于 80 分的课程

SQL:

SELECT Cno, AVG(Grade) AS AvgGrade
FROM SC
GROUP BY Cno
HAVING AVG(Grade) > 80;

(2)查询选修“数据库系统概论”课程的学生姓名、课程名和成绩

SQL:

SELECT DISTINCT S.Sname, C.Cname, SC.Grade
FROM Student S
JOIN SC ON S.Sno = SC.Sno
JOIN Course C ON SC.Cno = C.Cno
WHERE C.Cname = '数据库系统概论';

3. 数据库安全性与完整性题

(1)把 SC 表中 Grade 列的修改权限授给用户 Teacher1
GRANT UPDATE(Grade)
ON TABLE SC
TO Teacher1;

(2)创建 SC 表时,要求 Grade 的取值范围为 0 到 100
Grade INT CHECK (Grade BETWEEN 0 AND 100)

也可以写成表级约束:

CONSTRAINT CK_SC_Grade CHECK (Grade BETWEEN 0 AND 100)

4. 关系数据库理论题

(1)R 的候选码
(Sno, Cno)

解析:

由 Sno → Sname,可知 Sno 能确定 Sname。
由 Cno → Cname,可知 Cno 能确定 Cname。
由 (Sno, Cno) → Grade,可知 (Sno, Cno) 能确定 Grade。

因此 (Sno, Cno) 可以确定 R 中全部属性:
Sno、Cno、Sname、Cname、Grade。

所以 (Sno, Cno) 是候选码。

(2)主属性和非主属性
主属性:Sno, Cno

非主属性:Sname, Cname, Grade

(3)R 是否满足 2NF
R 不满足 2NF。

理由:

候选码是 (Sno, Cno),而:

Sno → Sname
Cno → Cname

Sname 只依赖候选码的一部分 Sno。
Cname 只依赖候选码的一部分 Cno。

所以存在非主属性对候选码的部分函数依赖,因此 R 不满足 2NF。

(4)分解到 2NF
R1(Sno, Sname)

R2(Cno, Cname)

R3(Sno, Cno, Grade)

考前速记

DB 是数据集合,
DBMS 是管理软件,
DBS 是完整系统。

选择 σ 对 WHERE,
投影 π 对 SELECT。

WHERE 筛行,
HAVING 筛组。

安全性管谁能访问,
完整性管数据对不对。

GRANT 授权,
REVOKE 收权。

2NF 消部分依赖,
3NF 消传递依赖,
BCNF 要求决定因素是超码。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐