原 数据库中的事务概念、ACID特性和隔离级别
Tags: Oracle原创PGMySQL事务并发隔离级别MVCCACID
事务介绍及其ACID特性和隔离级别
事务简介
事务(Transaction)是一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK操作结束,COMMIT即提交,提交事务中所有的操作、事务正常结束。ROLLBACK即回滚,撤消已做的所有操作,回滚到事务开始时的状态。事务是数据库系统区别于文件系统的重要特性之一。
事务的作用:当多个进程都开启事务同时操作数据库中的数据时,数据库系统要能进行隔离操作,以保证各个进程获取到正确的数据。
对于事务可以举一个简单的例子:转账,有A和B两个用户,A用户转100到B用户,如下所示:
A:---->支出100,则 A-100
B:---->收到100,则 B+100
A--->B转账,对应如下SQL语句:
1 2 3 | UPDATE ACCOUNT SET MONEY=MONEY - 100 WHERE NAME='A'; UPDATE ACCOUNT SET MONEY=MONEY + 100 WHERE NAME='B'; |
事务的四个特性
事务有4个特性,一般都称之为ACID特性,简单记为原一隔持(谐音:愿意各吃,即愿意各吃各的),如下表所示: