一、数据库系统基础概念
1. 数据库系统(DBS)
- 组成
数据库(DB)、数据库管理系统(DBMS)、应用程序、用户 - 核心目标
数据的高效存储、管理和共享
2. 数据模型
- 层次模型
树状结构,适合一对多关系 - 网状模型
图状结构,允许多对多关系 - 关系模型
二维表格(关系),通过主键和外键关联 - NoSQL模型
文档型(如MongoDB
)、键值型(如Redis
)、列存储(如HBase
)、图数据库(如Neo4j
)
3. 三级模式结构
- 外模式(用户视图)
应用程序看到的数据逻辑结构 - 模式(逻辑视图)
全局数据结构的逻辑描述 - 内模式(物理视图)
数据在存储介质上的物理组织
二、关系型数据库核心知识点
1. SQL(结构化查询语言)
- DDL(数据定义语言)
CREATE
,ALTER
,DROP
- DML(数据操作语言)
SELECT
,INSERT
,UPDATE
,DELETE
- DCL(数据控制语言)
GRANT
,REVOKE
- 高级查询
JOIN
(内连接、左外连接、右外连接)、子查询、聚合函数(SUM
,AVG
,COUNT
)
2. 事务管理
- ACID特性
- 原子性:事务要么全部完成,要么全部回滚
- 一致性:事务前后数据状态满足约束
- 隔离性:并发事务互不干扰
- 持久性:事务提交后数据永久保存
- 并发控制
- 锁机制:共享锁(S锁)、排他锁(X锁)
- 隔离级别:读未提交、读已提交(解决脏读)、可重复读(解决不可重复读)、串行化(解决幻读)
3. 索引与查询优化
- 索引类型
- B+树索引:适合范围查询(如
BETWEEN
) - 哈希索引:适合等值查询(如
=
) - 聚簇索引:数据按索引顺序存储(如主键索引)
- 非聚簇索引:索引与数据分离
- B+树索引:适合范围查询(如
- 索引优化
- 避免全表扫描,优先使用覆盖索引
- 联合索引的最左前缀匹配原则
三、数据库设计
1. 规范化理论
- 目的
减少数据冗余,避免更新异常 - 范式
- 1NF:属性不可再分(原子性)
- 2NF:消除非主属性对候选键的部分依赖
- 3NF:消除非主属性对候选键的传递依赖
- BCNF:消除主属性对候选键的部分依赖
- 反范式化
为提高查询性能,允许适度冗余
2. ER模型与关系模式转换
- 实体→表,属性→字段,关系→外键或关联表
- 弱实体需依赖强实体存在,用外键标识
总结
数据库是信息系统的核心组件。