0
0
0

第7-8章精讲:数据库设计五阶段与数据库保护

2026-10-19
文章摘要
|

第 7–8 章:数据库设计五阶段与数据库保护精讲

最后两章是"工程视角":怎么从零设计一个数据库应用系统,以及系统上线后如何保证它安全、可靠地运行。考试以简答题为主,工作里这是数据库工程师的日常。

第 7 章 数据库设计:从需求到落地的全流程

六个阶段(按序背,简答常青树)

  1. 需求分析:调查组织与业务,收集用户对数据和处理的需求。产出:需求说明书、数据流图(DFD)、数据字典(DD)。这是整个设计的基础,最困难、最耗时的阶段;
  2. 概念结构设计:把需求抽象成概念模型(E-R 图),独立于任何具体 DBMS。方法:先设计局部 E-R 图,再合并成全局 E-R 图;
  3. 逻辑结构设计:把 E-R 图转换为关系模式(用第 2 章的转换规则),再按第 6 章做规范化优化,最终确定表结构;
  4. 物理结构设计:确定存储结构、存取方法(索引选择)和存储位置;
  5. 数据库实施:建库建表(DDL)、数据装载、编写应用程序、试运行;
  6. 运行与维护:备份恢复、安全维护、性能监控调优。

记忆锚点:需求(要什么)→ 概念(画 E-R)→ 逻辑(转成表)→ 物理(怎么存)→ 实施(建出来)→ 维护(管起来)。

E-R 图合并的三类冲突

  • 属性冲突:同一属性的域不同(如"学号"一边是数字一边是字符串);
  • 命名冲突:同名异义(两个"号码"含义不同)、异名同义("学号"与"学生编号");
  • 结构冲突:同一实体在不同局部图中抽象不一致(一边是实体一边是属性,或属性集合不同)。

E-R 图转关系模式规则(综合题评分点)

  • 实体 → 关系模式,属性、码照搬;
  • 1:1 联系:并入任一端,加另一端码作外码;
  • 1:n 联系:并入 n 端,加 1 端码作外码;
  • m:n 联系:单独建关系模式,码 = 两端码组合,联系属性一并放入。

第 8 章 数据库保护:事务、并发、恢复、安全

1. 事务与 ACID(必背)

事务:用户定义的数据库操作序列,是并发控制和恢复的基本单位,要么全做、要么全不做。

特性 含义 保证手段
原子性 A 全做或全不做 恢复(UNDO)
一致性 C 执行前后数据库都一致 原子性+隔离性+应用正确
隔离性 I 并发事务互不干扰 并发控制(封锁)
持久性 D 提交后永久生效 恢复(REDO)

2. 并发调度的三类问题

  1. 丢失修改:A、B 同时改同一数据,B 的提交覆盖了 A 的修改;
  2. 不可重复读:A 两次读同一数据,期间 B 改了它 → 两次读到的值不同;
  3. 读脏数据:A 读到 B 尚未提交的修改,随后 B 回滚 → A 读到的是不存在的值。

3. 封锁与两段锁协议

  • X 锁(排它锁/写锁):独占,别人不能读不能写;
  • S 锁(共享锁/读锁):可共享读,但不能写。S 与 S 相容,X 与谁都不相容(相容矩阵高频选择题);
  • 两段锁协议:事务先只加锁(扩展阶段),后只解锁(收缩阶段),遵守它可保证调度的可串行化。

4. 故障与恢复

  • 故障三类:事务故障、系统故障(断电)、介质故障(磁盘损坏);
  • 恢复两大技术:数据转储(定期做后备副本:海量/增量、静态/动态)+ 日志文件(记录每次修改,先写日志后写库);
  • 恢复策略:故障发生时,未完成的事务 UNDO 撤销,已提交的事务 REDO 重做。

5. 安全性与完整性(一字之差,方向相反)

  • 安全性:防非法用户——用户标识鉴别、存取控制(GRANT 授权 / REVOKE 收权)、视图机制、审计;
  • 完整性:防不合语义的数据——实体完整性(主码)、参照完整性(外码)、用户定义完整性(CHECK 等)。

记忆法:安全管"人",完整管"数据"。

结语:整门课的收束

到此,学习指南 8 篇完成。回顾整条主线:认识数据库(1)→ 建模 E-R(2)→ 数学基础(3)→ SQL 建表(4)→ SQL 查询更新(5)→ 设计优化(6)→ 工程流程(7)→ 运行保障(8)。

接下来建议:把备考系列 8 篇刷一遍,配合真题演练。祝学有所成,考试顺利!

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

评论

欢迎来到我的博客!