第6章 数据库设计基础知识6.1 数据库基本概念核心概念数据库系统DBS由数据库DB、数据库管理系统DBMS、数据库管理员DBA、应用程序与用户、数据五部分组成。三级模式结构外模式用户模式/子模式用户看到的数据视图多个概念模式逻辑模式全局逻辑结构唯一内模式存储模式物理存储结构唯一两级映像外模式-概念模式映像 →逻辑独立性概念模式-内模式映像 →物理独立性关键原理数据模型三要素数据结构、数据操作、数据约束条件。逻辑独立性概念模式改变时外模式可以不变。物理独立性存储结构改变时概念模式可以不变。典型技术/模型关系模型、层次模型、网状模型、面向对象模型考试常见形式选择三级模式层级判断、映像与独立性对应、模式数量判断案例可能要求分析数据独立性在系统演化中的价值论文数据架构设计、数据库选型章节中可引用高频考点与易错点类型内容✅ 高频两级映像分别对应哪种独立性✅ 高频概念模式唯一、外模式多个❌ 易错混淆“逻辑独立性”与“物理独立性”❌ 易错认为内模式也支持多个理解与记忆方法口诀外概逻辑、概内物理图示建议用户A 用户B↓ ↓外模式1 外模式2多个↓_________↓↓ 逻辑独立概念模式1个↓ 物理独立内模式1个6.2 关系数据库核心概念基本术语术语含义属性列域属性取值范围元组行/记录目/度属性个数候选码唯一标识元组的属性组主码选定的候选码外码引用其他关系的主码主属性包含在任一候选码中的属性全码全部属性构成候选码完整性约束实体完整性主键非空且唯一参照完整性外键要么为空要么引用已存在的主键值用户定义完整性业务规则如年龄0关系代数运算符号SQL类比选择σWHERE投影πSELECT指定列自然连接⋈JOIN自动匹配同名属性并∪UNION差-EXCEPT笛卡尔积×CROSS JOIN关键原理自然连接 vs 等值连接自然连接自动匹配同名属性列结果中去掉重复列等值连接需指定连接条件不自动去重典型技术/模型关系模型、关系代数查询优化考试常见形式选择关系代数表达式结果判断、术语定义匹配、外键约束判断案例结合SQL语句或代数表达式分析查询逻辑高频考点与易错点类型内容✅ 高频自然连接后属性数 R列数 S列数 - 公共属性列数✅ 高频σ选择行 vs π投影列❌ 易错自然连接不需要写连接条件❌ 易错外键可以与被参照主键不同名理解与记忆方法口诀σ行π列自然连接去重列对比记忆运算操作对象SQL关键字σ行WHEREπ列SELECT指定列6.3 关系数据库设计理论核心概念——范式NF范式核心要求消除的依赖1NF属性不可再分原子性复合/多值属性2NF满足1NF 非主属性完全依赖主键部分依赖3NF满足2NF 非主属性不传递依赖主键传递依赖BCNF满足3NF 所有决定因素都是候选键主属性的部分/传递依赖关键原理部分依赖复合主键的一部分就能决定某个非主属性例(学号, 课程号) → 姓名学号单独决定姓名传递依赖非主属性通过另一个非主属性依赖主键例学号 → 系名 → 系主任模式分解原则无损连接性分解后能通过连接恢复原关系保持函数依赖分解后不丢失原有的函数依赖典型技术/模型函数依赖图分析模式分解算法3NF分解、BCNF分解考试常见形式选择给定函数依赖判断最高范式等级案例模式分解、识别插入/删除/更新异常、提出规范化方案论文数据架构设计中的数据库建模合理性高频考点与易错点类型内容✅ 高频典型范式判断如R(A,B,C,D)AB→CC→D → 2NF✅ 高频部分依赖 vs 传递依赖的识别❌ 易错没有传递依赖 ≠ 3NF还要看是否存在主属性的部分依赖BCNF❌ 易错分解到3NF不一定能同时满足无损连接和保持依赖理解与记忆方法口诀1NF拆字段2NF消部分3NF消传递BCNF主属性也消除图示建议部分依赖 (学号,课程号) → 姓名↑学号 --------→ 姓名传递依赖 学号 → 系名 → 系主任└───────→ 系主任间接6.4 数据库设计步骤核心概念——六个阶段阶段核心任务核心产出需求分析收集业务规则、数据需求、处理需求确定系统边界数据流图DFD、数据字典、需求说明书概念结构设计抽象用户需求为信息世界模型局部E-R图 → 全局E-R图逻辑结构设计E-R图转换为关系模式表规范化后的关系模式、完整性约束物理设计确定存储结构、索引方案、数据分布索引设计、分区方案、存储参数数据库实施建库建表、数据加载、应用程序调试可运行的数据库和应用运行与维护监控优化、备份恢复、重组/重构性能报告、维护日志关键原理E-R图转关系模式规则必背联系类型转换方式1:1并入任一端或单独建表1:N将1的主键并入N端作为外键M:N单独建表两端主键组成联合主键合并E-R图冲突类型属性冲突类型/取值范围不一致命名冲突同名异义/异名同义结构冲突同一实体在不同局部图中属性不同重组 vs 重构重组优化物理存储整理碎片、重分区不改变逻辑结构重构修改逻辑结构加列、拆表可能影响应用程序典型技术/模型E-R图建模工具范式规范化3NF/BCNF索引策略B树/哈希/位图数据分区范围/列表/哈希考试常见形式选择阶段任务归属判断、产出物匹配、冲突类型识别案例E-R图绘制与修正、E-R图转关系模式、规范化问题分析论文数据库设计全过程、大型系统数据架构优化高频考点与易错点类型内容✅ 高频“确定系统边界” → 需求分析✅ 高频“关系规范化” → 逻辑设计✅ 高频“设计索引” → 物理设计❌ 易错概念设计产出是E-R图逻辑设计产出是关系模式❌ 易错M:N联系转换后必须单独建表不能并入任何一端❌ 易错重组物理 ≠ 重构逻辑理解与记忆方法口诀需概逻实维需求(DFD)→概念(E-R图)→逻辑(关系模式)→实施(建表)→维护(重组/重构)对比记忆阶段产出物常见错误认识需求分析数据流图❌ 认为是E-R图概念设计E-R图❌ 认为有外键逻辑设计关系模式❌ 认为有索引物理设计索引/分区❌ 认为有规范化6.5 数据库控制与高级技术核心概念事务ACID特性特性含义实现机制原子性全部执行或全部不执行UNDO日志一致性事务执行前后数据保持一致完整性约束 事务逻辑隔离性并发事务互不干扰锁机制 / MVCC持久性提交后的修改永久生效REDO日志并发控制问题丢失修改不可重复读读脏数据幻读NoSQL四大类型类型代表产品适用场景键值存储Redis缓存、会话管理文档型MongoDB半结构化数据、敏捷开发列族存储HBase大数据、高写入吞吐图数据库Neo4j社交网络、关系分析关键原理两段锁协议2PL扩展阶段只能加锁不能解锁收缩阶段只能解锁不能加锁保证事务的可串行化封锁粒度行锁、页锁、表锁粒度越细并发越高开销越大典型技术/模型X锁排他锁/ S锁共享锁MVCC多版本并发控制如MySQL InnoDB乐观锁版本号/CAS vs 悲观锁传统封锁数据库备份全量备份、增量备份、差异备份考试常见形式选择ACID特性与日志对应、NoSQL类型匹配、并发问题类型判断案例死锁分析、隔离级别与性能权衡、NoSQL选型依据论文高并发系统数据层设计、分布式数据库选型高频考点与易错点类型内容✅ 高频原子性 → UNDO持久性 → REDO✅ 高频脏读读未提交、不可重复读行级、幻读表级✅ 高频不同NoSQL类型的代表产品❌ 易错一致性不由日志保证而是由完整性约束和事务正确性保证❌ 易错隔离级别越高并发性能越低不是越高越好理解与记忆方法口诀原子撤UNDO持久重REDO隔离锁一致约束对比记忆隔离级别隔离级别脏读不可重复读幻读读未提交可能可能可能读已提交不可能可能可能可重复读不可能不可能可能部分DB解决可串行化不可能不可能不可能图示建议事务并发问题时间 →T1: 读A10 → 写A20 → 提交T2: 读A10脏读 → 读A20总结全章考点速查表小节选择题考点案例题考点论文可用方向6.1三级模式、两级映像数据独立性分析数据架构演化6.2关系代数、完整性约束查询代数表达模型选型6.3范式判断、依赖识别模式分解、异常消除数据建模规范6.4阶段产出物、转换规则E-R图转表、规范化完整设计流程6.5ACID、NoSQL、并发问题死锁分析、隔离级别高并发/分布式备考建议本章案例分析几乎必考一道范式或E-R图设计题建议动手练习近5年真题中的相关题目熟悉从函数依赖识别到模式分解的完整解题流程。