<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>数据库 on Liangweidong's blog</title><link>https://liangweidonggood.github.io/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/</link><description>Recent content in 数据库 on Liangweidong's blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Mon, 01 Jan 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://liangweidonggood.github.io/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/index.xml" rel="self" type="application/rss+xml"/><item><title>08-数据库设计</title><link>https://liangweidonggood.github.io/p/08-shu-ju-ku-she-ji/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://liangweidonggood.github.io/p/08-shu-ju-ku-she-ji/</guid><description>&lt;h1 id="08-数据库设计基于第8小时"&gt;08-数据库设计（基于第8小时）
&lt;/h1&gt;
 &lt;blockquote&gt;
 &lt;p&gt;软考-系统架构设计师 | 第2篇 架构设计专业知识
出题形式：单项选择题 + 案例分析题 | 分值占比：4-8 分
教材参考：第8章&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="0-考点分析"&gt;0. 考点分析
&lt;/h2&gt;&lt;p&gt;本小时主要学习数据库基础概念、关系数据库、数据库设计、应用程序与数据库交互、NoSQL数据库等内容。考察侧重概念知识。知识点会涉及单选题（约占2-5分）和案例题（25分）。&lt;/p&gt;
&lt;p&gt;作为一名合格的系统架构师，必须掌握数据库设计的基本概念和方法。系统架构设计师考试中的一些案例分析题会来自本小时的内容。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-核心知识点"&gt;1. 核心知识点
&lt;/h2&gt;&lt;h3 id="11-数据库基础概念"&gt;1.1 数据库基础概念
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;4大基础术语&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;术语&lt;/th&gt;
					&lt;th&gt;定义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;数据（Data）&lt;/td&gt;
					&lt;td&gt;描述事物的符号记录（文字、图形、图像、声音、语言）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据库系统（DBS）&lt;/td&gt;
					&lt;td&gt;采用数据库技术，有组织、动态存储大量相关联数据的计算机系统&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据库（DB）&lt;/td&gt;
					&lt;td&gt;统一管理的、长期储存在计算机内的、有组织的相关数据的集合&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据库管理系统（DBMS）&lt;/td&gt;
					&lt;td&gt;数据库系统的核心软件，是相互关联的数据集合+访问这些数据的软件&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;DBMS分类3类&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RDBS（关系数据库系统）&lt;/li&gt;
&lt;li&gt;OODBS（面向对象的数据库系统）&lt;/li&gt;
&lt;li&gt;ORDBS（对象关系数据库系统）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3大发展阶段&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;阶段&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
					&lt;th&gt;缺点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;人工管理&lt;/td&gt;
					&lt;td&gt;数据量少、不保存、无软件系统处理&lt;/td&gt;
					&lt;td&gt;应用程序与数据依赖性强、数据冗余&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;文件系统&lt;/td&gt;
					&lt;td&gt;数据可长期保留、不属于特定应用、文件组织多样化&lt;/td&gt;
					&lt;td&gt;数据冗余、不一致性、数据孤立&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据库系统&lt;/td&gt;
					&lt;td&gt;复杂数据模型、高数据独立性&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;数据模型3要素&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数据结构&lt;/li&gt;
&lt;li&gt;数据操作&lt;/li&gt;
&lt;li&gt;数据的约束条件&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;数据约束3类&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;实体完整性：实体的主属性不能取空值&lt;/li&gt;
&lt;li&gt;参照完整性：外键参照的完整性（要么为空，要么出现在被参照关系中）&lt;/li&gt;
&lt;li&gt;用户定义完整性：具体应用所对应的数据约束（如软考成绩0-75）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DBMS主要功能&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数据定义&lt;/li&gt;
&lt;li&gt;数据库操作&lt;/li&gt;
&lt;li&gt;数据库运行管理&lt;/li&gt;
&lt;li&gt;数据组织、存储和管理&lt;/li&gt;
&lt;li&gt;数据库的建立和维护&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-三级模式两级映像"&gt;1.2 三级模式两级映像
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;三级模式&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;模式&lt;/th&gt;
					&lt;th&gt;别名&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;概念模式&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
					&lt;td&gt;全体数据的逻辑结构和特征，所有用户的公共数据视图&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;外模式&lt;/td&gt;
					&lt;td&gt;子模式/用户模式&lt;/td&gt;
					&lt;td&gt;用户看到或使用的那部分数据的逻辑结构&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;内模式&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
					&lt;td&gt;数据物理结构和存储方式的描述&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;两级映像&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;映像&lt;/th&gt;
					&lt;th&gt;独立性&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;概念模式/内模式映像&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;物理独立性&lt;/strong&gt;：数据物理存储改变，应用程序不变&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;外模式/概念模式映像&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;逻辑独立性&lt;/strong&gt;：数据逻辑结构改变，应用程序不变&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="13-关系数据库基本概念"&gt;1.3 关系数据库基本概念
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;术语&lt;/th&gt;
					&lt;th&gt;定义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;属性（Attribute）&lt;/td&gt;
					&lt;td&gt;描述事物的特征&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;域（Domain）&lt;/td&gt;
					&lt;td&gt;每个属性的取值范围&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;目/度（Degree）&lt;/td&gt;
					&lt;td&gt;关系中属性的个数&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;候选码（Candidate Key）&lt;/td&gt;
					&lt;td&gt;能唯一标识一个元组的属性或属性组&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;主码（Primary Key）&lt;/td&gt;
					&lt;td&gt;从多个候选码中选定一个&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;主属性&lt;/td&gt;
					&lt;td&gt;包含在任何候选码中的属性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;外码（Foreign Key）&lt;/td&gt;
					&lt;td&gt;不是本关系码但是其他关系码的属性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;全码（All-key）&lt;/td&gt;
					&lt;td&gt;所有属性组都是候选码&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="14-关系代数运算"&gt;1.4 关系代数运算
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;4类运算符&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;集合运算符&lt;/li&gt;
&lt;li&gt;专门的关系运算符&lt;/li&gt;
&lt;li&gt;算术比较符&lt;/li&gt;
&lt;li&gt;逻辑运算符&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;考试重点：集合运算符 + 专门的关系运算符&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;集合运算符&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;运算符&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
					&lt;th&gt;解释&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;∪&lt;/td&gt;
					&lt;td&gt;并&lt;/td&gt;
					&lt;td&gt;属于R或属于S的元组&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;－&lt;/td&gt;
					&lt;td&gt;差&lt;/td&gt;
					&lt;td&gt;属于R但不属于S的元组&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;∩&lt;/td&gt;
					&lt;td&gt;交&lt;/td&gt;
					&lt;td&gt;属于R同时又属于S的元组&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;×&lt;/td&gt;
					&lt;td&gt;笛卡尔积&lt;/td&gt;
					&lt;td&gt;n+m列，K1×K2个元组&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;专门的关系运算符&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;运算符&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
					&lt;th&gt;解释&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;σ&lt;/td&gt;
					&lt;td&gt;选择&lt;/td&gt;
					&lt;td&gt;取得关系R中符合条件的&lt;strong&gt;行&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;π&lt;/td&gt;
					&lt;td&gt;投影&lt;/td&gt;
					&lt;td&gt;取得关系R中符合条件的&lt;strong&gt;列&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;⋈&lt;/td&gt;
					&lt;td&gt;连接&lt;/td&gt;
					&lt;td&gt;等值连接/自然连接（特殊等值连接，去重）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;÷&lt;/td&gt;
					&lt;td&gt;除&lt;/td&gt;
					&lt;td&gt;给定R(X,Y)和S(Y,Z)，结果P(X)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;外连接（扩展运算）&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;运算符&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;左外连接 ⟕&lt;/td&gt;
					&lt;td&gt;保留左侧关系所有不匹配元组，用null填充右侧属性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;右外连接 ⟖&lt;/td&gt;
					&lt;td&gt;保留右侧关系所有不匹配元组，用null填充左侧属性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;完全外连接 ⟗&lt;/td&gt;
					&lt;td&gt;完成左外连接和右外连接的操作&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="15-函数依赖"&gt;1.5 函数依赖
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;定义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;函数依赖&lt;/td&gt;
					&lt;td&gt;X→Y：对任意元组u,v，u[X]=v[X] ⇒ u[Y]=v[Y]&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;平凡函数依赖&lt;/td&gt;
					&lt;td&gt;X→Y，但Y⊆X&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;非平凡函数依赖&lt;/td&gt;
					&lt;td&gt;X→Y，Y⊄X&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;完全函数依赖&lt;/td&gt;
					&lt;td&gt;X→Y，X的任何真子集都不能函数决定Y&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;部分函数依赖&lt;/td&gt;
					&lt;td&gt;X→Y，但X的某个真子集也能函数决定Y&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;传递依赖&lt;/td&gt;
					&lt;td&gt;X→Y，Y→Z，且Y不函数决定X，则Z传递依赖于X&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Armstrong公理系统3条推理规则&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A1 自反律：若Y⊆X⊆U，则X→Y&lt;/li&gt;
&lt;li&gt;A2 增广律：若X→Y，且Z⊆U，则XZ→YZ&lt;/li&gt;
&lt;li&gt;A3 传递律：若X→Y，Y→Z，则X→Z&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3条导出规则&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;合并规则：X→Y，X→Z ⇒ X→YZ&lt;/li&gt;
&lt;li&gt;伪传递规则：X→Y，WY→Z ⇒ XW→Z&lt;/li&gt;
&lt;li&gt;分解规则：X→Y，Z⊆Y ⇒ X→Z&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="16-关系数据库规范化范式"&gt;1.6 关系数据库规范化（范式）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;4大范式（1NF→BCNF）&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;范式&lt;/th&gt;
					&lt;th&gt;条件&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;1NF&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;每个分量是不可再分的数据项&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;2NF&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;1NF + 每一个非主属性&lt;strong&gt;完全依赖&lt;/strong&gt;主码&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;3NF&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;2NF + 消除非主属性对主码的&lt;strong&gt;传递函数依赖&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;BCNF&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;1NF + 每个属性都不传递依赖于R的候选码&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;关系&lt;/strong&gt;：BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;候选码判断方法&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;看哪个属性只在依赖集F的&amp;quot;→&amp;ldquo;左边出现过，该关系的候选码必定包含那个属性&lt;/li&gt;
&lt;li&gt;例：F={A1→A2, A1→A3, A3→A4, A1A5→A6}，只在左边出现的是A1和A5，所以候选码为&lt;strong&gt;A1A5&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="17-事务管理acid"&gt;1.7 事务管理（ACID）
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;特性&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;原子性（Atomicity）&lt;/td&gt;
					&lt;td&gt;事务在数据库中要么全做，要么全都不做&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;一致性（Consistency）&lt;/td&gt;
					&lt;td&gt;事务执行使数据库从一个一致性状态变到另一个一致性状态&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;隔离性（Isolation）&lt;/td&gt;
					&lt;td&gt;一个事务的执行不能被其他事务干扰&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;持久性（Durability）&lt;/td&gt;
					&lt;td&gt;事务一旦提交，对数据库的改变必须是永久的&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;SQL事务语句&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BEGIN TRANSACTION：事务开始&lt;/li&gt;
&lt;li&gt;COMMIT：事务提交（写入磁盘）&lt;/li&gt;
&lt;li&gt;ROLL BACK：事务回滚&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="18-并发控制"&gt;1.8 并发控制
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;两种封锁类型&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;封锁&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;X封锁（排他型）&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;事务T对数据A实现X封锁，只允许T读和修改，其他事务必须等T解除X封锁&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;S封锁（共享型）&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;事务T对数据A实现S封锁，允许T读但不能修改，所有S封锁解除前不允许任何X封锁&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="19-数据库备份与恢复"&gt;1.9 数据库备份与恢复
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;4种备份分类&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;分类&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;是否允许并发&lt;/td&gt;
					&lt;td&gt;静态备份&lt;/td&gt;
					&lt;td&gt;简单，但降低数据库可用性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;动态备份&lt;/td&gt;
					&lt;td&gt;备份和用户事务可并发，但后援副本可能不保证正确&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;备份范围&lt;/td&gt;
					&lt;td&gt;海量备份&lt;/td&gt;
					&lt;td&gt;每次备份全部数据库&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;增量备份&lt;/td&gt;
					&lt;td&gt;只备份上次更新过的数据（适合大数据量频繁事务）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;4类故障&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;事务故障 → UNDO + REDO&lt;/li&gt;
&lt;li&gt;系统故障&lt;/li&gt;
&lt;li&gt;介质故障 → 装入副本+日志执行撤销/重做&lt;/li&gt;
&lt;li&gt;计算机病毒&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="110-数据库设计步骤"&gt;1.10 数据库设计步骤
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;6步骤&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用户需求分析&lt;/li&gt;
&lt;li&gt;概念结构设计&lt;/li&gt;
&lt;li&gt;逻辑结构设计&lt;/li&gt;
&lt;li&gt;物理结构设计&lt;/li&gt;
&lt;li&gt;应用程序设计&lt;/li&gt;
&lt;li&gt;运行维护&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;E-R图3要素&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;实体（型）：矩形框&lt;/li&gt;
&lt;li&gt;属性：椭圆形&lt;/li&gt;
&lt;li&gt;实体之间联系：菱形框&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;E-R图合并时需解决3类冲突&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;属性冲突&lt;/li&gt;
&lt;li&gt;命名冲突&lt;/li&gt;
&lt;li&gt;结构冲突&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="111-商业智能bi"&gt;1.11 商业智能（BI）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;BI = 数据仓库 + OLAP + 数据挖掘&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;数据仓库4大关键特征&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;面向主题&lt;/li&gt;
&lt;li&gt;集成的&lt;/li&gt;
&lt;li&gt;非易失的&lt;/li&gt;
&lt;li&gt;时变的&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;传统数据库 vs 数据仓库&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;比较&lt;/th&gt;
					&lt;th&gt;传统数据库&lt;/th&gt;
					&lt;th&gt;数据仓库&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;数据内容&lt;/td&gt;
					&lt;td&gt;当前值&lt;/td&gt;
					&lt;td&gt;历史的、归档的、归纳的、计算的数据&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据目标&lt;/td&gt;
					&lt;td&gt;面向业务操作&lt;/td&gt;
					&lt;td&gt;面向主体域，分析应用&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据特性&lt;/td&gt;
					&lt;td&gt;动态变化、可更新&lt;/td&gt;
					&lt;td&gt;静态、不能直接更新&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;使用频率&lt;/td&gt;
					&lt;td&gt;高&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;OLTP vs OLAP&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;项目&lt;/th&gt;
					&lt;th&gt;OLTP&lt;/th&gt;
					&lt;th&gt;OLAP&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;用户&lt;/td&gt;
					&lt;td&gt;操作人员、低层管理人员&lt;/td&gt;
					&lt;td&gt;决策人员、高级管理人员&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;功能&lt;/td&gt;
					&lt;td&gt;日常操作处理&lt;/td&gt;
					&lt;td&gt;分析决策&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;DB设计&lt;/td&gt;
					&lt;td&gt;面向应用&lt;/td&gt;
					&lt;td&gt;面向主题&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据&lt;/td&gt;
					&lt;td&gt;当前、细节、二维&lt;/td&gt;
					&lt;td&gt;历史、聚集、多维&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;存取&lt;/td&gt;
					&lt;td&gt;读/写数十条&lt;/td&gt;
					&lt;td&gt;读上百万条&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;工作单位&lt;/td&gt;
					&lt;td&gt;简单事务&lt;/td&gt;
					&lt;td&gt;复杂查询&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;DB大小&lt;/td&gt;
					&lt;td&gt;100MB-GB级&lt;/td&gt;
					&lt;td&gt;100GB-TB级&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="112-应用程序与数据库交互"&gt;1.12 应用程序与数据库交互
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;4种方式&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;方式&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;库函数级别（如OCI）&lt;/td&gt;
					&lt;td&gt;最底层API，强依赖特定DB，学习难度大&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;嵌入式SQL（Embeded SQL）&lt;/td&gt;
					&lt;td&gt;SQL直接写入高级程序语言源代码&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;通用数据接口标准（ODBC）&lt;/td&gt;
					&lt;td&gt;解决异构数据库共享，统一处理关系数据库&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ORM&lt;/td&gt;
					&lt;td&gt;对象关系映射，实现面向对象语言与不同类型系统数据的转换&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;ODBC相关接口&lt;/strong&gt;：DAO、RDO、ADO、JDBC&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ORM框架对比&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hibernate：全自动ORM，强大复杂笨重，学习成本高&lt;/li&gt;
&lt;li&gt;MyBatis：半自动框架&lt;/li&gt;
&lt;li&gt;JPA：Java自带框架&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="113-nosql数据库"&gt;1.13 NoSQL数据库
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;4种类型&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
					&lt;th&gt;代表产品&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;列式存储数据库&lt;/td&gt;
					&lt;td&gt;应对分布式海量数据，键指向多列&lt;/td&gt;
					&lt;td&gt;Cassandra、HBase、Riak&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;键值对存储数据库&lt;/td&gt;
					&lt;td&gt;简单、易部署，但部分值查询更新效率低&lt;/td&gt;
					&lt;td&gt;Redis、Voldemort、Oracle BDB&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;文档型数据库&lt;/td&gt;
					&lt;td&gt;处理网页等复杂数据时比键值对查询效率高&lt;/td&gt;
					&lt;td&gt;CouchDB、MongoDB、SequoiaDB&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;图数据库&lt;/td&gt;
					&lt;td&gt;适合社交网络、生物信息网络等图建模数据&lt;/td&gt;
					&lt;td&gt;Neo4J、InfoGrid、Infinite Graph&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;NoSQL 5大特征&lt;/strong&gt;：易扩展、大数据量、高性能、灵活的数据模型、高可用&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NoSQL 4层框架&lt;/strong&gt;（从下至上）&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;数据持久层（Data Persistence）&lt;/li&gt;
&lt;li&gt;数据分布层（Data Distribution Model）&lt;/li&gt;
&lt;li&gt;数据逻辑模型层（Data Logical Model）&lt;/li&gt;
&lt;li&gt;接口层（Interface）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;NoSQL适用场景&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数据模型比较简单&lt;/li&gt;
&lt;li&gt;需灵活性更强的IT系统&lt;/li&gt;
&lt;li&gt;对数据库性能要求较高&lt;/li&gt;
&lt;li&gt;不需要高度的数据一致性&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="114-分布式数据库"&gt;1.14 分布式数据库
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;6层体系结构&lt;/strong&gt;（自顶向下）&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;全局视图&lt;/strong&gt;（全局外模式）：用户视图，全局概念模式的子集&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全局概念模式&lt;/strong&gt;：数据的整体逻辑结构&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分片模式&lt;/strong&gt;：关系模式分解为数据片&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分配模式&lt;/strong&gt;：定义数据片段的存放节点（分布式本质）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;局部概念模式&lt;/strong&gt;：局部数据库的概念模式&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;局部内模式&lt;/strong&gt;：局部数据库的内模式&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;分布式数据库4大特点&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;共享性：不同节点数据共享&lt;/li&gt;
&lt;li&gt;自治性：每个节点独立管理本地数据&lt;/li&gt;
&lt;li&gt;可用性：某场地故障可使用其他副本&lt;/li&gt;
&lt;li&gt;分布性：数据分布在不同场地&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;分布透明性3层次&lt;/strong&gt;（由高到低）&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;分片透明性&lt;/strong&gt;：只对全局关系操作，不必考虑分片（最高）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;位置透明性&lt;/strong&gt;：了解分片但不必了解存储场地&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;局部数据模型透明性（逻辑透明）&lt;/strong&gt;：了解分片和存储场地但不必了解局部数据模型&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="115-数据库优化技术"&gt;1.15 数据库优化技术
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;集中式数据库反规范化设计5种&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;增加冗余列（避免连接操作）&lt;/li&gt;
&lt;li&gt;增加派生列（减少计算量）&lt;/li&gt;
&lt;li&gt;重新组表（减少连接）&lt;/li&gt;
&lt;li&gt;水平分割表（按记录分割）&lt;/li&gt;
&lt;li&gt;垂直分割表（按列分割，主键+部分列/主键+其他列）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;反规范化优缺点&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;优点：避免连接操作，提高性能&lt;/li&gt;
&lt;li&gt;缺点：数据重复存储，浪费磁盘空间，产生数据不一致&lt;/li&gt;
&lt;li&gt;解决：触发器、事务机制、应用保证、批处理脚本&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;分布式数据库优化4技术&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;主从复制&lt;/strong&gt;（3种同步模式：全同步、半同步、异步）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;读写分离&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分表&lt;/strong&gt;（垂直切分/水平切分）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分库&lt;/strong&gt;（按业务模块分开）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;binlog 3种模式&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;基于SQL语句的复制（SBR）：binlog日志量少，可能造成主从不一致（如time函数）&lt;/li&gt;
&lt;li&gt;基于行的复制（RBR）：不记录SQL，记录更新前后数据，可保证主从一致&lt;/li&gt;
&lt;li&gt;混合复制（MBR）：以上两种的混合，自动选择&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="116-分布式缓存redis"&gt;1.16 分布式缓存Redis
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Redis定位&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;分布式缓存技术&lt;/li&gt;
&lt;li&gt;也是键值对数据库类型（NoSQL）&lt;/li&gt;
&lt;li&gt;基于内存的读写，比磁盘数据库性能高&lt;/li&gt;
&lt;li&gt;key-value形式保存&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;5种核心数据类型&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;数据类型&lt;/th&gt;
					&lt;th&gt;存储值&lt;/th&gt;
					&lt;th&gt;适用场景&lt;/th&gt;
					&lt;th&gt;案例&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;字符串/整数/浮点&lt;/td&gt;
					&lt;td&gt;缓存层、计数器&lt;/td&gt;
					&lt;td&gt;视频播放量、文章浏览量&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;hash&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;键值对无序散列表&lt;/td&gt;
					&lt;td&gt;描述用户信息，节省空间&lt;/td&gt;
					&lt;td&gt;用户信息存储&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;set&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;无序集合，值不重复&lt;/td&gt;
					&lt;td&gt;去重、抽奖、初始化用户池&lt;/td&gt;
					&lt;td&gt;共同好友、标签管理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;list&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;双向链表，模拟栈/队列&lt;/td&gt;
					&lt;td&gt;顺序访问&lt;/td&gt;
					&lt;td&gt;回复评论、点赞、粉丝列表&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;zset&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;有序集合，每个元素有分数&lt;/td&gt;
					&lt;td&gt;排行榜&lt;/td&gt;
					&lt;td&gt;当天最热前10名、热搜榜&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;业务功能 → 数据类型对应关系&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;string → 计数器（用户帖子的评论计数器）&lt;/li&gt;
&lt;li&gt;list → 粉丝列表、好友信息发布/订阅&lt;/li&gt;
&lt;li&gt;set → 标签管理、共同好友&lt;/li&gt;
&lt;li&gt;hash → 用户信息结构化存储&lt;/li&gt;
&lt;li&gt;zset → 排名（最热前10名、热搜榜）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;读写数据步骤&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;读：①根据key读缓存 → ②成功直接返回 → ③若key不在缓存则读数据库 → ④成功后写缓存 → ⑤成功返回&lt;/li&gt;
&lt;li&gt;写：①根据key值写数据库 → ②成功后更新缓存key值 → ③成功返回&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2种过期策略&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;定期删除：随机抽取设置了过期时间的key&lt;/li&gt;
&lt;li&gt;惰性删除：查询时检测key是否过期，过期则删除&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;6种淘汰机制&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;volatile-lru / volatile-lfu / volatile-random / volatile-ttl&lt;/li&gt;
&lt;li&gt;allkeys-lru / allkeys-lfu / allkeys-random&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2种持久化方式对比&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;项目&lt;/th&gt;
					&lt;th&gt;RDB内存快照&lt;/th&gt;
					&lt;th&gt;AOF日志&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;原理&lt;/td&gt;
					&lt;td&gt;数据集快照写入磁盘&lt;/td&gt;
					&lt;td&gt;持续保存Redis更新命令&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;磁盘刷新频率&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
					&lt;td&gt;高&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;文件大小&lt;/td&gt;
					&lt;td&gt;小&lt;/td&gt;
					&lt;td&gt;大&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据恢复效率&lt;/td&gt;
					&lt;td&gt;高&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据安全&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
					&lt;td&gt;高&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;3大缓存异常问题&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;异常&lt;/th&gt;
					&lt;th&gt;原因&lt;/th&gt;
					&lt;th&gt;解决方案&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;缓存穿透&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;请求访问了不存在的key，绕过缓存访问DB&lt;/td&gt;
					&lt;td&gt;①限制IP访问次数 ②布隆过滤器 ③预热Redis ④DB中也没有的key在Redis中设为null&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;缓存雪崩&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;大量key同时过期，请求直接访问DB&lt;/td&gt;
					&lt;td&gt;①主从复制+cluster集群 ②过期时间加随机值 ③服务降级/熔断/限流&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;缓存击穿&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;少量热点key过期失效，请求直接访问DB&lt;/td&gt;
					&lt;td&gt;①设置较长过期时间/永久有效 ②分布式锁控制DB访问流量&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Redis集群3方式&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;主从复制集群&lt;/li&gt;
&lt;li&gt;哨兵集群&lt;/li&gt;
&lt;li&gt;Cluster集群&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;集群切片3方式&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;客户端分片&lt;/li&gt;
&lt;li&gt;代理分片&lt;/li&gt;
&lt;li&gt;服务器端分片&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-关键概念速查"&gt;2. 关键概念速查
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;概念&lt;/th&gt;
					&lt;th&gt;定义/说明&lt;/th&gt;
					&lt;th&gt;常见考点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;3级模式&lt;/td&gt;
					&lt;td&gt;外模式/概念模式/内模式&lt;/td&gt;
					&lt;td&gt;对应视图层/逻辑层/物理层&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2级映像&lt;/td&gt;
					&lt;td&gt;概念↔内模式=物理独立；外模式↔概念=逻辑独立&lt;/td&gt;
					&lt;td&gt;独立性识别&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;关系代数&lt;/td&gt;
					&lt;td&gt;并/差/交/笛卡尔积/选择/投影/连接/除&lt;/td&gt;
					&lt;td&gt;集合运算vs专门关系运算&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;1NF&lt;/td&gt;
					&lt;td&gt;分量不可再分&lt;/td&gt;
					&lt;td&gt;最基础范式&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2NF&lt;/td&gt;
					&lt;td&gt;1NF+非主属性完全依赖主码&lt;/td&gt;
					&lt;td&gt;消除部分函数依赖&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;3NF&lt;/td&gt;
					&lt;td&gt;2NF+消除非主属性对主码的传递依赖&lt;/td&gt;
					&lt;td&gt;消除传递依赖&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;BCNF&lt;/td&gt;
					&lt;td&gt;1NF+每个属性不传递依赖候选码&lt;/td&gt;
					&lt;td&gt;最高范式（教材重点）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ACID&lt;/td&gt;
					&lt;td&gt;原子性/一致性/隔离性/持久性&lt;/td&gt;
					&lt;td&gt;事务4特性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;X封锁&lt;/td&gt;
					&lt;td&gt;排他型，只允许一个事务独锁&lt;/td&gt;
					&lt;td&gt;写锁&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;S封锁&lt;/td&gt;
					&lt;td&gt;共享型，可读不可修改&lt;/td&gt;
					&lt;td&gt;读锁&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;E-R图&lt;/td&gt;
					&lt;td&gt;矩形=实体，椭圆=属性，菱形=联系&lt;/td&gt;
					&lt;td&gt;概念结构设计&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据仓库&lt;/td&gt;
					&lt;td&gt;面向主题/集成/非易失/时变&lt;/td&gt;
					&lt;td&gt;4大特征&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OLTP&lt;/td&gt;
					&lt;td&gt;联机事务处理，操作型&lt;/td&gt;
					&lt;td&gt;日常操作&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OLAP&lt;/td&gt;
					&lt;td&gt;联机分析处理，分析型&lt;/td&gt;
					&lt;td&gt;决策支持&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;列式存储&lt;/td&gt;
					&lt;td&gt;应对分布式海量数据&lt;/td&gt;
					&lt;td&gt;Cassandra/HBase&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;文档型&lt;/td&gt;
					&lt;td&gt;处理复杂数据查询效率高&lt;/td&gt;
					&lt;td&gt;MongoDB&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;图数据库&lt;/td&gt;
					&lt;td&gt;适合图建模数据&lt;/td&gt;
					&lt;td&gt;Neo4J&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;分片透明性&lt;/td&gt;
					&lt;td&gt;不必考虑分片&lt;/td&gt;
					&lt;td&gt;最高级分布透明&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;位置透明性&lt;/td&gt;
					&lt;td&gt;了解分片，不必了解场地&lt;/td&gt;
					&lt;td&gt;中级&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Redis string&lt;/td&gt;
					&lt;td&gt;字符串/数字&lt;/td&gt;
					&lt;td&gt;计数器、缓存&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Redis list&lt;/td&gt;
					&lt;td&gt;双向链表&lt;/td&gt;
					&lt;td&gt;粉丝列表、评论&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Redis set&lt;/td&gt;
					&lt;td&gt;无序集合不重复&lt;/td&gt;
					&lt;td&gt;共同好友、标签&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Redis hash&lt;/td&gt;
					&lt;td&gt;键值对散列表&lt;/td&gt;
					&lt;td&gt;用户信息&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Redis zset&lt;/td&gt;
					&lt;td&gt;有序集合带分数&lt;/td&gt;
					&lt;td&gt;排行榜&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;缓存穿透&lt;/td&gt;
					&lt;td&gt;不存在key访问DB&lt;/td&gt;
					&lt;td&gt;布隆过滤器&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;缓存雪崩&lt;/td&gt;
					&lt;td&gt;大量key同时过期&lt;/td&gt;
					&lt;td&gt;过期时间加随机值&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;缓存击穿&lt;/td&gt;
					&lt;td&gt;热点key过期&lt;/td&gt;
					&lt;td&gt;分布式锁&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;RDB&lt;/td&gt;
					&lt;td&gt;内存快照&lt;/td&gt;
					&lt;td&gt;恢复快但安全低&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;AOF&lt;/td&gt;
					&lt;td&gt;更新命令日志&lt;/td&gt;
					&lt;td&gt;恢复慢但安全高&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="3-典型例题"&gt;3. 典型例题
&lt;/h2&gt;&lt;h3 id="题目1数据库系统-vs-文件系统"&gt;题目1：数据库系统 vs 文件系统
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：数据库系统与文件系统的区别不包括（ ）。
A．对应用程序的高度独立性
B．数据的充分共享性
C．文件组织形式的多样化
D．操作方便性&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：C&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：数据库的特点包括对应用程序的高度独立性、数据的充分共享性、操作方便性。&lt;strong&gt;文件组织形式的多样化是文件系统的特点&lt;/strong&gt;，不是数据库系统的特点（数据库的数据按同一种数据结构存储）。&lt;/p&gt;
&lt;h3 id="题目2dbms功能"&gt;题目2：DBMS功能
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：（ ）描述的是DBMS向用户提供数据操纵语言，实现对数据库中数据的基本操作，如检索、插入、修改和删除。
A．数据定义
B．数据库操作
C．数据库运行管理
D．数据组织、存储与管理&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：B&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：DBMS功能主要包括数据定义、&lt;strong&gt;数据库操作&lt;/strong&gt;、数据库运行管理、数据组织存储与管理、数据库的建立和维护。&lt;strong&gt;数据库操作&lt;/strong&gt;是DBMS向用户提供数据操纵语言（DML），实现对数据库数据的基本操作（检索、插入、修改、删除）。&lt;/p&gt;
&lt;h3 id="题目3范式判断"&gt;题目3：范式判断
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：给定关系模式R(U,F)，其中：属性集U={A1,A2,A3,A4,A5,A6}；函数依赖集F={A1→A2, A1→A3, A3→A4, A1A5→A6}。关系模式R的候选码为（1），由于R存在非主属性对码的部分函数依赖，所以R属于（2）。
（1）A．A1A3 B．A1A4 C．A1A5 D．A1A6
（2）A．1NF B．2NF C．3NF D．BCNF&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：C A&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：判断候选码：A1和A5都只在依赖集F的&amp;rdquo;→&amp;ldquo;左边出现过，所以候选码是&lt;strong&gt;A1A5&lt;/strong&gt;。&amp;ldquo;R存在非主属性对码的部分函数依赖&amp;quot;说明不满足2NF要求（2NF要求非主属性完全依赖主码），因此R只能是&lt;strong&gt;1NF&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="题目4redis数据类型应用"&gt;题目4：Redis数据类型应用
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：某互联网文化发展公司因业务发展，需要建立网上社区平台，为用户提供对网络文化产品进行评论交流的平台。功能包括：（a）用户帖子的评论计数器；（b）支持粉丝列表功能；（c）支持标签管理；（d）支持共同好友功能等；（e）提供排名功能，如当天最热前10名帖子排名；（f）用户信息的结构化存储；（g）提供好友信息的发布/订阅功能。请选择Redis数据类型填空。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;string → （1）&lt;/li&gt;
&lt;li&gt;list → （2）&lt;/li&gt;
&lt;li&gt;set → （3）&lt;/li&gt;
&lt;li&gt;hash → （4）&lt;/li&gt;
&lt;li&gt;zset → （5）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;（1）（a） 计数器场景&lt;/li&gt;
&lt;li&gt;（2）（b）（g） 粉丝列表+发布/订阅&lt;/li&gt;
&lt;li&gt;（3）（c）（d） 标签+共同好友（去重）&lt;/li&gt;
&lt;li&gt;（4）（f） 用户信息结构化&lt;/li&gt;
&lt;li&gt;（5）（e） 排行榜&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：string适合计数器，list双向链表模拟粉丝列表/订阅，set无序去重适合共同好友/标签，hash结构化适合用户信息，zset有序集合适合排行榜。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="4-高频考点"&gt;4. 高频考点
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ACID 4特性&lt;/strong&gt;：原子性+一致性+隔离性+持久性（5年8考）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;范式判断&lt;/strong&gt;：1NF→2NF→3NF→BCNF的递进条件（部分依赖→传递依赖）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;候选码判断方法&lt;/strong&gt;：只在F的&amp;rdquo;→&amp;ldquo;左边出现过的属性必在候选码中&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关系代数运算&lt;/strong&gt;：选择（行）vs 投影（列）的区别，外连接3种&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;三级模式两级映像&lt;/strong&gt;：物理独立性=概念↔内模式；逻辑独立性=外模式↔概念&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据完整性3类&lt;/strong&gt;：实体完整性（主属性非空）+ 参照完整性（外键）+ 用户定义完整性&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OLTP vs OLAP&lt;/strong&gt;：操作型vs分析型，10个对比维度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NoSQL 4类型&lt;/strong&gt;：列式/键值/文档/图，适用场景不同&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Redis 5种数据类型应用场景&lt;/strong&gt;：string(计数)/hash(用户)/set(去重)/list(队列)/zset(排行榜)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缓存三大异常&lt;/strong&gt;：穿透（不存在key）/雪崩（大量key同时过期）/击穿（热点key过期）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RDB vs AOF持久化&lt;/strong&gt;：快照vs日志，恢复效率vs数据安全&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;反规范化5种方法&lt;/strong&gt;：冗余列/派生列/重组表/水平分割/垂直分割&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分布式数据库6层结构&lt;/strong&gt;：全局视图→全局概念→分片→分配→局部概念→局部内模式&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分布透明性3层次&lt;/strong&gt;：分片&amp;gt;位置&amp;gt;局部数据模型（从高到低）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;binlog 3种模式&lt;/strong&gt;：SQL语句/行/混合，各有优缺点&lt;/li&gt;
&lt;/ol&gt;</description></item></channel></rss>