数据库概论笔记第七章(事务)

事务transaction

1.概念

事务就是数据项的程序执行单元

四个特性:acid

a(atomicity):原子性(事务不能中断)

d(durability):持久性(对数据库修改是永久的)

c(consistency):一致性(总和不变,事务的开始和结束是一致性的状态,但在过程中间是不一致的,是暂时的,不能中断的)

i(isolation):隔离性(一个事务内部操作和使用的数据对其他的事务是隔离的)

2.并发concurrent

用与顺序执行任务的结果时一样的来检验并发的正确

部分提交后(表面完成,实际失败)会进行redo重传

并发控制机制:多个事务正确执行(封锁机制

导致的问题丢失修改(1读,2读,1写,2写就会导致写入错误)、不可重复读(1读后(没结束),

2改,1读的数据不一致。1读,2删除部分记录,1再读发现少了)、读脏数据(1改,2读,1撤销2读的数据错误)

3.串行调度

调度schedule:指令执行次序,保证一致性状态,保证单个事务内指令的次序不变

事务最后会有提交指令commit,提交后就永久失效

事务失败就有abort撤销指令

串行serial调度:T2在T1后执行

不是串行调度但是等价于一个串行调度,就是一个有效equivalent的调度

串行性Serializability:如果串行执行就认为是正确的

调度如果和一个串行调度等价,就叫可串行化的调度

交换后不变就不发生冲突(read(Q)和read(Q))

4.冲突等价

通过一系列非冲突指令的交换,就说S和S’是冲突等价

冲突可串行化:冲突等价一个串行调度

可串行化判断:谁和谁有冲突指令,就将两个T按照顺序画出箭头(前趋图)

可串行化当且仅当无环

可以对图进行拓扑排序,得到以一个顺序(从入度为0的点开始找)

就是T8如果撤销,那么T9读取的数据(脏数据)就会出问题(因为T8没运行完可以撤销)

可恢复:T8的提交必须在T9之前提交

5.级联回滚

级联回滚:一个事务的撤销导致大量数据回滚。恢复代价大

无级联调度:在另一个事务read之前有write操作需要提前结束

隔离级别isolation level:设置安全标准,标准越高效率越低

6.数据库恢复策略

数据库破坏后保留数据库副本日志文件可能恢复数据库

扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入REDO队列,同时找出故障发生时尚未完成的事务,将其事务标识记入UNDO队列;对UNDO队列中的各个事务进行撤销处理;对REDO队列中的各个事务进行重做处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值