目录

  1. 概述
  2. 关系模型与 SQL
  3. 索引原理
  4. 事务与 ACID
  5. NoSQL 概览
  6. 向量数据库与 RAG
  7. 数据库在 AI 系统中的应用
  8. 实践建议
  9. 参考文献

1 概述 {#1}

数据库是数据持久化与高效检索的核心组件。对 AI 工程师而言,数据库知识服务于:数据管理、特征存储、日志与元数据、以及检索增强生成(RAG)中的向量检索。

本章从关系模型与 SQL 讲起,覆盖索引、事务、NoSQL,最后落到与 AI 最相关的向量数据库。


2 关系模型与 SQL {#2}

2.1 关系模型

数据组织为表(关系),行(元组)表示记录,列表示字段,主键唯一标识一行。

2.2 常用 SQL

-- 查询
SELECT name, age FROM users WHERE age > 18 ORDER BY age DESC LIMIT 10;

-- 聚合
SELECT dept, COUNT(*) FROM employees GROUP BY dept;

-- 连接
SELECT u.name, o.amount
FROM users u JOIN orders o ON u.id = o.user_id;

-- 插入 / 更新 / 删除
INSERT INTO users (name, age) VALUES ('alice', 30);
UPDATE users SET age = 31 WHERE name = 'alice';
DELETE FROM users WHERE id = 42;

2.3 规范化

  • 第一范式:字段原子化;
  • 第二/三范式:消除部分依赖与传递依赖,减少冗余;
  • 实际系统常在规范性与查询性能间权衡(反规范化)。

3 索引原理 {#3}

3.1 为什么需要索引

没有索引时查询需全表扫描 $O(n)$;索引让查找接近 $O(\log n)$。

3.2 常见索引结构

结构 特点 适用
B-Tree / B+Tree 平衡多路树,磁盘友好 范围查询、排序、等值
哈希索引 $O(1)$ 等值查找 主键/等值查询
位图索引 压缩、高效统计 低基数列
倒排索引 词 → 文档列表 全文检索

B+Tree 是主流关系库默认索引:叶节点有序链表,支持高效范围扫描。

3.3 复合索引

对多列建索引时,遵循”最左前缀”原则:

CREATE INDEX idx_user ON users (dept, age);
-- 可加速 dept、dept+age 查询

4 事务与 ACID {#4}

4.1 事务

事务是一组原子操作:要么全部成功,要么全部回滚。

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

4.2 ACID

特性 含义
原子性 Atomicity 全部或全不
一致性 Consistency 事务前后数据库处于合法状态
隔离性 Isolation 并发事务互不干扰
持久性 Durability 提交后永久保存

4.3 隔离级别

  • 读未提交 → 读已提交 → 可重复读 → 串行化(隔离性递增,并发性递减);
  • 不同级别对应不同并发异常(脏读、不可重复读、幻读)。

5 NoSQL 概览 {#5}

类型 代表 特点 用途
键值 Redis 低延迟、内存 缓存、会话
文档 MongoDB JSON 灵活 半结构化数据
宽列 Cassandra 高吞吐写入 海量时序
Neo4j 关系查询 知识图谱

NoSQL 追求水平扩展与灵活 schema,常在一致性上做权衡(CAP 定理)。


6 向量数据库与 RAG {#6}

6.1 为什么需要向量数据库

RAG(见 long-context-rag.md)需要在大规模文档集合上做语义近似检索:把文本编码为向量,查询时找最相似的向量。

6.2 核心能力

向量索引(HNSW / IVF)
+ 相似度检索(余弦 / 内积 / L2)
+ 元数据过滤
+ 增量更新

6.3 常见产品

系统 特点
FAISS 库级,轻量
Milvus 分布式向量数据库
pgvector PostgreSQL 扩展
Qdrant / Weaviate 全功能向量库
Chroma 轻量嵌入

6.4 HNSW 简介

HNSW(Hierarchical Navigable Small World)通过多层级图结构实现近似最近邻搜索,兼顾速度与召回,是向量索引的事实标准之一。


7 数据库在 AI 系统中的应用 {#7}

场景 数据 存储方案
训练样本元数据 样本 id、标签、路径 关系库/对象存储
特征存储 离线/在线特征 Feature Store
日志与追踪 推理日志、指标 时序库/对象存储
应用数据 用户、订单 关系库
RAG 知识库 文档分块 + 向量 向量数据库

7.1 特征存储

训练与推理的特征需保持一致(见 reliability.md 的 training-serving skew),Feature Store 统一离线/在线特征,常基于数据库构建。

7.2 推理日志

LLM 服务记录请求/响应(见 llm-ops.md),用于监控、评测与数据回放,通常落入时序库或对象存储。


8 实践建议 {#8}

  • 掌握核心 SQL 与索引原理,理解查询计划(EXPLAIN);
  • 事务用 ACID 理解一致性,分布式场景用 CAP 权衡;
  • RAG 场景关注向量索引(HNSW)与元数据过滤;
  • 数据量大时优先考虑分区、索引与缓存;
  • 用数据库做元数据管理,用对象存储做大文件(模型、数据集)。

9 参考文献 {#9}

[1] A. Silberschatz, H. F. Korth, S. Sudarshan, Database System Concepts, McGraw-Hill.

[2] R. Ramakrishnan, J. Gehrke, Database Management Systems, McGraw-Hill.

[3] J. Johnson, M. Douze, H. Jégou, Billion-Scale Similarity Search with GPUs (FAISS), IEEE Trans. Big Data, 2019.

[4] Y. A. Malkov, D. A. Yashunin, Efficient and Robust Approximate Nearest Neighbor Search Using HNSW Graphs, IEEE TPAMI, 2018.

[5] PostgreSQL / Redis / Milvus 官方文档.

留下评论