![50a63f3f54da446578079caf131a3ae9.png](https://i-blog.csdnimg.cn/blog_migrate/2a495d31c372a97925ec700df822bf07.jpeg)
![af53ba4c1bb6babbb9eb1197ad92593a.png](https://i-blog.csdnimg.cn/blog_migrate/6871b32bafcb95c00ac3188dd2706472.png)
网站阅读
https://geminiplanet.cn/Database-System-5/geminiplanet.cn数据库第五章--数据库管理
数据库管理概述
-
- 数据库管理
- 定义:指为保证数据库系统的正常运行和服务质量必须进行的系统管理工作
- DBMS管理功能结构
- 数据库定义
- 数据库运行管理
- 数据库组织与存储
- 数据库维护
- 数据库通信
- 数据库管理
- 事务管理
- Why Need it?
- 每个业务处理通常需要多个操作步骤,当步骤出现失败就会造成数据混乱
- 事务概念
- 事务:由构成单个业务处理单元的一组数据库访问操作,要求它们要么都成功执行,要么都不执行
- 事务状态
- 事务初始状态
- 事务失败状态
- 事务正常状态
- 事务提交状态
- 事务回滚状态
- 事务特性(划重点)ACID
- 原子性Atomicity:事务的所有操作要么全部执行,要么全部不执行
- 一致性Consistency:事务多次执行,结果一致
- 隔离性Isolation:事务与事务之间隔离,并发执行透明
- 持续性Durability:事务完成后,数据改变是永久的
- 事务并发执行:多个事务程序在数据库系统中同一时段运行
- 事务SQL语句
- 事务开始语句:BEGIN、START TRANSACTION
- 事务回滚语句:ROLLBACK
- 事务提交语句:COMMIT
- 事务保存点语句:SAVEPOINT
- DBMS默认事务方式:每执行一个SQL语句将自动构成一个事务
- Why Need it?
并发控制
-
- 事务调度
- 并发控制需解决的问题
- 丢失更新数据
- 脏数据读取:一个事务读取了被取消持久化的共享数据
- 不可重复读取:一个事务对一个共享数据重复多次读取,但前后读取的数据不一致
- 并发事务调度原理与策略
- 事务调度原理:在DBMS中,事务管理器将并发执行事务的SQL数据操作请求提交给并发控制调度器。由并发控制调度器将各个事务的SQL数据操作请求按照一定顺序进行调度执行,并完成对数据库缓冲区的读写操作
- 事务调度策略:使并发事务调度实现的处理结果与串行化调度处理结果一致
- 并发控制需解决的问题
- 数据库锁机制
- 资源锁定方式
- 排它锁:写锁
- 共享锁:读锁
- 资源锁定粒度
- 行→页面→表→数据库(粒度逐渐增大)
- 资源锁定方式
- 基于锁机制的并发控制协议
- 锁操作的相容性
- 有了排它锁,就不能加其它锁
- 有了共享锁,还只能加共享锁
- 加锁协议
- 一级加锁协议:任何事务在修改共享数据对象之前,必须对该数据执行排它锁定指令,直到该事务处理完成,才进行解锁指令执行(解决丢失更新数据)
- 二级加锁协议:在一级加锁协议基础上,针对并发事务的共享数据读操作,必须对该数据执行共享锁定指令,读完数据后即刻释放共享锁定(解决丢失更新数据、脏数据读取)
- 三级加锁协议:在一级加锁协议基础上,针对并发事务对共享数据进行读操作,必须对该数据执行共享锁定指令,直到该事务处理结束才释放共享锁定。(解决丢失更新数据、脏数据读取、不可重复读取)
- 锁操作的相容性
- 两阶段锁定协议
- 一个给定的并发事务调度,当且仅当它是可串行化时,才能保证正确调度
- 保证可串行化的一个协议是:二阶段锁定协议
- 增长阶段,事务只能获得锁,但不能释放锁
- 缩减阶段,事务只能释放锁,但不能获得新锁
- 死锁问题解决
- 事务死锁:在基于锁机制的并发事务执行中,如果这些事务同时锁定两个以及以上资源时,可能会出现彼此都不能继续执行的状态
- 解决死锁的办法:当发生死锁时,回滚其中的一个事务,并取消它对数据库所做的改动
- 事务调度
安全模型
-
- 存取安全模型
- 数据库系统安全模型
- 身份验证:从应用系统层面确认登录用户是否是合法使用者
- 权限控制:从DBMS系统层面通过存取权限机制控制用户对数据的访问
- 系统防护:从操作系统层面提供的安全机制防范非法系统访问
- 加密存储:从数据存储层面通过加密算法对数据库中数据进行加密存储
- 数据库系统安全模型
- 用户、角色、权限管理
- 用户管理
- CREATE USER <用户账号名> [ [WITH] option […]];
- 权限管理
- GRANT <权限名> ON <对象名> TO {数据库用户名|用户角色名};
- 角色管理
- CREATE ROLE <角色名> [ [ WITH ] option [ ... ] ];
- 用户管理
- 存取安全模型
数据库备份与恢复
-
- 数据库备份:是指将数据库当前数据和状态进行副本复制,以便当数据库受到破坏或丢失数据时可以进行修复
- 数据库恢复:是指数据库中数据丢失或被破坏时,从备份副本将数据库从错误状态恢复到某一正确状态
- 备份方法
- 完全数据库备份:备份数据库所有内容
- 差异数据库备份:只备份上次备份后变化的内容
- 事务日志备份:备份上一次日志备份以来的事务日志数据
- 文件备份:直接复制数据库文件备份
- 备份方式
- 冷备份:数据库实例处于关闭状态
- 热备份:数据库实例处于运行状态