Skip to main content

数据库原理


(先连接学生和选课表,选择符合条件的元组,再投影学号和姓名)

3. 范式判断与分解(综合题)

题目:判断关系模式 R(A,B,C,D,E) 满足第几范式,并分解为 BCNF。
假设

  • 函数依赖集:A→B, BC→D, D→E, E→A
  • 主键为 A

答案

  1. 判断范式
    • 1NF:满足(属性不可再分)。
    • 2NF:不满足。
      • 非主属性 B 完全依赖于主键 A(无部分依赖),但 DE 存在传递依赖(A→B→D→E→A)。
    • 3NF:不满足(存在传递依赖)。
    • BCNF:不满足(存在非主键决定因素,如 BC→D)。
  2. 分解为 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. 并发控制与封锁协议(详细解释)

题目:简述三级封锁协议及其解决的问题。
答案
三级封锁协议是并发控制中保证数据一致性的规则:

  1. 一级封锁协议(修改数据时加X锁)
    • 事务在修改数据前加排他锁(X锁),直到事务结束释放。
    • 解决:丢失修改 问题(两个事务同时修改同一数据,后提交的事务覆盖前者)。
  2. 二级封锁协议(一级 + 读取数据时加S锁)
    • 事务在读取数据前加共享锁(S锁),读完后立即释放。
    • 解决:脏读 问题(事务读取未提交的数据)。
  3. 三级封锁协议(一级 + 读取数据时加S锁,事务结束释放)
    • 事务在读取数据前加共享锁,直到事务结束释放。
    • 解决:不可重复读 问题(事务两次读取同一数据,中间被其他事务修改)。

5. 索引类型与优化(综合题)

题目:比较 B+ 树索引和哈希索引的优缺点,并说明适用场景。
答案

特性 B+ 树索引 哈希索引
数据结构 树形结构(有序) 哈希表(无序)
查询效率 高效(支持范围查询) 高效(等值查询)
适用场景 频繁范围查询、排序操作 频繁等值查询、无排序需求
存储空间 占用较大(存储树结构) 占用较小(存储哈希函数)
动态调整 支持动态扩容(树分裂) 哈希冲突时需扩容(性能下降)
'>