软考-软件设计师-4-数据库基础
主要概念
模式 | 描述 |
外模式 | 用户可看到的,数据库的接口 |
概念模式 | 只有一个,全部数据的逻辑结构 |
内模式 | 只有一个,具体的存储方式,索引、文件 |
数据库设计流程
设计阶段 | 设计成果 |
需求分析 | 需求规格说明书、数据字典 |
概念设计 | 概念模型、ER 图 |
逻辑设计 | 逻辑模式,关系模式 |
物理设计 | 物理模型 |
事务的特点
- 原子性 Atomicity:要么全做,要么全不做
- 一致性 Consistency:从一个一致性状态到另一个一致性状态
- 隔离性 Isolation:事务之间完全独立,不互相影响
- 持久性 Durability:事务一但提交,改变就是永久的
冲突
冲突 | 说明 |
属性冲突 | 同一属性使用的单位不同,取值范围不同 |
结构冲突 | 同一结构在不同的使用场景中意义不同 |
命名冲突 | 同一名字,不同含义 |
范式
名称 | 描述 |
1 NF | 每个属性都不可再分 |
2 NF | 每个非主属性完全依赖主键 |
3 NF | 每个非主属性之间无逻辑关系 |
锁
名 | 描述 |
排他锁 | X 锁,只允许一个事务获得 X 锁 |
共享锁 | S 锁,允许并发读,写需要再申请 X 锁 |
更新丢失
脏读
不可重复读
封锁协议 | 操作 | 解决问题 |
一级 | 写前加 X 锁 | 更新丢失 |
二级 | 写前加 X 锁,读前加 S 锁,读完释放 S 锁 | 更新丢失、脏读 |
三级 | 写前加 X 锁,读前加 S 锁,事务结束释放 S 锁 | 更新丢失、脏读、不可重复读 |
MySQL 使用二级封锁协议