0
0
0
第7-8章精讲:数据库设计五阶段与数据库保护
文章摘要
|
第 7–8 章:数据库设计五阶段与数据库保护精讲
最后两章是"工程视角":怎么从零设计一个数据库应用系统,以及系统上线后如何保证它安全、可靠地运行。考试以简答题为主,工作里这是数据库工程师的日常。
第 7 章 数据库设计:从需求到落地的全流程
六个阶段(按序背,简答常青树)
- 需求分析:调查组织与业务,收集用户对数据和处理的需求。产出:需求说明书、数据流图(DFD)、数据字典(DD)。这是整个设计的基础,最困难、最耗时的阶段;
- 概念结构设计:把需求抽象成概念模型(E-R 图),独立于任何具体 DBMS。方法:先设计局部 E-R 图,再合并成全局 E-R 图;
- 逻辑结构设计:把 E-R 图转换为关系模式(用第 2 章的转换规则),再按第 6 章做规范化优化,最终确定表结构;
- 物理结构设计:确定存储结构、存取方法(索引选择)和存储位置;
- 数据库实施:建库建表(DDL)、数据装载、编写应用程序、试运行;
- 运行与维护:备份恢复、安全维护、性能监控调优。
记忆锚点:需求(要什么)→ 概念(画 E-R)→ 逻辑(转成表)→ 物理(怎么存)→ 实施(建出来)→ 维护(管起来)。
E-R 图合并的三类冲突
- 属性冲突:同一属性的域不同(如"学号"一边是数字一边是字符串);
- 命名冲突:同名异义(两个"号码"含义不同)、异名同义("学号"与"学生编号");
- 结构冲突:同一实体在不同局部图中抽象不一致(一边是实体一边是属性,或属性集合不同)。
E-R 图转关系模式规则(综合题评分点)
- 实体 → 关系模式,属性、码照搬;
- 1:1 联系:并入任一端,加另一端码作外码;
- 1:n 联系:并入 n 端,加 1 端码作外码;
- m:n 联系:单独建关系模式,码 = 两端码组合,联系属性一并放入。
第 8 章 数据库保护:事务、并发、恢复、安全
1. 事务与 ACID(必背)
事务:用户定义的数据库操作序列,是并发控制和恢复的基本单位,要么全做、要么全不做。
| 特性 | 含义 | 保证手段 |
|---|---|---|
| 原子性 A | 全做或全不做 | 恢复(UNDO) |
| 一致性 C | 执行前后数据库都一致 | 原子性+隔离性+应用正确 |
| 隔离性 I | 并发事务互不干扰 | 并发控制(封锁) |
| 持久性 D | 提交后永久生效 | 恢复(REDO) |
2. 并发调度的三类问题
- 丢失修改:A、B 同时改同一数据,B 的提交覆盖了 A 的修改;
- 不可重复读:A 两次读同一数据,期间 B 改了它 → 两次读到的值不同;
- 读脏数据: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 篇刷一遍,配合真题演练。祝学有所成,考试顺利!
