计算机考研复试数据库基础概念终极整理版
一、数据库系统基本概念
1. 数据库系统定义与特点
- 定义:数据库(DB)是长期存储在计算机内、有组织、可共享的数据集合,数据库管理系统(DBMS)是管理数据库的核心软件,数据库系统(DBS)包含DB、DBMS、应用程序和用户。
- 核心特点:
- 数据共享性:多用户共享数据,减少冗余。
- 数据独立性:包括物理独立性(存储结构变化不影响逻辑结构)和逻辑独立性(模式变化不影响应用)。
- 数据持久性:事务提交后数据永久保存。
- 统一管理:通过DBMS实现安全性、完整性、并发控制等统一管理。
2. 数据模型
- 层次模型:树形结构,适合一对多关系(如早期文件系统)。
- 网状模型:图形结构,支持多对多关系,但复杂度高。
- 关系模型:二维表结构,主流模型,通过关系代数和SQL操作。
- 对象模型:结合面向对象特性,支持复杂数据类型(如XML、JSON)。
3. 数据库三级模式与二级映像
- 三级模式:
- 外模式(用户视图):局部数据逻辑结构,如用户查询界面。
- 模式(全局视图):全体数据的逻辑结构描述(如ER图转化后的关系模式)。
- 内模式(存储视图):物理存储结构(如B+树索引)。
- 二级映像:
- 外模式/模式映射:保证逻辑独立性(模式修改不影响外模式)。
- 模式/内模式映射:保证物理独立性(存储结构修改不影响模式)。
二、数据库系统 vs 文件系统
| 对比维度 |
文件系统 |
数据库系统 |
| 数据冗余 |
高冗余(多个文件存储相同数据) |
低冗余(共享数据,规范化设计) |
| 数据一致性 |
难以保证(分散存储) |
通过完整性约束和事务保证 |
| 独立性 |
无独立性(程序与文件绑定) |
物理和逻辑独立性 |
| 查询能力 |
简单查询(如文本搜索) |
复杂查询(SQL支持多表连接、聚合) |
| 典型应用 |
小型数据管理(如文档存储) |
企业级应用(如银行交易系统) |
三、数据库核心组件与功能
1. 数据库管理系统(DBMS)功能
- 数据定义:通过DDL(如
CREATE TABLE)定义模式。
- 数据操作:通过DML(如
SELECT/INSERT)实现增删改查。
- 事务管理:保证ACID特性(原子性、一致性、隔离性、持久性)。
- 并发控制:通过锁机制(共享锁S、排他锁X)避免数据冲突。
- 恢复机制:日志文件记录操作,支持故障恢复(如UNDO/REDO)。
2. 关系数据库核心概念
- 关系:二维表,属性不可再分(1NF)。
- 键:
- 主键:唯一标识元组,非空(实体完整性)。
- 外键:参照其他表主键,可为空(参照完整性)。
- 完整性约束:
- 实体完整性:主键非空且唯一。
- 用户自定义约束:如
CHECK(age >= 18)。
四、事务与并发控制
1. 事务ACID特性
- 原子性(Atomicity):事务要么全执行,要么全不执行(通过UNDO日志实现)。
- 一致性(Consistency):事务前后数据库状态合法(如账户总额不变)。
- 隔离性(Isolation):事务间互不干扰(通过锁机制实现)。
- 持久性(Durability):提交后数据永久存储(通过REDO日志实现)。
2. 并发问题与解决方案
| 问题 |
描述 |
解决方案 |
| 丢失修改 |
后提交覆盖前提交结果 |
一级封锁协议(X锁到事务结束) |
| 脏读 |
读取未提交的无效数据 |
二级封锁协议(读S锁立即释放) |
| 不可重复读 |
同一事务两次读取结果不同 |
三级封锁协议(读S锁到事务结束) |
| 幻读 |
范围查询结果数量变化 |
间隙锁(锁定范围) |
五、数据库设计核心理论
1. 范式理论(Normalization)
- 1NF:属性不可再分(如避免多值属性)。
- 2NF:消除非主属性对主键的部分依赖(如订单表中商品价格应依赖商品ID而非订单ID)。
- 3NF:消除非主属性的传递依赖(如员工表中部门地址应依赖部门而非员工ID)。
- BCNF:消除主属性对候选键的部分/传递依赖(如课程-教师关系中,教师决定课程)。
2. ER图与关系模式转化
- 实体:矩形表示(如学生、课程)。
- 联系:菱形表示(如选课),多对多联系需转化为独立表(如选课表含学生ID和课程ID)。
- 转换规则:
- 一对一:任一方表添加对方主键。
- 一对多:多方表添加一方主键。
- 多对多:新建关联表保存双方主键。
六、高频考点速记
- 数据字典:存储元数据(如表结构、约束),用于系统维护和查询优化。
- 视图(View):虚表,简化查询(如
CREATE VIEW v_student AS SELECT id, name FROM student),支持逻辑独立性。
- 索引类型:
- B+树索引:支持范围查询(如
WHERE age > 20)。
- Hash索引:适合等值查询(如
WHERE id = 1001)。
- 存储过程与触发器:
- 存储过程:预编译SQL集合(如批量插入)。
- 触发器:事件驱动(如
AFTER INSERT自动更新统计表)。
参考资料:王珊《数据库系统概论》核心考点 + 历年复试真题分析