一、事务(Transaction)是由一系列相关的SQL语句组成的最小逻辑工作单元。Oracle系统以事务为单位来处理数据,用以保证数据的一致性。对于事务中的每一个操作,要么全部完成,要么全部不执行。
二、事务的特性?
1、原子性:事务是原子的,也就是说一个事务中包含的所有SQL操作都是一个不可分割的工作单元。
2、一致性:事务必须保持数据库的状态保持一致,也就是说事务开始的时候,数据库的状态是一致的;在事务结束时,数据库的状态也应该是一致的。
3、隔离性:多个事务可以独立运行,而不会互相影响。
4、持久性:一旦事务被提交以后,对数据库的修改会被永久的保存下来,即使运行数据库软件的机器后来崩溃也是如此。
三、什么是数据库的并发?
数据库软件支持同时多个用户与数据库进行交互,每个用户都可以同时运行自己的事务,这种事务就是并发事务。
四、事务的隔离级别
下面例子,其中两个并发的事务T1和T2正在访问相同的行,这个例子可以展示出事务处理中可能存在的3中问题。
1、幻像读取:事务T1读取一条指定where子句所返回的结果集。然而事务T2新插入了一行记录,而这行记录正好满足事务T1所使用的查询条件。然后T1又使用相同的查询条件再此对表进行检索,但是却看到了事务T2刚刚说插入的那条数据,而这条刚刚插入的数据就称为“幻像”。
2、不可重复读取:事务T1读取了一条记录,紧接着事务T2又对事务T1读取的那条数据做了修改,然后事务T1又读取了这条记录,发现和刚才读取的数据内容不一样了。这种现象成为"不可重复读"。
3、脏读:事务T1更新了一条记录的内容,但是并没有提交所做的修改。而事务T2读取了更新后的行,然后事务T1又做了回滚操作,取消了修改。这时候发现事务T2所读取的数据无效了(也称为脏数据)。因为T2在读取这行数据的时候,T1并没有提交事务。
为了处理这些可能出现的问题,数据库实现了不同级别的事务隔离性,以防止事务的互相影响。
1、read uncommitted 幻像读、不可重读读和脏读都允许。
2、read committed 允许幻像读和不可重复读,但是不允许脏读。
3、repeaable read 允许幻像读,不允许不可重复读和脏读。
4、serializable 幻像读、不可重读度和脏读都不允许。
分享到:
相关推荐
具体而言,通过对长事务中的每个操作以及子事务的顺序关系进行分析,将读写依赖和写写依赖纳入考量,从而避免或减少冲突的发生。 事务访问文件则是一种特殊的文件记录方式,用以整理历史事务更新的数据。它能够有效...
数据库事务处理和并发控制是数据库管理系统(DBMS)中的核心技术, Guarantees 数据库的可靠性和一致性。本文将详细介绍数据库事务处理和并发控制技术的概念、特性和实现机制。 一、事务处理概念 事务处理是数据库...
事务保证了数据的原子性,即事务中的所有操作要么全部完成,要么全部不完成,不会出现中间状态。 在SQL Server中,事务通常有三个主要状态:活动(Active)、部分提交(Partially Committed)和提交(Committed)或...
原子性保证事务中的所有操作要么全部完成,要么全部不完成,一致性则保证事务完成后,数据库的状态仍然满足预设的完整性约束,隔离性确保并发执行的事务之间不会相互影响,而持久性则意味着一旦事务提交,其结果就是...
SQL数据库中事务的实现方法.pdf
数据库中事务处理技术及其在铁路中的应用.pdf
然而,分布式数据库系统在处理长事务(Long Running Transactions)时会面临一系列挑战,尤其是在确定性分布式数据库环境中,如何保证高吞吐量的同时避免读写冲突和缓冲区置换频率升高等问题,是分布式数据库系统...
在本示例中,我们使用了setTransactionSuccessful()方法来标记事务中的sql语句全部成功执行。如果所有sql语句都执行成功,事务将被提交;否则,事务将被回滚。 Android数据库事务操作的优点 Android数据库事务操作...
原子性确保事务中的所有操作要么全部完成,要么全部不完成;一致性则保证事务执行前后,数据库状态保持一致;隔离性使并发执行的事务不会相互干扰,看到的数据是一致的;持久性则意味着一旦事务提交,其结果将永久...
事务处理是数据库系统中的关键概念,它是确保数据一致性、完整性和可靠性的重要机制。 首先,我们需要了解什么是数据库。数据库是一个结构化的数据集合,它可以存储各种类型的信息,如文本、数字、图像等。常见的...
以下是一些关于如何管理和压缩SQL Server 2000数据库事务日志文件的知识点: 1. **事务日志文件的增长**: - 日志文件会随着数据库中事务的增加而持续增长,直到达到预先设置的最大大小或磁盘空间耗尽。 - 如果...
1. **原子性(Atomicity)**:事务中的所有操作要么全部完成,要么全部不完成,不允许部分操作成功。如果在执行过程中发生错误,系统会回滚到事务开始前的状态。 2. **一致性(Consistency)**:事务执行前后,...
分布式数据库中的事务管理和恢复分布式数据库中的事务管理和恢复
数据库事务是数据库操作的核心概念,尤其在C#编程中,理解并熟练运用数据库事务对于确保数据的完整性和一致性至关重要。数据库事务确保了在多步骤操作中,如果其中一个步骤失败,整个事务可以被回滚,从而避免了数据...
4. 光标混乱:在并发事务中,光标可能指向已被其他事务修改的记录,导致错误。 5. 未释放修改造成的连锁退出:事务在进行修改时如果突然中断,未提交的修改可能影响其他事务。 6. 表定义的并发修改:一个事务在更新...
1. **原子性(Atomicity)**:事务中的每个操作要么全部完成,要么全部不完成,不存在部分完成的情况。如果在事务执行过程中发生错误,系统会回滚到事务开始前的状态。 2. **一致性(Consistency)**:事务执行后,...
分布式数据库和事务处理课程讲义12-11
`语句提交事务,因此事务中的更改不会被保存到数据库中。这意味着即使执行了更新操作,数据库中的记录也不会发生变化。 #### 7. 事务成功回滚的情况 - **正确答案**:D、事务成功回滚了,表中记录不会有任何更新 - ...
数据库事务处理是数据库管理系统中的核心概念,用于确保数据的一致性和完整性。事务是数据库操作的基本单元,它包含一组逻辑操作,这些操作要么全部执行,要么全部不执行,以确保数据的原子性。事务处理主要关注两个...