什么是数据库事务以及特性?

数据库事务定义:数据库是面向多用户的共享机制,所以数据库管理要具有并发性和同步机制,而事务就是一种多个执行步骤的执行特性,即要么同时执行相应的操作要么一个也不执行。这样就保证了在多个用户操作同一数据时数据的一致性。这样保证数据一致性的操作执行特性就称为事务。

事务的特性:原子性、一致性、隔离性、持久性

事务的隔离级别
隔离级别:读未提交、读已提交、可重复读、串行化

由隔离级别产生的问题:

脏读数据 当第一个用户修改数据时,第二个用户在第一个用户没有确认修改之前读取了该数据,这时可能会出现脏读现象。如果第一个用户确认了修改,第二个用户检索不到数据库中所修改的数据,有时这种现象也称为丢失修改。
不可重复读 当某一个用户对某一行数据进行第一次读取过程后,另外一个用户对该数据进行了修改,从第一个用户的角度来看,如果再次读取原先的数据会发现与前次不同,这就是不可重复读现象。
发生幻象 当第一个用户检查某张表的时候,没有发现某个值X,但是在该用户还没操作完成之前,另外一个用户插入了一个X值,结果,导致第一个用户认为数据库没有X值,而实际上数据库有这个值X。这就是幻象。

补充:用户之间相互干扰,出现的以上问题,后果不堪设想。因此数据库系统采用事务的概念来解决这个问题。

事务属性
事务属性
1、传播行为
2、隔离规则
3、回滚规则
4、事务超时
5、是否只读

事务管理类型

编程式事务管理
将事务管理代码嵌到业务方法中来控制事务的提交和回滚

缺点:必须在每个事务操作业务逻辑中包含额外的事务管理代码

声明式事务管理
一般情况下比编程式事务好用。将事务管理代码从业务方法中分离出来,以声明的方式来实现事务管理。将事务管理作为横切关注点,通过aop方法模块化。Spring中通过Spring AOP框架支持声明式事务管理。

猜你喜欢

转载自blog.csdn.net/weixin_43226394/article/details/84876374