B 站更新|软考架构师案例篇・数据库篇第 1-2 集上线|数据库规范化|索引视图物化视图真题精讲

软考高级系统架构师案例分析,数据库板块是每年必考大题,分值稳定、考点套路清晰,把基础概念吃透,拿分性价比极高。

数据库篇一共规划 10 集,从数据库设计、范式规范化一路讲到 Redis、分布式锁、NoSQL 选型,最后加更向量数据库。本次一次性更新前两集,帮大家筑牢数据库案例题的底层根基。

💡配套课件 + XMind 知识架构图,gz号回复【思维导图】获取全集 xmind,回复【B站课件】获取全部课件

观看渠道:B 站搜索【自传‑软考架构师】,进入合集「案例分析‑数据库篇」观看。

📌第 3-1 集|数据库设计与规范化|三大异常 + 反规范化四方法

本集核心考点:数据库设计四阶段、规范化范式、三大异常、反规范化手段、数据不一致解决方案,附带2020 年 11 月真题完整拆解。

1. 数据库设计四大阶段(高频填空)

  1. 需求分析

    输入:当前 + 未来的数据需求、数据处理需求 输出:数据流图、数据字典、需求说明书

  2. 概念结构设计

    使用 E‑R 模型表达,核心是实体、属性、实体间关系,案例题 E‑R 图考点就在这里。

  3. 逻辑结构设计⭐真题重点

    输入:E‑R 图、转换规则、规范化理论 输出:关系模式、视图、完整性约束 任务:确定数据模型、E‑R 转关系、定义约束、设计用户视图。

  4. 物理设计

    结合 DBMS、硬件、操作系统,设计存储策略、索引、访问方案。

记忆提示:逻辑设计是承上启下的关键,2020 下半年真题直接在这里出题。

2. 规范化(范式理论)

规范化本质:不断拆分数据表,降低依赖,消除异常

  • 1NF:属性原子不可再分

  • 1NF→2NF:消除非主属性对候选键的部分依赖

  • 2NF→3NF:消除非主属性对候选键的传递依赖

  • 3NF→BCNF:消除主属性的部分 / 传递依赖

三大异常(简答必背)

  • 删除异常:删除某条记录,连带删掉其他有效信息

  • 修改异常:同一数据多份存储,修改时需要多处更新,漏改就不一致

  • 数据冗余:相同信息重复存储,浪费空间

规范化代价:表拆得越碎,查询时多表连接变多,查询性能下降。为了解决性能问题,就引出「反规范化」。

3. 反规范化 4 种方法

反规范化:在规范化基础上主动回退,用空间换查询速度

  1. 增加派生性冗余列(例:订单表增加总金额,由单价 × 数量计算得到)

  2. 增加冗余列(例:订单明细冗余商品名称,省去联表查询)

  3. 重新组表:把高频联合查询的多张表合并为宽表

  4. 水平分割表:按时间 / 范围拆表,如订单_2023、订单_2024

缺点:引入冗余,有数据不一致风险,增删改变慢;水平拆分还会提升程序复杂度。

4. 反规范化|数据不一致 3 套兜底方案

简答直接默写:

  1. 触发器同步

    :数据库层自动触发更新,实时性最好

  2. 应用程序同步

    :业务代码中同时更新多表,灵活,强依赖开发规范

  3. 批处理同步

    :定时任务批量对账,实现简单,存在时间延迟,适合容忍短暂不一致场景

✍️真题精讲|2020.11 真题

  1. 逻辑数据模型设计包含哪些任务?

①确定数据模型;②E‑R 图转换为指定数据模型;③定义完整性约束;④确定用户视图。

  1. 超类实体:提取多个实体的公共属性生成新实体,原有实体作为子类继承。

  2. 派生属性:属性值由本表其他字段计算得出,无需持久存储。


📌第 3-2 集|索引、视图与物化视图|B + 树图解 + 虚拟表与物化表分清

本集全是简答常客:索引利弊、B + 树原理、普通视图、物化视图,以及视图一致性方案。

1. 索引

一句话核心:牺牲写入性能,换取查询速度

  • 优点:大幅提升检索速度,避免全表扫描

  • 代价:增删改操作变慢,数据变更时索引也要同步维护

  • 常用结构:B 树、B + 树

  • 建索引原则:高频查询字段建索引,频繁更新的字段尽量不建索引

2. B + 树(数据库默认索引结构)

口诀:上层只管路,叶子才存数,链表串范围

  • 非叶子节点:只存索引键,充当路由路标,不存真实数据

  • 叶子节点:存放完整索引和数据,所有叶子节点通过有序链表相连

  • 优势:范围查询非常高效,顺着叶子链表遍历即可,不用回溯上层节点。

3. 视图(虚拟表)

定义:由一张或多张基表导出,视图本身不存储真实数据,查询时实时从基表计算。 可以理解为:给一段多表 JOIN 查询起了个名字,对外像一张表。

视图四大优点,简答直接背:

  1. 简化操作

    :复杂多表连接封装,用户直接查询视图

  2. 多角度查询

    :不同角色使用不同视图,查看同一份数据的不同维度

  3. 逻辑独立性

    :底层基表增加无关字段,上层视图不受影响,应用无需改动

  4. 安全保护

    :隐藏敏感列,只开放允许访问的字段

记忆口诀:简化、多角度、独立、安全

4. 物化视图

普通视图:虚拟、实时计算、不存数据 物化视图:物理存储计算结果,是实实在在落地的数据。

优点: ① 查询性能高;② 基表故障时仍可读取;③ 分布式场景减少跨节点网络传输。 缺点:占用存储空间,需要维护数据一致性,维护成本高。 适用场景:报表系统、数据仓库。

视图一致性兜底方案:应用同步、触发器、物化视图、消息队列,和反规范化的思路相通,可以放一起记忆。


✅备考小结

数据库案例题套路非常固定: 先考数据库设计流程、E‑R 建模;然后范式规范化、反规范化权衡;再到索引、视图、物化视图的取舍。 出题思路永远是权衡:一致性 ↔ 查询性能、写入开销 ↔ 查询速度。答题时尽量体现出这种取舍思维,更容易拿满分。

下一集更新:分区分表分库 & ShardingSphere,跨库查询是高频大题,记得持续关注!

相关推荐
IvorySQL13 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
刘胡子大叔13 小时前
SQL 脚本的导入顺序
数据库·sql
代码什么用13 小时前
Spring对IoC的实现
数据库·spring
hz5678916 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC16 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday16 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
半杯咖啡半行码16 小时前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略
数据库·qt
小米里的大麦16 小时前
16 MySQL 事务
数据库·mysql
西柚小萌新16 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
邓工说电17 小时前
智慧断路器安全吗?数据加密、离线保护与合规认证全解读
大数据·数据库·人工智能·智能断路器·炜晔科技