数据库知识点回顾(三)

第8章.数据库管理
1.一个程序中包含多个事务

2.ACID性质
(1)原子性(Atomicity):事务对数据库的更新要么全部起作用,要么都不起作用
(2)一致性(Consistency):一个事务独立执行的结果,应使数据库从一个一致性状态转变为另一个一致性状态
(3)隔离性(Isolation):事务相互隔离
(4)持久性(Durability):事务一旦成功提交,对数据库的更新永久有效

3.故障分类
(1)事务故障:事务运行至正常终止点前被终止
(2)系统故障:引起系统停止的事件(软故障)
(3)介质故障:磁盘上物理数据被破坏(硬故障)

4.建立冗余数据
(1)数据库转储:DBA将数据库复制到其他硬盘,这些备用数据文本称为“后备副本”

冷/热备份:根据进行备份时数据库是否在运行来划分
全/增量备份:根据“完整备份数据库文件”还是“只备份新增文件”进行划分

(2)日志文件:日志文件是记录事务对数据库的更新操作的文件。

5.恢复策略
(1)事务故障的恢复(由系统自动完成):恢复子系统应撤销(UNDO)此事务已对数据库进行的修改。
反向扫描日志文件,依次执行逆操作

(2)系统故障的恢复(由系统自动完成):撤销故障发生时未完成的事务,重做已完成的事务
正向扫描日志文件,得到undo和redo队列
反向扫描日志文件,对undo队列中的事务执行逆操作
正向扫描日志文件,重做redo队列中事务的操作

(3)介质故障的恢复:
(1)装入最新的后备副本,使数据库恢复到最近一次转储时的一致状态
(2)装入有关的日志文件副本,重做已提交的所有事务

(4)检查点方法
DBMS定时设置检查点,在检查点时,进行以下操作
1.将日志缓冲区中日志记录写入磁盘
2.将数据库缓冲区中修改过的缓冲块内容写入磁盘
3.写一个检查点记录到磁盘(保存到日志文件),内容包括
检查点时刻,正在活动的事务
每个事务最近日志记录地址
4.将磁盘中日志检查点记录的地址写入“重新启动文件”

6.并发控制
(1)数据不一致性问题
丢失更新:一个事务对数据库的更新被另一个事务的更新所覆盖
读“脏数据”:A修改某一数据,B读取该数据,A撤销这次修改,则B读入的数据为“脏数据”
不可重复读:A读取某一数据,B更新了该数据,A再次读取该项数据时发现值不同
(不可重复读中还包含了“幻行”现象,即A再次读取时发现数据多了/少了)

(2)
可串行化调度:与某一串行调度执行结果等价的并发调度
可串行性:判断并发事务正确性的唯一准则

7.封锁协议
(1)PX协议(解决丢失更新):读写数据前,先要加X锁
PXC协议:PX协议加上X锁的解除操作合并到事务的结束操作(COMMIT或ROLLBACK)中

(2)PS协议(解除读”脏数据“和不可重复读):读数据前要先获得S锁。若要写数据,需要将S锁升级为X锁。
PSC协议:PS协议加上S锁的解除操作应该合并到事务的结束(COMMIT或ROLLBACK)操作中。

(3)活锁:系统可能使某个事务永远处于等待状态,得不到封锁机会
避免活锁:先来先服务
死锁:两个或以上事务都处在等待状态,互相等待对方解锁

(4)两段锁协议(保证并行调度的可串行性)
将事务分为 获得封锁 和 释放封锁 两个阶段

所有事务都遵守两段锁协议,则这个并行调度是可串行化调度

两段锁协议不能解决死锁

8.SQL中的完整性约束:域约束,表约束(建表时的NOT NULL,PRIMARY KEY之类的),断言(当约束涉及多个关系或聚合操作时使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值