01
数据库系统基础(第1章)
核心概念
数据库系统(DBS) = DB(数据库) + DBMS(数据库管理系统) + 应用程序 + DBA(数据库管理员) + 用户 + 软硬件
DBA 核心职责:设计、建立、管理、维护数据库。
三级模式两级映像
| 模式层级 | 对应数据库对象 | 说明 |
|---|---|---|
| 外模式 | 视图 | 用户可见的局部逻辑结构,实现数据隔离 |
| 模式(逻辑模式) | 基本表 | 全体数据的全局逻辑结构,一个库仅一个 |
| 内模式(存储/物理模式) | 索引 | 数据的物理存储结构与存取方式 |
主流数据库产品
MySQL
Oracle
SQL Server
华为 GaussDB
阿里 OceanBase
腾讯 TDSQL
02
关系模型基础(第2章)
关系五大性质
- 列的分量来自同一域,不同属性可同域
- 列的顺序可交换
- 行(元组)的顺序可交换
- 不允许完全相同的元组
- 每个分量必须是原子数据项(不可再分)
码(键)
码的关系
候选码:能唯一标识元组的属性(组),可有多个。
主码(主键):从候选码中选定一个,一个关系只有一个。
结论:主码必是候选码,候选码不一定是主码。
三大完整性约束 必考
① 实体完整性
主码的值不能为空,也不能部分为空。
② 参照完整性
外码取值要么等于被参照表主码的某个值,要么为空(如选课表的学号必须存在于学生表)。
③ 用户自定义完整性
业务语义约束(如年龄范围、性别限定)。
03
SQL基础与表操作(第3-5章)
SQL核心动词分类
| 功能 | 动词 |
|---|---|
| 数据查询 | SELECT |
| 数据定义 | CREATE、DROP、ALTER |
| 数据操纵 | INSERT、UPDATE、DELETE |
| 数据控制 | GRANT、REVOKE |
存储引擎
决定数据存储、索引、更新查询的底层机制。
注意
Memory引擎:数据存于内存,数据库重启/崩溃后数据全部丢失。
常用数据类型
INT — 数值型
CHAR(n) — 定长字符串
VARCHAR(n) — 变长字符串
DATE — 日期型
提醒
字符串类型 必须指定长度:CHAR(n)、VARCHAR(n)
表约束(建表必考)
| 约束 | 说明 |
|---|---|
NOT NULL | 非空约束 |
UNIQUE | 唯一,教材规定最多允许一个 NULL(MySQL允许多个,考试以教材为准) |
PRIMARY KEY | 主键 = 非空 + 唯一 |
FOREIGN KEY | 外键,实现参照完整性 |
核心操作语法
-- 创建表
CREATE TABLE 表名 (字段名 类型 约束, ...);
-- 修改表结构
ALTER TABLE 表名 ...;
-- 修改表名
ALTER TABLE 旧表名 RENAME TO 新表名;
-- 删除表(结构+数据)
DROP TABLE 表名;
-- 修改数据
UPDATE 表名 SET 字段名=值 WHERE 条件;
-- 删除数据(仅数据,保留结构)
DELETE FROM 表名 WHERE 条件;
易混淆区分
DELETE 删数据不删表;DROP TABLE 删整表(结构+数据全删)。
04
数据查询(第6章)—— SQL大题核心
单表查询
SELECT [DISTINCT] 字段列表 FROM 表名 WHERE 条件;
DISTINCT消除重复行- 逻辑运算符优先级:
NOT>AND>OR - 模糊查询:
LIKE/NOT LIKE
多表连接查询(4种)
| 连接类型 | 说明 |
|---|---|
| 交叉连接(笛卡尔积) | 无条件拼接,行数=两表行数乘积,列数=两表列数和,无业务意义 |
| 内连接 | 仅保留满足连接条件的匹配行 |
| 外连接 | 保留一方全部行,另一方无匹配补 NULL |
| 自然连接 | 按同名字段自动匹配的内连接,自动去重列 |
自连接
一张表与自身等值连接,常用于层级查询(如查找员工及其上级)。
子查询(嵌套查询)
| 类型 | 执行方式 | 特点 |
|---|---|---|
| 非相关子查询 | 子查询先执行 1次 | 结果供父查询使用,可独立运行 |
| 相关子查询 | 父查询每遍历一行执行一次 | 依赖父查询字段,不可独立运行 |
05
视图与索引(第7章)
视图(View)
本质
由基本表导出的虚表,不存储数据,只保存定义语句。
- 作用:隐藏敏感字段,提升数据安全性
- 创建:
CREATE VIEW 视图名 AS 查询语句;
索引(Index)
核心
对应内模式,占用物理存储空间。以空间换时间提升查询效率。
- 创建:
CREATE INDEX 索引名 ON 表名(字段名); - 并非越多越好:每个索引占空间,且降低增删改效率(需同步维护索引)
06
数据库安全管理(第8章)
安全性定义
保护数据库,防止非法使用造成的数据泄露、更改或破坏。
MySQL权限系统表(层级从高到低)
mysql.user>
mysql.db>
mysql.tables_priv>
mysql.columns_priv>
mysql.procs_priv
全局级别 → 数据库级别 → 表级别 → 字段级别 → 存储过程/函数级别
用户与权限操作 必考代码
-- 创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
-- 删除用户
DROP USER '用户名'@'主机名';
-- 授予权限
GRANT 权限名 ON 对象 TO 用户;
-- 回收权限
REVOKE 权限名 ON 对象 FROM 用户;
角色管理
角色 = 权限的集合,用于批量管理。
CREATE ROLE 角色名;
SET DEFAULT ROLE 角色名 TO 用户名;
DROP ROLE 角色名;
07
事务与并发控制(高频简答+理解)
事务定义
由一条或多条 SQL 组成的逻辑执行单元,是业务的最小操作集合。
事务控制语句
START TRANSACTION; -- 开启
COMMIT; -- 提交(永久生效)
ROLLBACK; -- 回滚(撤销未提交修改)
ACID 四大特性 每年必考简答
A
原子性
事务中操作不可分割,要么全执行,要么全不执行
C
一致性
事务前后数据库从一个一致状态转到另一个一致状态
I
隔离性
并发事务互不干扰
D
持久性
提交后修改永久生效,故障不影响
隔离级别(由低到高)
READ UNCOMMITTED<
READ COMMITTED<
REPEATABLE READ<
SERIALIZABLE
读未提交 → 读已提交 → 可重复读 → 串行化
实现方式:封锁机制。
封锁机制
| 锁类型 | 说明 |
|---|---|
| 排他锁(X锁/写锁) | 加锁后当前事务可读可写,其他事务不能加任何锁 |
| 共享锁(S锁/读锁) | 加锁后当前事务仅可读,其他事务可加S锁但不能加X锁 |
三级封锁协议
可同时解决丢失更新、脏读、不可重复读问题。
死锁与活锁
| 类型 | 说明 |
|---|---|
| 死锁 | 两个事务互相等待对方释放锁,永远阻塞 |
| 活锁 | 事务长期等待锁,始终无法获取 |
08
数据库设计与规范化(第11-13章,大题考点)
数据库设计概述
核心工作:结构设计 + 行为设计
直观设计法
规范设计法
计算机辅助设计法
AI辅助设计法
关系模式规范化
- 目的:解决数据冗余、插入异常、删除异常、更新异常
- 规范化定义:将低一级范式分解为高一级范式集合
- 基本原则:一事一地——一个关系只描述一个实体或一种联系
E-R模型(概念设计,画图大题)
E-R图三要素:
| 要素 | 图形 | 说明 |
|---|---|---|
| 实体型 | 矩形 | 实体对象 |
| 属性 | 椭圆形 | 实体特征 |
| 联系 | 菱形 | 实体间关联关系 |
实体
矩形
属性
椭圆形
联系
菱形
E-R图合并冲突
最常见命名冲突(同名异义、异名同义),需统一修正。
范式判断(大题)
根据函数依赖判断关系模式属于第几范式(1NF、2NF、3NF、BCNF等),考试会给出依赖关系要求分析。
TIP
复习策略提示
- 题型分布:选择/判断(概念)、简答(ACID、三大完整性、三级模式等)、SQL代码(建表、查询、权限)、设计大题(ER图、范式)
- 答题规范:教材理论与MySQL实际行为可能存在差异(如 UNIQUE 空值数量),答题一律以教材为准
- 全面覆盖:AB卷随机,不可偏废,重点掌握课堂例题
核心速记
- 三级模式:外模式→视图、模式→基本表、内模式→索引
- 三大完整性:实体(主码非空)、参照(外码匹配)、用户自定义
- ACID:原子性、一致性、隔离性、持久性
- DELETE 删数据,DROP TABLE 删整表
- 索引:空间换时间,不是越多越好