计算机系统基础知识(七):软件篇之数据库系统详解

计算机系统基础知识(七):软件篇之数据库系统详解 前言如果说操作系统是计算机的“灵魂”那么数据库系统就是信息化社会的“记忆”。在当今数据驱动的时代几乎所有企业级应用都离不开数据库——它负责数据的组织、存储、管理和高效访问。在系统架构设计师考试中数据库系统是核心考点之一。根据近5年真题统计该部分在上午选择题中约占6-8分下午案例分析中约占12-20分总分值占比达12%~18%且稳定在高位。考查内容涵盖数据库基本概念、关系数据库设计、事务管理、分布式数据库以及新兴数据库技术等多个方面。本文将依据《系统架构设计师教程第二版》的章节结构结合历年真题考点系统梳理数据库系统的核心知识并提供实践拓展案例帮助你在复习中抓住重点、突破难点。一、数据库系统概述1.1 数据库的基本概念数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库管理系统DBMS是位于用户与操作系统之间的数据管理软件它提供数据定义、数据操纵、数据库运行管理、数据组织与存储、数据库建立与维护等功能。数据库系统的特点数据结构化数据共享性高、冗余度低数据独立性高物理独立性与逻辑独立性统一的数据控制功能安全性、完整性、并发控制、故障恢复1.2 数据库管理系统的类型按照数据模型分类类型数据模型代表产品适用场景关系型关系模型二维表Oracle、MySQL、PostgreSQL传统企业应用、事务处理文档型文档模型JSON/XMLMongoDB、CouchDB内容管理、Web应用键值型键值对Redis、Memcached缓存、会话管理列族型列式存储HBase、Cassandra大数据分析图数据库图结构Neo4j、JanusGraph社交网络、推荐系统时序数据库时间序列InfluxDB、TDengine物联网、监控系统按照部署方式分类集中式数据库数据集中存储如传统Oracle分布式数据库数据分布多节点如TiDB、OceanBase云数据库托管云服务如AWS Aurora、阿里云PolarDB二、数据库模式与范式2.1 数据库的三级模式结构从数据库管理系统的角度数据库分为三级模式和两级映像┌─────────────────────────────────────┐│ 外模式用户视图 │ ← 用户看到的部分数据├─────────────────────────────────────┤│ 概念模式逻辑结构 │ ← 整个数据库的逻辑描述├─────────────────────────────────────┤│ 内模式物理存储 │ ← 数据在存储介质上的组织└─────────────────────────────────────┘概念模式数据库中全部数据的逻辑结构和特征的描述反映数据库的整体结构外模式也称用户模式或子模式是用户与数据库的接口描述用户需要使用的部分数据内模式也称存储模式是数据物理结构和存储方式的描述如索引、文件的组织方式两级映像外模式/概念模式映像保证数据的逻辑独立性概念模式/内模式映像保证数据的物理独立性典型真题2022下半年采用三级模式结构的数据库系统中如果对一个表创建聚簇索引那么改变的是数据库的 。A. 外模式 B. 模式 C. 内模式 D. 用户模式解析聚簇索引改变的是数据的物理存储顺序属于内模式的范畴。正确答案是C。2.2 数据模型的三要素数据模型是对现实世界数据特征的抽象包含三个要素数据结构描述数据的静态特征包括数据对象及其关系数据操作对数据的动态操作如查询、更新数据的约束条件数据完整性规则如实体完整性、参照完整性2.3 关系数据库的基本术语术语含义示例关系一张二维表Student表元组表中的一行一个学生记录属性表中的一列学号、姓名域属性的取值范围性别域{男,女}目/度属性的个数5个字段则目为5候选码能唯一标识元组的属性组学号、(姓名出生日期)主码选定的候选码学号主属性包含在候选码中的属性学号、姓名非主属性不包含在候选码中的属性年龄、班级外码引用其他表主码的属性班级编号引用班级表全码所有属性组成候选码极少见2.4 关系规范化与范式关系规范化是通过分解关系模式消除数据冗余和操作异常的过程。核心是函数依赖。函数依赖的公理系统Armstrong公理三条基本推理规则自反律若Y⊆X⊆U则X→Y增广律若X→Y且Z⊆U则XZ→YZ传递律若X→YY→Z则X→Z三条导出规则合并规则若X→YX→Z则X→YZ伪传递规则若X→YWY→Z则XW→Z分解规则若X→YZ⊆Y则X→Z典型真题2022下半年函数依赖的公理系统中的分解规则是指 为F所蕴涵。A. 若X→YY→Z则X→YB. 若Y⊆X⊆U则X→YC. 若X→YZ⊆Y则X→ZD. 若X→YY→Z则X→YZ解析分解规则的定义是若X→Y且Z⊆Y则X→Z。正确答案是C。范式级别范式条件说明1NF每个属性值都是不可分的原子值最基本的规范化2NF满足1NF且消除非主属性对码的部分依赖适用于复合码的情况3NF满足2NF且消除非主属性对码的传递依赖最常用的范式BCNF满足3NF且消除主属性对码的传递依赖更严格的3NF4NF满足BCNF且消除非平凡且非函数依赖的多值依赖处理多值依赖注意如果只考虑函数依赖关系模式的最高规范是BCNF如果考虑多值依赖最高规范是4NF。三、数据库设计数据库设计是建立数据库及其应用系统的技术过程通常分为六个阶段。3.1 需求分析阶段任务调查用户对系统数据和功能的需求确定新系统边界。需要获取的需求信息要求要保存哪些数据数据间的联系数据完整性要求处理要求实现什么操作功能处理频度、响应时间要求系统要求安全性要求、并发数、可扩充性要求方法采用结构化分析用数据流图DFD和数据字典DD描述。3.2 概念结构设计目标产生独立于计算机系统的概念模型通常用E-R图描述。E-R图的三要素实体现实世界中可区分的事物矩形框属性实体的特征椭圆框联系实体之间的关联菱形框有1:1、1:N、M:N三种类型概念结构设计步骤选择局部应用根据数据流图划分局部应用设计分E-R图为每个局部应用设计E-R图E-R图合并将所有分E-R图合并成全局E-R图合并时需解决的冲突属性冲突同一属性的类型、取值范围不一致命名冲突同名异义或异名同义结构冲突同一对象在不同图中被抽象为实体或属性不一致3.3 逻辑结构设计任务将概念模型转换为特定DBMS支持的数据模型通常是关系模型。E-R图向关系模式的转换规则实体转换每个实体转换为一个关系模式实体名→关系名属性→关系属性实体标识符→关系主码联系转换1:1联系可归并到任一方实体增加另一方主码和联系属性1:N联系归并到“多”的一方增加“一”方主码和联系属性M:N联系转换为独立的关系模式包含双方主码和联系属性主码为双方主码的组合3.4 物理结构设计任务为逻辑模型选择物理结构包括存储结构、存取路径索引等。索引策略聚簇索引改变数据物理存储顺序适合范围查询非聚簇索引保持数据物理顺序适合点查询典型真题创建聚簇索引改变的是内模式。四、事务管理事务是数据库的逻辑工作单位具有ACID四个特性原子性事务要么全做要么全不做一致性事务执行前后数据库完整性约束不被破坏隔离性并发事务相互隔离持久性事务提交后结果永久保存4.1 并发控制并发操作可能带来三类问题丢失更新两个事务同时修改同一数据一个更新被覆盖不可重复读同一事务两次读取同一数据结果不同读脏数据读到其他事务未提交的数据解决方案封锁协议封锁类型说明排他锁X锁加锁后可读可写其他事务不能加任何锁共享锁S锁加锁后只能读其他事务可加S锁但不能加X锁三级封锁协议一级协议修改数据前加X锁可防止丢失更新二级协议在一级基础上读数据前加S锁读完即释放可防止读脏数据三级协议在一级基础上读数据前加S锁事务结束释放可防止不可重复读4.2 故障与恢复数据库故障类型事务内部故障事务执行过程中出错系统故障系统崩溃内存信息丢失介质故障磁盘损坏计算机病毒恢复技术数据转储定期备份数据库静态转储 vs 动态转储全局转储 vs 增量转储日志文件记录事务对数据库的修改典型真题2022下半年假设系统中有正在运行的事务若要转储全部数据库则应采用 方式。A. 静态全局转储 B. 动态增量转储 C. 静态增量转储 D. 动态全局转储解析题目要求“有正在运行的事务”且“转储全部数据库”因此需允许并发操作的动态转储且需备份全部数据的全局转储。正确答案是D。五、分布式数据库系统5.1 基本概念分布式数据库物理上分布在计算机网络的不同节点逻辑上属于同一系统的数据库集合。分布式数据库的特点分布性数据存储在不同节点逻辑相关性数据逻辑上是一个整体自治性每个节点有自己的DBMS5.2 分布式数据库的体系结构分布式数据库采用分层的体系结构在传统三级模式基础上增加全局外模式全局用户的视图全局概念模式全局数据的逻辑结构分片模式数据如何分片分配模式分片如何分布到节点5.3 CAP理论与分布式数据库设计CAP理论分布式系统只能同时满足三者中的两个一致性C所有节点在同一时间看到相同数据可用性A每个请求都能获得响应分区容忍性P系统在网络分区时仍能继续运行典型分布式数据库选型CP系统选择一致性和分区容忍性如HBaseAP系统选择可用性和分区容忍性如CassandraCA系统选择一致性和可用性传统单机数据库5.4 NewSQL与分布式数据库NewSQL数据库结合SQL和分布式架构支持ACID事务和水平扩展如Google Spanner、TiDB、OceanBase。多点DMALL的实践案例挑战500微服务、10000数据库实例、近10PB数据运维成本高选型选择OceanBase分布式数据库收益数据压缩率达6:1存储成本降低透明扩展解决容量瓶颈基于Paxos协议实现RPO0、RTO30秒的高可用六、数据仓库与数据挖掘6.1 数据仓库的概念数据仓库是面向主题的、集成的、相对稳定的、反映历史变化的数据集合用于支持管理决策。数据仓库的特点面向主题围绕业务主题组织而非日常操作集成从多个异构数据源抽取、清洗、转换稳定数据主要是查询操作不经常修改反映历史变化保存历史数据用于趋势分析6.2 数据仓库的结构数据源层各类业务系统数据抽取层ETL抽取、转换、加载数据存储层数据仓库、数据集市数据展示层报表、OLAP、数据挖掘6.3 数据挖掘数据挖掘是从大量数据中提取隐含的、未知的、潜在有用的信息和知识的过程。常用技术关联分析如购物篮分析分类与预测决策树、神经网络聚类分析异常检测七、数据库技术的发展趋势7.1 数据库技术演进脉络时代代表技术特点1970s-1990s关系型数据库SQL、ACID事务2000sNoSQL数据库非结构化、高扩展、BASE2010sNewSQL数据库SQL分布式ACID2020s云原生数据库托管服务、弹性扩展7.2 NoSQL数据库分类类型特点代表产品适用场景文档型存储JSON/XML文档MongoDB、CouchDB内容管理、Web应用键值型简单KV存储Redis、Memcached缓存、会话管理列族型列式存储HBase、Cassandra大数据分析图数据库存储图结构Neo4j、JanusGraph社交网络、推荐系统7.3 时序数据库的实践案例杨凌美畅的时序数据库实践背景500条产线、150万测点需要实时监控和2年历史数据追溯挑战原有架构高可用缺失、查询性能波动、备份恢复困难解决方案引入TDengine企业版重构数据模型效果查询耗时从几十秒稳定到≤1秒告警全链路时延≤10秒数据压缩率提升存储成本降低可用性达到99.99%7.4 金融行业分布式数据库实践江南农商银行核心系统改造背景传统集中式架构难以满足海量数据、超高并发、异地容灾需求选型基于GaussDB分布式数据库改造信贷核算系统成果系统性能优于传统架构320%两地三中心架构RPO≤5秒RTO≤145秒应用迁移工具UGO实现98%以上语法自动转换为金融机构核心系统分布式转型提供范本八、历年考点分布与复习策略8.1 考点分布统计知识点占比考试频率难度关系规范化范式、函数依赖25%⭐⭐⭐⭐⭐中事务管理并发控制、恢复20%⭐⭐⭐⭐中数据库设计E-R图、转换18%⭐⭐⭐⭐中分布式数据库与CAP理论15%⭐⭐⭐高三级模式结构10%⭐⭐⭐低新兴数据库技术8%⭐⭐中数据仓库与数据挖掘4%⭐低8.2 高频考点总结三级模式与两级映像特别是内模式与物理存储的关系函数依赖与Armstrong公理自反律、增广律、传递律、分解规则范式判定1NF、2NF、3NF、BCNF的判定与分解E-R图向关系模式转换特别是1:1、1:N、M:N联系的转换规则事务ACID与并发控制封锁协议、可串行化调度数据库恢复静态转储vs动态转储、全局转储vs增量转储CAP理论分布式数据库选型的权衡8.3 复习策略建议打好基础理解三级模式、函数依赖等基本概念掌握计算范式判定、候选码求解是必考题型多做真题近5年真题反复练习每道题都要弄懂每个选项联系实际将理论与实际数据库选型结合如CAP理论在分布式系统中的权衡关注趋势了解NoSQL、NewSQL、云原生数据库的特点和应用场景九、实践拓展从考试到实战9.1 数据库选型的决策框架在实际架构设计中数据库选型需考虑以下因素考量维度关键问题对应技术选择数据模型数据结构化程度如何结构化→关系型半结构化→文档型一致性要求是否强一致性强一致性→关系型/NewSQL最终一致性→NoSQL并发规模QPS/TPS多高高并发→分布式数据库/键值型数据量级数据规模多大海量数据→分布式数据库/列族型事务需求是否需要复杂事务需要→关系型/NewSQL不需要→NoSQL实时性要求查询延迟多低极低延迟→内存数据库运维能力是否有专业DBA团队运维薄弱→云数据库托管服务9.2 性能优化实战技巧索引优化为频繁查询的字段创建索引复合索引考虑字段顺序最左前缀原则避免索引失效如函数运算、类型转换SQL优化避免SELECT *只取需要的字段减少JOIN表数量使用EXPLAIN分析执行计划分库分表水平分片按某字段哈希或范围分片垂直分片按业务模块拆分表读写分离主库写、从库读9.3 数据库发展趋势展望云原生数据库存算分离、弹性扩缩容、按需付费多模数据库支持多种数据模型关系型文档型图的统一数据库HTAP混合负载同时支持事务处理和分析处理AI增强数据库自动索引调优、智能参数配置结语数据库系统是计算机软件体系的核心支柱也是架构师必须深入掌握的领域。从关系数据库的基础理论到分布式数据库的复杂架构从范式分解的事务管理到CAP理论的系统权衡每一个知识点都在实际系统中有着广泛的应用。希望本文的梳理能帮助你在备考中抓住重点、突破难点顺利通过考试。同时也建议你在学习理论的同时多动手实践——在真实的数据库环境中设计几个表结构编写复杂的SQL查询观察事务并发的行为。理论与实践的结合才是掌握数据库系统的最佳途径。下一章预告我们将进入计算机网络基础知识的学习敬请期待