数据库原理 一、填空题核心考点(扩展版) 数据库系统组成 数据库系统由  数据库(DB) 、 数据库管理系统(DBMS) 、 应用程序 、 数据库管理员(DBA)  和  用户  组成。 DBMS 的功能包括  数据定义、数据操纵、数据库运行管理、数据组织存储、数据库维护 。 数据模型 概念数据模型(如  ER模型 )的三个基本要素是  实体 、 属性  和  联系 (一对一、一对多、多对多)。 关系数据模型中,关系的三个类型是  基本表(基表) 、 视图(虚表)  和  查询表 。 数据模型的三要素: 数据结构 、 数据操作 、 数据完整性约束 。 关系数据库 关系代数的基本运算包括  并、差、笛卡尔积、投影、选择 。 SQL 语言中, HAVING  子句用于筛选分组后的结果, WHERE  子句用于筛选行。 SQL 语言 DDL(数据定义语言)命令: CREATE 、 ALTER 、 DROP 。 DML(数据操纵语言)命令: INSERT 、 UPDATE 、 DELETE 、 SELECT 。 DCL(数据控制语言)命令: GRANT 、 REVOKE 。 事务与并发控制 事务的四个特性(ACID): 原子性 (All or Nothing)、 一致性 (Consistency)、 隔离性 (Isolation)、 持久性 (Durability)。 并发控制的主要技术: 封锁 、 时间戳 、 乐观控制法 、 多版本并发控制 。 数据库安全与保护 数据库安全性控制方法: 用户标识与鉴别 、 存取控制 (如  GRANT / REVOKE )、 审计 、 视图 、 数据加密 。 数据库恢复技术: 事务日志 、 数据转储 (全量转储、增量转储)、** checkpoint(检查点)**。 二、简答题核心考点(扩展版) 1. 数据库设计步骤(详细版) 答案 : 数据库设计分为以下阶段,每个阶段的目标和输出如下: 需求分析 : 目标:收集用户需求,明确系统功能。 输出:数据字典(描述数据项、数据结构)、数据流图(DFD)。 概念结构设计 : 目标:设计 ER 模型,描述实体及联系。 工具:ER 图(实体用矩形,属性用椭圆,联系用菱形)。 逻辑结构设计 : 目标:将 ER 模型转换为关系模式(如转换为二维表)。 规则:实体转换为表,联系根据类型转换为外键或关联表。 物理结构设计 : 目标:定义索引、存储结构(如聚簇索引)、分区策略。 优化:考虑查询效率、存储空间、事务处理速度。 数据库实施 : 目标:编写 SQL 代码,建立数据库并测试。 步骤:创建表、插入数据、编写存储过程/触发器、性能调优。 数据库运行与维护 : 目标:优化性能,调整结构。 工作:备份与恢复、安全性检查、索引重建、查询优化。 2. 关系代数运算(复杂查询) 题目 :用关系代数表达式表示“查询选修了课程号为C1且成绩大于80分的学生学号和姓名”。 答案 : 假设学生关系为  Student(Sno, Sname) ,选课关系为  SC(Sno, Cno, Grade) ,则表达式为: π_{Sno, Sname}(Student ⨝ SC ⨝ σ_{Cno='C1' ∧ Grade>80}(SC)) (先连接学生和选课表,选择符合条件的元组,再投影学号和姓名) 3. 范式判断与分解(综合题) 题目 :判断关系模式  R(A,B,C,D,E)  满足第几范式,并分解为 BCNF。 假设 : 函数依赖集: A→B, BC→D, D→E, E→A 主键为  A 答案 : 判断范式 : 1NF :满足(属性不可再分)。 2NF :不满足。 非主属性  B  完全依赖于主键  A (无部分依赖),但  D 、 E  存在传递依赖( A→B→D→E→A )。 3NF :不满足(存在传递依赖)。 BCNF :不满足(存在非主键决定因素,如  BC→D )。 分解为 BCNF : 分解步骤: 分解  R1(A,B) (主键 A,满足 BCNF)。 分解  R2(B,C,D) (主键 BC,满足 BCNF)。 分解  R3(D,E) (主键 D,满足 BCNF)。 分解  R4(E,A) (主键 E,满足 BCNF)。 最终关系模式: R1, R2, R3, R4 。 4. 并发控制与封锁协议(详细解释) 题目 :简述三级封锁协议及其解决的问题。 答案 : 三级封锁协议是并发控制中保证数据一致性的规则: 一级封锁协议(修改数据时加X锁) : 事务在修改数据前加排他锁(X锁),直到事务结束释放。 解决: 丢失修改  问题(两个事务同时修改同一数据,后提交的事务覆盖前者)。 二级封锁协议(一级 + 读取数据时加S锁) : 事务在读取数据前加共享锁(S锁),读完后立即释放。 解决: 脏读  问题(事务读取未提交的数据)。 三级封锁协议(一级 + 读取数据时加S锁,事务结束释放) : 事务在读取数据前加共享锁,直到事务结束释放。 解决: 不可重复读  问题(事务两次读取同一数据,中间被其他事务修改)。 5. 索引类型与优化(综合题) 题目 :比较 B+ 树索引和哈希索引的优缺点,并说明适用场景。 答案 : 特性 B+ 树索引 哈希索引 数据结构 树形结构(有序) 哈希表(无序) 查询效率 高效(支持范围查询) 高效(等值查询) 适用场景 频繁范围查询、排序操作 频繁等值查询、无排序需求 存储空间 占用较大(存储树结构) 占用较小(存储哈希函数) 动态调整 支持动态扩容(树分裂) 哈希冲突时需扩容(性能下降)