1.事务

  事务(Tranction)是指,由一系列对系统中数据进行访问与更新操作,所组成的一个逻辑执行单元。狭义上的事务是指数据库事务。

事务有四个特性。

  原子性:原子性要求事务只允讲有两种状态,全部执行成功,或者全部不执行成功。

  一致性:一个事务在执行前和执行后,数据库都必须从一个一致性转变到另一个一致性。

  持久性:一旦某个事务提交成功,那么它对数据库所做的更改,必须永久地保存下来。

  隔离性:在并发环境中,并发的事务是相互隔离的,一个事务的执行不能被其它事务干扰。

  标准的sql规范,有4种数据库隔离级别:

    (1)读未提交数据。允许脏读,隔离级别最低。

      a事务正在处理数据,但还未提交事务,此时b事务可以读取到a事务的数据,当a事务的处理进程发生异常时,事务回滚,此时b读的就是脏数据。

    (2)读已提交的数据。会出现不可重复读。

      a事务处理完数据,数据值变为20,b事务访问获取值是20;  C事务处理该数所,该数据变为30,b数据再次取,取出值是30,和上次访问取的值不一样。

    (3)可重复读。会出现幻读。

    (4)串行化。

      事务不能并发执行,只能一个一个来,效率低。

数据库默认,可重复读。遇到问题具体解决,可使用悲观锁,乐观锁。

2.

1.2 从 ACID 到 CAP/BASE的更多相关文章

  1. 分布式系列文章——从ACID到CAP/BASE

    事务 事务的定义: 事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元(Unit),狭义上的事务特指数据库事务. 事务的作用: 当多个应用程序并发访问 ...

  2. ACID和CAP, BASE

      ACID:关系型数据库中事务的4个属性:   Atomicity,原子性,整个事务的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间的某个环节.事务在执行过程中出错,会回滚到事务开始前的状 ...

  3. 分布式系列文章 —— 从 ACID 到 CAP / BASE

    转自:https://mp.weixin.qq.com/s?amp;mid=2652037708&__biz=MzI0NDI0MTgyOA%3D%3D&idx=1&chksm= ...

  4. 分布式理论系列(一)从 ACID 到 CAP 到 BASE

    分布式理论系列(一)从 ACID 到 CAP 到 BASE 一.ACID 1.1 事务的四个特征: (1) Atomic(原子性) 事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程 ...

  5. [转帖]浅谈分布式一致性与CAP/BASE/ACID理论

    浅谈分布式一致性与CAP/BASE/ACID理论 https://www.cnblogs.com/zhang-qc/p/6783657.html ##转载请注明 CAP理论(98年秋提出,99年正式发 ...

  6. 分布式中 CAP BASE ACID 理解(转载)

    概念理解(CAP,BASE, ACID) CAP CAP:  Consistency, Availability, Partition-tolerance 强一致性(Consistency).系统在执 ...

  7. 从ACID到CAP及BASE

    从ACID到CAP及BASE ACID 说到事务,肯定想到事务的ACID特性,即原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durabilit ...

  8. 分布式数据库中CAP原理(CAP+BASE)

    分布式数据库中CAP原理(CAP+BASE) 传统的ACID 1)原子性(Atomicity): 事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功. 2)一致性(Con ...

  9. 事务,acid,cap,paxos随笔

    事务ACID四个特性: A:原子性(Atomicity)C:一致性(Consistency)I:隔离性(Isolation)D:持久性(Durability) 原子性:语句要么全执行,要么全不执行,是 ...

随机推荐

  1. POJ1915Knight Moves(单向BFS + 双向BFS)

    题目链接 单向bfs就是水题 #include <iostream> #include <cstring> #include <cstdio> #include & ...

  2. 机器学习笔记----- ID3算法的python实战

    本文申明:本文原创,如有转载请申明.数据代码来自实验数据都是来自[美]Peter Harrington 写的<Machine Learning in Action>这本书,侵删. Hell ...

  3. RequestDemo01

    package com.etc.requestdemo; import java.io.IOException;import java.io.PrintWriter; import javax.ser ...

  4. Python2.7安装(win7)

    Python可在官方网站直接下,或者百度一下Python2.7下载,这里推荐使用2.7而不是3.3,比较适合初学者 工具/原料 win7系统 python2.7安装包 方法/步骤 1.从官网下载最新的 ...

  5. Java数据结构——用链表实现栈

    //================================================= // File Name : LinkStack_demo //---------------- ...

  6. 【经典】C++&RPG对战游戏

    博文背景: 还记大二上学期的时候看的这个C++&RPG游戏(博主大一下学期自学的php,涵盖oop内容),一个外校的同学他们大一学的C++,大二初期C++实训要求做一个程序填空,就是这个 RP ...

  7. Favorite Games

    Samurai II: Vengeance: http://www.madfingergames.com/games

  8. VS编译器从DLL导出模板类

    DLL与模板 http://msdn.microsoft.com/en-us/library/twa2aw10.aspx http://www.codesynthesis.com/~boris/blo ...

  9. Debian 8安装ibus输入法

    # apt-get install ibus ibus-sunpinyin ibus-table-wubi

  10. 使用BLADE构建c++工程管理

    使用BLADE构建c++工程管理 字数764 阅读2753 评论2 喜欢4 一. c++工程依赖管理 之前在百度一直使用comake2构建c++项目,十分方便.免去了手写Makefile的痛苦,很多项 ...