系统分析师考试中,数据库设计是案例分析的重点,题型涵盖E-R模型设计、范式与反规范化、事务与锁、SQL优化等。近年来,分布式数据库、NoSQL/NewSQL、HTAP及向量数据库等新技术也成为了高频考点。以下是针对这些内容的精炼总结。
一、传统核心考点
- 数据库设计流程与E-R模型* 设计流程:需求分析 → 概念设计(E-R图) → 逻辑设计(关系模式) → 物理设计。* E-R模型要点: * 实体与联系:正确区分1:1、1:n、m:n关系。 * E-R转关系模式: * 实体 → 表。 * 1:1/1:n联系 → 并入n端或单独成表。 * m:n联系 → 必须单独成表(联合主键)。
- 规范化与反规范化(高频)* 三大范式: * 1NF:属性原子不可再分。 * 2NF:消除非主属性对候选键的部分函数依赖。 * 3NF:消除非主属性对候选键的传递函数依赖。* 反规范化:为提升查询性能,故意增加冗余(如合并表、增加派生列)。注意,创建视图不属于反规范化,因为它不存储物理数据。
- 事务、并发与锁* ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。* 并发问题:脏读、不可重复读、幻读。* 锁与隔离级别: * X锁(排他):写锁。 * S锁(共享):读锁。 * 隔离级别从低到高:读未提交 → 读已提交 → 可重复读 → 串行化。
- 物理设计与SQL优化* 索引策略:B+树索引、聚簇索引、复合索引的最左前缀匹配原则。* SQL优化:关注执行计划,避免全表扫描,利用覆盖索引,优化JOIN操作。
二、数据库新技术 - NoSQL数据库分类与选型* 键值(Key-Value):如Redis。适用于缓存、会话存储、计数器。* 文档型(Document):如MongoDB。适用于内容管理、日志、快速迭代项目。* 列式(Column):如Cassandra, HBase。适用于IoT、监控日志等海量写入场景。* 图数据库(Graph):如Neo4j。适用于社交关系、风控图谱。
- NewSQL与分布式数据库* NewSQL:代表有TiDB、CockroachDB。旨在保留SQL和ACID事务的同时,具备NoSQL的水平扩展能力。* 分布式特性: * 数据分片:水平拆分数据。 * 分布透明性:用户无需感知数据分布细节。
- HTAP与向量数据库* HTAP (混合事务/分析处理):同一系统同时支持OLTP(高并发事务)和OLAP(实时分析),减少传统ETL延迟。代表技术有行列共存存储。* 向量数据库 (Vector DB):如Milvus、pgvector。核心能力是相似度搜索,用于大模型RAG、推荐系统、以图搜图。
三、案例分析答题技巧 - E-R图补全:仔细阅读题干描述,识别实体、属性和联系基数(1:1, 1:n, m:n),m:n联系必须转化为单独的表。
- 范式判定:先找函数依赖,再判断部分/传递依赖。分解时要检查是否保持函数依赖和无损连接。
- 反规范化判断:抓住“物理存储冗余”和“故意降低范式”两个核心特征。
- 新技术选型:根据场景选择,强事务用NewSQL,海量简单数据用NoSQL,复杂分析用HTAP,AI应用配向量库。