1. 事务(Transaction):
是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元);
2. 事务具有 4 个属性,通常称为 ACID 特性:
原子性(atomicity):事务是一个完整的操作.事务的各步操作是不可分的;要么都执行、要么都不执行.
一致性(consistency):当事务完成时,数据必须处于一致状态.
隔离性(isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务.
持久性(durability):事务完成后,它对数据库的修改被永久保存,事务日志能保持事务的永久性.
3. 隔离级别分为:
Read Uncommitted(读未提交)、Read Committed(读提交)、Repeatable Read(可以重复读)、Serializable(序列化)这 4 种级别
3.1 读未提交 Read Uncommitted
•当数据库系统使用Read Uncommitted隔离级别时,一个事务在执行过程中可以看到其他事务没有提交的新添加的记录,也能看到其他事务没有提交的新更新的记录。
• 注意:该事务级别只有理论分析意义,没有任何实际意义,因为没有任何一个真实的系统会设置这种隔离级别!
3.2 读已提交 Read Committed
• 当数据库系统使用Read Committed隔离级别时,一个事务在执行过程中可以看到其他事务已提交的新添加的记录,而且还能看到其他事务已提交的新更新的记录。
3.3 可重复读 Repeatable Read
• 当数据库系统使用Repeatable Read隔离级别时,一个事务在执行过程中可以看到其他事务已提交的新添加的记录,但是不能看到其他事务对已提交的新更新的记录。
3.4 序列化 Serializable
• 当数据库系统使用Serializable隔离级别时,一个事务在执行过程中完全看不到其他事务对数据库所做的增删改查。当两个事务同时操作数据库中相同数据时,如果第一个事务已经在访问该数据,第二个事务只能停下来等待,必须等到第一个事务结束后才能恢复运行。
• 因此,这两个事务实际上是串行化方式运行。所以又称作串行化。