什么是事务处理?解释事务的属性(DBMS)
事务是包含一组操作的数据库处理单元。例如存款、余额查询、订票等。
每个事务都以开始事务的分隔符开始,以结束事务的分隔符结束。这两个定界符内的一组操作构成一个事务。
main() { begin transaction } end transaction
操作
交易有两个基本操作-
Read(x)−将数据项x从数据库加载到内存。{数据库存在于硬盘中}。
Write(x)−更新内存中的数据项x并将其存储在数据库中。
交易属性
数据库系统确保ACID属性,如下所述-
原子性-事务操作全部完成或不完成。
一致性-事务从一个一致(正确)状态转移到另一个一致状态。
隔离-事务与其他事务隔离。即一个事务不受另一个事务的影响。尽管多个事务并发执行,但它必须看起来好像事务是串行运行的(一个接一个)。
耐用性-交易的结果是永久性的,即结果永远不会因后续故障而丢失,耐用性是指持久性,即永久性。
示例
考虑转移卢比的交易。150从账户A到账户B。交易步骤如下-
读A
A=A-150
Write(A)
Read(B)
B=B+150
Write(B)
如果事务在步骤4失败,然后由于部分修改而出现不一致,则需要原子性。这是因为B的值没有更新。
一致性要求-A和B的总和在交易前后应该相同。
隔离要求-如果另一个事务在步骤4期间访问数据,则存在不一致,因为B的值直到现在还没有更新。