本页目录 · 15 节
- 一、分值定位
- 二、三级模式与两级映像(数据独立性的根)
- 三、关系代数
- 3.1 五种基本运算 + 常用导出运算
- 3.2 自然连接的"两问"(年年考)
- 3.3 查询优化(2018 下 7、2022 下 8)
- 3.4 SQL 对应(2018 下 5—6)
- 四、函数依赖与范式
- 4.1 基本概念
- 4.2 范式判定(按顺序逐级检查)
- 4.3 候选码求解(闭包法,3 步)
- 4.4 Armstrong 公理(2022 下 7)
- 4.5 反规范化(案例常考"为什么要冗余")
- 五、数据库设计六阶段
- 5.1 E-R 图合并冲突(三类)
- 5.2 E-R 转关系模式的规则
- 六、事务、并发与完整性
- 6.1 ACID
- 6.2 并发三大问题与隔离级别
- 6.3 封锁协议(2025 下 53)
- 6.4 完整性约束(三类)
- 七、分布式数据库
- 7.1 六层模式结构
- 7.2 四种透明性
- 7.3 数据分片方式
- 八、数据仓库、数据湖与湖仓一体
- 8.1 数据仓库四特征(必背)
- 8.2 OLTP vs OLAP
- 8.3 数据湖 vs 数据仓库(六维对比,论文/案例通用)
- 8.4 数据集市与 ETL
- 九、NoSQL
- 十、数据治理
- 十一、跨年真题定位索引
- 十二、典型陷阱
- 十三、答题模板
- 模板 A:候选码求解(综合知识 90 秒)
- 模板 B:范式判定(4 问)
- 模板 C:案例"逻辑数据模型 + 派生属性"(2020 下试题二)
- 模板 D:论文"论数据湖/湖仓一体/多源集成"
- 十四、自测清单
- 十五、来源与可信度
知识域 06 · 数据架构与数据库
题号指向
../01-年份索引/<年份>-套卷.md。标记:〔核〕/〔推〕/〔存疑〕。
一、分值定位
| 科目 | 频率 | 形态 |
|---|---|---|
| 综合知识 | 每套 4—8 题(6—12 分) | 关系代数、范式、候选码、三级模式、事务封锁、数据仓库特征、NoSQL 分类 |
| 案例分析 | 高频 | E-R 图补全、逻辑数据模型、派生属性、反规范化、DFD+数据字典 |
| 论文 | 高频(数据湖、湖仓一体、多模型数据库、多源异构集成、数据分片) | 需准备一套"数据平台/数据中台"素材 |
这一域计算题占比高(关系代数、范式判定、候选码),是综合知识里最"确定性"的得分点,必须练到全对。
二、三级模式与两级映像(数据独立性的根)
| 模式 | 别名 | 内容 | 视图 |
|---|---|---|---|
| 外模式 | 子模式/用户模式 | 用户看到的局部逻辑结构 | 视图(View) |
| 概念模式 | 模式/逻辑模式 | 全体数据的逻辑结构 | 基本表 |
| 内模式 | 存储模式 | 物理存储结构、存取方式 | 存储文件、索引 |
| 映像 | 保证的独立性 |
|---|---|
| 外模式/模式映像 | 逻辑独立性(模式变,外模式与程序不变) |
| 模式/内模式映像 | 物理独立性(存储变,模式不变) |
真题:2025 上 42、2024 下 38、2023 下 22、2022 下 5(三级模式 + 聚簇索引)。
三、关系代数
3.1 五种基本运算 + 常用导出运算
| 运算 | 符号 | 说明 |
|---|---|---|
| 并 | ∪ | 需同元(属性数相同、对应属性域相同) |
| 差 | − | 同上 |
| 笛卡尔积 | × | 元组数相乘、属性数相加 |
| 选择 | σ | 按行筛选 |
| 投影 | π | 按列筛选(自动去重) |
| 交 | ∩ | 导出(R−(R−S)) |
| 自然连接 | ⋈ | 按同名属性等值连接,并去掉重复列 |
| 除 | ÷ | 求"对所有…都…"的元组 |
3.2 自然连接的"两问"(年年考)
- 列数 = R 列数 + S 列数 − 公共属性数;
- 元组数 = 满足公共属性相等的组合数(可能少于/多于任一原表)。
母题(2021 下 7—8,〔核〕答案 C):R、S 各 3 列、1 个同名属性 → 结果 4 列,满足条件 3 个元组。
3.3 查询优化(2018 下 7、2022 下 8)
启发式规则(越靠前越好):
- 选择尽早(选择下推,先减小中间结果);
- 投影尽早(只保留需要的列);
- 把笛卡尔积与随后的选择合并为连接;
- 连接前先做选择,减少连接规模;
- 公共子表达式提取复用。
判定"哪个表达式效率最高":看中间结果是否最小,即是否先做 σ 和 π。
3.4 SQL 对应(2018 下 5—6)
- π 的列顺序 → SELECT 的列顺序(注意去掉重复列);
- 自然连接的等值条件 → WHERE 中的 AND 连接(不是 OR);
- 附加条件(如 R.A < S.F)与连接条件用 AND 串联。
四、函数依赖与范式
4.1 基本概念
- 函数依赖 X→Y:X 相同则 Y 必相同。
- 部分函数依赖:X 的真子集就能决定 Y。
- 传递函数依赖:X→Y、Y→Z 且 Y 不决定 X。
- 多值依赖:一组值对应另一组值的集合(4NF 处理)。
4.2 范式判定(按顺序逐级检查)
| 范式 | 条件 | 消除的问题 |
|---|---|---|
| 1NF | 属性不可再分(无重复组) | 表中有表 |
| 2NF | 1NF + 非主属性完全依赖候选码(无部分依赖) | 部分依赖 |
| 3NF | 2NF + 非主属性不传递依赖候选码 | 传递依赖 |
| BCNF | 每个决定因素都包含候选码(主属性也无部分/传递依赖) | 主属性对码的依赖 |
| 4NF | BCNF + 消除非平凡多值依赖 | 多值依赖 |
判定口诀:先找候选码 → 看有没有部分依赖(2NF)→ 看有没有传递依赖(3NF)→ 看每个决定因素是否含码(BCNF)。
4.3 候选码求解(闭包法,3 步)
- 把属性分成四类:L(只在左边出现)、R(只在右边)、LR(两边都出现)、N(都没出现);
- L + N 必在候选码中,求其闭包;若闭包 = 全属性集,则它就是唯一候选码;
- 若闭包不全,依次加入 LR 类属性再求闭包,能推出全集的即为候选码。
真题:2025 上 33、2024 下 30、2020 下 6—7、2019 下 6—7。
4.4 Armstrong 公理(2022 下 7)
- 自反律:Y⊆X ⇒ X→Y
- 增广律:X→Y ⇒ XZ→YZ
- 传递律:X→Y, Y→Z ⇒ X→Z
- 推论:合并规则、分解规则、伪传递规则。
4.5 反规范化(案例常考"为什么要冗余")
| 手段 | 做法 | 代价 |
|---|---|---|
| 增加冗余列 | 多存一份可推导的数据 | 更新异常风险 |
| 增加派生列 | 存汇总值/计算值 | 需维护一致性 |
| 重新组表 | 把常连接的表合并 | 存储冗余 |
| 分割表 | 水平/垂直分割 | 跨表查询复杂 |
使用场景:读多写少、查询性能瓶颈、报表/统计。真题 2024 上 8、2021 下试题三。
五、数据库设计六阶段
| 阶段 | 主要工作 | 产出 |
|---|---|---|
| 需求分析 | 收集数据需求与处理需求 | 数据字典、DFD |
| 概念结构设计 | E-R 建模(独立于 DBMS) | E-R 图 |
| 逻辑结构设计 | E-R 转关系模式、规范化、外模式 | 关系模式、视图 |
| 物理结构设计 | 索引、存储结构、分区 | 物理设计文档 |
| 数据库实施 | 建库建表、装载数据、编写程序 | 可运行库 |
| 运行与维护 | 监控、调优、备份恢复 | 运维记录 |
真题:2026 下 7、2025 下 45(阶段产出对应)。
5.1 E-R 图合并冲突(三类)
| 冲突 | 含义 | 例 |
|---|---|---|
| 属性冲突 | 同一属性的类型、取值范围、单位不同 | 重量用 kg / g |
| 结构冲突 | 同一对象在不同视图中的抽象层次/属性集合不同 | 一处是实体,一处是属性 |
| 命名冲突 | 同名异义 / 异名同义 | "员工"vs"培训师"指同一批人 |
母题(2021 下 5—6):员工/培训师属命名冲突(异名同义),合并时并入并删除冗余实体。
5.2 E-R 转关系模式的规则
- 1:1 → 可合并到任一端,或独立成表;
- 1:n → 在 n 端加外键;
- m:n → 独立成表,主键为两端主键的组合;
- 多元联系 → 独立成表;
- 超类/子类(2020 下试题二)→ 可一表(加类型字段)或多表(子类表继承主键)。
六、事务、并发与完整性
6.1 ACID
| 特性 | 含义 | 保障手段 |
|---|---|---|
| 原子性 | 全做或全不做 | 日志(UNDO) |
| 一致性 | 满足完整性约束 | 约束 + 应用逻辑 |
| 隔离性 | 并发事务互不干扰 | 锁 / MVCC |
| 持久性 | 提交后永久生效 | 日志(REDO)、刷盘 |
6.2 并发三大问题与隔离级别
| 问题 | 现象 |
|---|---|
| 脏读 | 读到未提交的数据 |
| 不可重复读 | 同一事务内两次读同一行结果不同(被改/删) |
| 幻读 | 同一事务内两次范围查询行数不同(被插入) |
| 隔离级别 | 脏读 | 不可重复读 | 幻读 |
|---|---|---|---|
| 读未提交 | ✗ | ✗ | ✗ |
| 读已提交 | ✓ | ✗ | ✗ |
| 可重复读 | ✓ | ✓ | ✗(MySQL 用间隙锁基本解决) |
| 串行化 | ✓ | ✓ | ✓ |
6.3 封锁协议(2025 下 53)
| 协议 | 规则 | 解决 |
|---|---|---|
| 一级封锁 | 修改前加 X 锁,事务结束释放 | 丢失修改 |
| 二级封锁 | 一级 + 读前加 S 锁,读完即释放 | 脏读 |
| 三级封锁 | 一级 + 读前加 S 锁,事务结束才释放 | 不可重复读 |
| 两段锁(2PL) | 扩展阶段只加锁、收缩阶段只解锁 | 保证可串行化 |
6.4 完整性约束(三类)
- 实体完整性:主键非空且唯一;
- 参照完整性:外键要么为空,要么引用存在的主键;
- 用户定义完整性:业务规则(如年龄 0—150)。
真题:2026 下 6、2024 下 13。
七、分布式数据库
7.1 六层模式结构
全局外模式
全局概念模式
分片模式(如何分片)
分布模式(分片放在哪些站点)
局部概念模式
局部内模式
7.2 四种透明性
| 透明性 | 用户无需关心 |
|---|---|
| 分片透明 | 数据如何分片 |
| 位置透明 | 分片存放在哪个站点 |
| 复制透明 | 副本有几份、放在哪 |
| 逻辑透明(局部映像透明) | 各站点用的是哪种数据模型 |
真题:2020 下 8、2019 下 8。
记忆:分片→位置→复制→逻辑,粒度由粗到细(教材顺序)。
7.3 数据分片方式
水平分片(按行)、垂直分片(按列)、混合分片;分片原则:完备性、可重构性、不相交性。
八、数据仓库、数据湖与湖仓一体
8.1 数据仓库四特征(必背)
| 特征 | 含义 |
|---|---|
| 面向主题 | 按分析主题组织(不是按业务过程) |
| 集成 | 多源数据经抽取、清洗、转换后统一 |
| 相对稳定(非易失) | 进入后长期保留,很少修改删除,只定期加载刷新 |
| 反映历史变化 | 记录随时间的变化,支持趋势分析 |
母题(2018 下 8,〔推〕答案 C):"数据一旦进入仓库后被长期保留、定期加载刷新、很少修改删除"→ 相对稳定性。
8.2 OLTP vs OLAP
| 维度 | OLTP | OLAP |
|---|---|---|
| 面向 | 日常事务处理 | 分析决策 |
| 数据 | 当前、明细 | 历史、汇总 |
| 操作 | 增删改查(短事务) | 复杂查询(读为主) |
| 设计 | 规范化(3NF) | 反规范化(星型/雪花) |
| 度量 | 吞吐量、响应时间 | 查询数据量、聚合速度 |
8.3 数据湖 vs 数据仓库(六维对比,论文/案例通用)
| 维度 | 数据仓库 | 数据湖 |
|---|---|---|
| 主要数据来源 | 业务系统关系数据 | 业务系统 + 移动端 + IoT + 社媒(结构化/半/非结构化) |
| 模式转换时机 | 写时模式(Schema-on-Write),入库前定义 | 读时模式(Schema-on-Read),用的时候才定义 |
| 存储成本 | 较高(专用 MPP) | 较低(对象存储/分布式文件系统) |
| 数据质量 | 高(已清洗、可信"单一信息源") | 原始数据,质量参差(需治理,否则成"数据沼泽") |
| 面对用户 | 分析师、管理层 | 数据科学家、算法工程师 |
| 主要支撑应用 | 报表、BI、固定指标 | 大数据处理、实时分析、机器学习、全文检索 |
湖仓一体(Lakehouse):在数据湖上增加事务(ACID)、schema 管理、索引与元数据层(如 Delta Lake/Iceberg/Hudi),兼具湖的灵活与仓的治理。真题 2022 下论文四。
8.4 数据集市与 ETL
- 数据集市:部门级的小型数据仓库(依赖型/独立型)。
- ETL:抽取(Extract)→ 转换(Transform)→ 加载(Load);现代变体 ELT。
- 维度建模:星型(事实表 + 维度表,冗余但查询快)、雪花(维度再规范化,省空间但连接多)。
九、NoSQL
| 类型 | 数据模型 | 代表 | 适用场景 |
|---|---|---|---|
| 键值(KV) | 哈希表,key→value | Redis、Memcached、Riak | 缓存、会话、计数器 |
| 列存储(宽列) | 列族,按列存储 | HBase、Cassandra | 海量稀疏数据、时序/日志 |
| 文档型 | JSON/BSON 文档 | MongoDB、CouchDB | 半结构化、内容管理、快速迭代 |
| 图 | 节点 + 边 | Neo4j、JanusGraph | 社交关系、知识图谱、路径查询 |
NoSQL 的优点:避免不必要复杂性、高吞吐、水平扩展(低端硬件集群)、避免昂贵对象-关系映射。
缺点:数据模型与查询语言缺乏数学验证、不支持 ACID(多数为 BASE)、功能简单、无统一查询模型。
真题:2018 下论文四、2025 上论文三(多模型数据库)、2024 下选做 2(MongoDB + HDFS)。
十、数据治理
| 概念 | 要点 |
|---|---|
| DCMM | 数据管理能力成熟度评估模型,8 个能力域:数据战略、数据治理、数据架构、数据应用、数据安全、数据质量、数据标准、数据生存周期;5 个成熟度等级 |
| 数据分级分类 | 按敏感度分级(公开/内部/敏感/核心),分类分级后差异化保护 |
| 数据质量 | 完整性、准确性、一致性、及时性、唯一性、有效性 |
| 数据资产 | 可控制、可计量、能带来经济价值的数据资源 |
真题:2022 下 18—19、2024 下 25(数据安全分级分类)、2024 下 9(数据安全治理)。
十一、跨年真题定位索引
| 年份 | 题号/案例/论文 | 考点 |
|---|---|---|
| 2026 下 | 6 / 7 | 完整性约束、数据库设计阶段 |
| 2026 下 | 论文二 | 数据湖设计与实践 |
| 2026 上 | 10 / 37 / 41 / 52—53 | 范式、E-R 基数、自然连接、实体类型、关系模型 |
| 2025 下 | 7 / 8 / 45 / 53 | 关系代数差集、关系模型、设计阶段产出、封锁协议 |
| 2025 下 | 论文 1 | 云原生数据库 |
| 2025 上 | 6 / 33 / 42 | 关系代数、候选码、三级模式 |
| 2025 上 | 论文 3 | 多模型数据库 |
| 2024 下 | 13 / 24 / 28 / 30 / 38 | 完整性约束、关系代数、自然连接、候选码、三级模式 |
| 2024 下 | 选做 2 / 论文 3 | MongoDB/HDFS、多源异构数据集成 |
| 2024 上 | 4—8 | 2NF、笛卡尔积、事务特性、关系代数交集、反规范化 |
| 2023 下 | 5 / 6 / 8 / 22 | 2NF、4NF、SQL 分组过滤、三级模式 |
| 2023 下 | 选做 3 / 论文 2 | Hibernate ORM、多源数据集成 |
| 2022 下 | 5—8 / 18—19 | 三级模式聚簇索引、转储、Armstrong 公理、关系代数等价、数据资产、DCMM |
| 2022 下 | 试题二 / 论文四 | DFD+ER+数据字典、湖仓一体 |
| 2021 下 | 5—8 | E-R 合并冲突、自然连接 |
| 2021 下 | 试题三 | 反规范化 + Redis |
| 2020 下 | 5—8 | 派生属性、函数依赖候选键、分布式数据库透明性 |
| 2020 下 | 试题二 / 论文一 | 逻辑数据模型/超类实体/派生属性、数据分片 |
| 2019 下 | 5—8 | 存储过程、函数依赖分解、分布式数据库模式 |
| 2019 下 | 论文三 | 数据湖技术 |
| 2018 下 | 5—8 | 关系代数→SQL、查询优化、数据仓库特征 |
| 2018 下 | 案例二 / 论文四 | 顶层 DFD + ERD、NoSQL |
十二、典型陷阱
- 投影是否去重:关系代数投影自动去重,SQL 的 SELECT 默认不去重(需 DISTINCT)。这是最容易错的点。
- 自然连接列数:忘记"去掉重复列",直接用 R 列 + S 列。
- 2NF vs 3NF:2NF 消除部分依赖,3NF 消除传递依赖;题干若说"非主属性依赖非主属性"→传递→违反 3NF。
- BCNF 与 3NF 的差别:BCNF 连"主属性对候选码的依赖"也禁止。
- 候选码求解遗漏 N 类属性:只在左边和都不出现的属性一定在码中。
- 一级封锁协议解决的是"丢失修改",不是脏读(二级才解决脏读)。
- 两段锁保证可串行化,但不保证不发生死锁。
- 三级模式对应对象:外模式→视图,模式→基本表,内模式→存储文件。别把"视图"归到模式。
- 逻辑独立性 vs 物理独立性:外模式/模式→逻辑;模式/内模式→物理。
- 数据仓库"相对稳定"不等于"不变化":它定期加载刷新,但很少修改删除。
- 数据湖不等于"数据沼泽":不治理才是沼泽;湖仓一体正是补治理短板。
- NoSQL 不支持 ACID 是普遍特征,但个别产品(如 MongoDB 4.0+)已支持多文档事务,答题时按教材口径"多数不支持强事务"。
十三、答题模板
模板 A:候选码求解(综合知识 90 秒)
① 列四类:只在左(L)、只在右(R)、两边都有(LR)、都没有(N)
② 初始码 = L ∪ N,求闭包
③ 闭包 = 全集 → 唯一候选码;否则逐个并入 LR 属性再求闭包
④ 若多个组合都成立 → 多个候选码;从中选一个作主码
模板 B:范式判定(4 问)
问 1:有重复组/多值属性吗?→ 有则非 1NF
问 2:候选码是组合码吗?非主属性是否只依赖其中一部分?→ 是则非 2NF
问 3:非主属性是否依赖另一个非主属性?→ 是则非 3NF
问 4:是否存在不含候选码的决定因素?→ 是则非 BCNF
模板 C:案例"逻辑数据模型 + 派生属性"(2020 下试题二)
① 找实体:题干中的名词,能独立存在且有多个实例的
② 找联系:动词 + 基数(1:1 / 1:n / m:n),m:n 独立成表
③ 定主键:每个实体给唯一标识;组合码写清
④ 派生属性:可由其它属性计算得出(如"总价=单价×数量""年龄=当前日期−出生日期"),
单独标注"派生",说明存储与否的取舍(存→查询快但需维护;不存→实时算)
⑤ 外键与参照完整性:逐一写明级联规则(级联删除/置空/限制)
模板 D:论文"论数据湖/湖仓一体/多源集成"
一、背景(300 字):数据量(TB/PB)、源系统数量、原有数仓瓶颈
二、技术选型(500 字):六维对比(来源/模式转换时机/成本/质量/用户/应用)说明为什么选湖
三、架构(700 字): ingestion(批+流)→ 存储分层(ODS/DWD/DWS/ADS 或 raw/cleaned/curated)
→ 元数据与权限 → 计算引擎(Spark/Flink)→ 服务层
四、治理(300 字):数据标准、质量规则、血缘、分级分类、生命周期
五、效果(200 字):报表时效从 T+1 到分钟级、存储成本降 X%、支撑 X 个 AI 场景
十四、自测清单
- [ ] 说出三级模式两级映像,并各举一个对象
- [ ] 10 秒内算出自然连接的列数与元组数
- [ ] 背出查询优化 5 条启发式规则
- [ ] 用闭包法 2 分钟求出一个关系的全部候选码
- [ ] 判定 1NF→BCNF 的四个条件,并能举例说明违反
- [ ] 说出 E-R 合并三类冲突并各举一例
- [ ] 说出 ACID 与三种并发问题、四级隔离级别
- [ ] 说出三级封锁协议与两段锁
- [ ] 说出分布式数据库六层模式与四种透明性
- [ ] 说出数据仓库四特征、数据湖六维对比
- [ ] 说出 NoSQL 四类及各自适用场景
十五、来源与可信度
- 关系代数、范式、封锁协议、三级模式等为教材标准内容,可信度高。
- 2022 下 5—8 为〔推〕(来源仅给部分答案),2024 上 4—8 为考点还原,具体选项以套卷为准。
- 数据湖/湖仓一体的六维对比取自 2019 下论文三的官方写作要点(六个方面),并补齐"数据质量"维度。