黑马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中无法測试到幻读);
黑马day11 事务的四大特性的更多相关文章
- MySQL之事务的四大特性
事务就是一组原子性的SQL查询,或者说一个独立的工作单元.如果数据库引擎能够成功地对数据应用该组查询的全部语句,那么久执行该组查询.如果其中任何一条语句因为崩溃或其他原因无法执行,那么所有语句都不会执 ...
- 事务的四大特性(ACID):
事务的四大特性(ACID): 1.原子性(Atomicity): 事务中所有操作是不可再分割的原子单元.事务中所有操作要么都执行成功,要么都执行失败. 2.一致性(Consistency): 事 ...
- 数据库事务的四大特性以及事务的隔离级别(mysql)
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指 ...
- 数据库事务的四大特性以及事务的隔离级别-与-Spring事务传播机制&隔离级别
数据库事务的四大特性以及事务的隔离级别 本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ ...
- 数据库中事务的四大特性(ACID)
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...
- 数据库事务的四大特性以及4种事务的隔离级别-以及对应的5种JDBC事务隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...
- java面试题之----数据库事务的四大特性及隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...
- 事务的四大特性ACID
ACID是指数据库事务的四大特性,是由Jim Gray在19世纪70年代后期提出的概念,1983年Andreas Reuter and Theo Härder创造了ACID这个缩略语用来描述这四大特性 ...
- DBMS事务的四大特性
数据库事务的四大特性分别是:原子性.一致性.隔离性和持久性. 特性 说明 实现 一致性 在一个事务执行之前和执行之后数据库都必须处于一致性状态.假如数据库的状态满足所有的完整性约束,也可以说数据库是一 ...
随机推荐
- VirtualBox如何增加CentOS根目录容量
1.扩充磁盘容量 单位为M,40000为40G VBoxManage modifyhd centos.vdi --resize 40000 2.指定新的磁盘文件 系统 > 右击 > 设置 ...
- wireshark----教你怎样抓包
wireshark----教你怎样抓包 wireshark是一款强大的抓包工具,走过路过一定不要错过就是了,当你学习TCP/IP协议的时候,学习使用wireshark抓包正是理论联系实际最好的方法,先 ...
- cs-JsonHelper
ylbtech-Unitity: cs-JsonHelper AjaxResult.cs FormatJsonExtension.cs 1.A,效果图返回顶部 1.B,源代码返回顶部 1.B.1 ...
- idea Tomcat 部署 war和war exploded的区别
idea Tomcat 部署 war和war exploded的区别 学习了:https://blog.csdn.net/linjpg/article/details/73322881 explode ...
- 用C++实现Huffman文件编码和解码(2 总结)
这个是代码是昨天写完的,一开始的时候还出了点小bug,这个bug在晚上去吃饭的路上想明白的,回来更改之后运行立刻完成最后一步,大获成功. 简单说下huffman编码和文件压缩主要的技术. Huffma ...
- 程序员之---C语言细节24(段错误、类型提升、sizeof 'A')
主要内容:段错误.类型提升.sizeof 'A' #include <stdio.h> int main() { union test{ char a[10]; int b; }u; i ...
- Linux如何根据UUID自动挂载磁盘分区
一般服务器都有多个硬盘分区,在重启后,这些分区的逻辑位置加载时可能会发生变动,如果使用传统的设备名称(例如:/dev/sda)方式挂载磁盘,就可能因为磁盘顺序变化而造成混乱. Linux环境中每个Bl ...
- varchar2 和varchar区别
1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节:2.VARCHAR2把空串等同于null处理,而varchar仍按 ...
- javascript中的正則表達式
对文本数据进行操作是JavaScript中常见的任务.正則表達式通过同意程序猿指定字符串匹配的模式来简化诸如验证表单中输入是否具有正确格式之类的任务. 1.正則表達式标记: 字符 含义 举例 i 大写 ...
- (一)EasyUI 使用——基本概念
1. EasyUI是什么 EasyUI是一种第三方组织开发的一款基于jQuery的,简单易用的,功能强大的WEB[后台前端]JavaScript现成的组件库. 2. JavaScript,AJAX, ...