黑马day11 事务的四大特性

1.事务的四大特性:一个事务具有的最基本的特性,一个设计良好的数据库可以为我们保证这四大特性。

1.1原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生要么都不发生。

1.2一致性:如果事务执行之前数据库是一个完整性的状态,那么事务结束后,无论事务是否执行成功,数据库仍然是一个完整性状态.

数据库的完整性状态:当一个数据库中的所有的数据都符合数据库中所定义的所有的约束,此时可以称数据库是一个完整性状态.

1.3隔离性:事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间事务要隔离

1.4持久性:持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。

2.隔离性:

将数据库设计成单线程的数据库,可以防止所有的线程安全问题,自然就保证了隔离性.但是如果数据库设计成这样,那么效率就会极其低下.

如果是两个线程并发修改,一定会互相捣乱,这时必须利用锁机制防止多个线程的并发修改

如果两个线程并发查询,没有线程安全问题

如果两个线程一个修改,一个查询……

脏读:一个事务读取到另一个事务未提交的数据

不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同 — 行级别的问题

脏读

事务1:张三给李四转账100元

事务2:李四查看自己的账户

? t1:事务1:开始事务

? t2:事务1:张三给李四转账100元

? t3:事务2:开始事务

? t4:事务2:李四查看自己的账户,看到账户多出100元(脏读)

? t5:事务2:提交事务

? t6:事务1:回滚事务,回到转账之前的状态

不可重复读

事务1:酒店查看两次1048号房间状态

事务2:预订1048号房间

? t1:事务1:开始事务

? t2:事务1:查看1048号房间状态为空闲(第一次查询)

? t3:事务2:开始事务

? t4:事务2:预定1048号房间

? t5:事务2:提交事务

? t6:事务1:再次查看1048号房间状态为使用(第二次查询)

? t7:事务1:提交事务

对同一记录的两次查询结果不一致!

幻读

事务1:对酒店房间预订记录两次统计

事务2:添加一条预订房间记录

? t1:事务1:开始事务

? t2:事务1:统计预订记录100条

? t3:事务2:开始事务

? t4:事务2:添加一条预订房间记录

? t5:事务2:提交事务

? t6:事务1:再次统计预订记录为101记录

? t7:事务1:提交

  对同一表的两次查询不一致!

不可重复读和幻读的区别:

? 不可重复读是读取到了另一事务的更新;

? 幻读是读取到了另一事务的插入(MySQL中无法测试到幻读);

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 10:44:40

黑马day11 事务的四大特性的相关文章

数据库事务的四大特性ACID

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,所以事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响.为了实现原子性,需要通过日志:将所有对数据的更新操作都写入日志,如果一个事务中的一部分操作已经成功,但以后的操作,由于断电/系统崩溃/其它的软硬件错误而无法继续,则通过

数据库事务的四大特性以及事务的隔离级别

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. ⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执

数据库事务的四大特性及事务隔离级别

摘自:http://www.cnblogs.com/fjdingsd/p/5273008.html 本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. ⑵ 一致性(Consi

数据库事务的四大特性和隔离级别

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么全部执行,要么全部都不执行. 一个逻辑工作单元要成为事务,必须满足事务的四大特性(ACID).即原子性(Atomic).一致性(Consistent).隔离性(Insulation)和持久性(Duraction). 原子性(Atomic):事务是一个完整的操作,事务的各个操作步骤是不可分的.即要么都执行,要么都不执行. 一致性(Consistent):事务执行的结果必须使数据库从一个一致性状态

事务的四大特性ACID

ACID是指数据库事务的四大特性,是由Jim Gray在19世纪70年代后期提出的概念,1983年Andreas Reuter and Theo Härder创造了ACID这个缩略语用来描述这四大特性. 原子性Atomicity是指事务是一个不可分割的整体,要么处于完成状态,要么处于未完成状态,不存在中间状态. 一致性Consistency是指任何事务操作完成后的结果不允许违背数据一致性的情况,其中包括不允许违背事先定义的约束Constraints等. 隔离性Isolation用于控制数据库的并

数据库事务的四大特性以及事务的隔离级别(mysql)

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. ⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执

数据库事务的四大特性以及事务的隔离级别详解

作者 : fjdingsd 来源 : 博客园 本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. ⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性

DBMS事务的四大特性

数据库事务的四大特性分别是:原子性.一致性.隔离性和持久性. 特性 说明 实现 一致性 在一个事务执行之前和执行之后数据库都必须处于一致性状态.假如数据库的状态满足所有的完整性约束,也可以说数据库是一致的 DBMS的完整性子系统实现 原子性 事务是一组不可分割的操作单元,这组单元要么同时成功要么同时失败 DBMS的事务管理子系统实现 隔离性 多个用户的事物之间不能相互影响,需要相互隔离 DBMS的并发控制子系统实现 持久性 一个事务一旦提交,那么它对数据库产生的影响就是永久不可逆的,如果后面在回

事务的四大特性(ACID)

事务的四大特性(ACID) 1.原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性. 2.一致性(consistency):数据库总数从一个一致性的状态转换到另一个一致性的状态. 3.隔离性(isolation):一个事务所做的修改在最终提交以前,对其他事务是不可见的. 4.持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据