原子性(Atomicity): 事务要么全部完成,要么全部取消。 如果事务崩溃,状态回到事务之前(事务回滚)。
隔离性(Isolation): 如果2个事务 T1 和 T2 同时运行,事务 T1 和 T2 最终的结果是相同的,不管 T1和T2谁先结束。
持久性(Durability): 一旦事务提交,不管发生什么(崩溃或者出错),数据要保存在数据库中。
一致性(Consistency): 只有合法的数据(依照关系约束和函数约束)才能写入数据库。
原子性,确保不管交易过程中发生了什么意外状况(服务器崩溃、网络中断等),不能出现A账户少了一个亿,但B账户没到帐,或者A账户没变,但B账户却凭空收到一个亿(数据不一致)。A和B账户的金额变动要么同时成功,要么同时失败(保持原状)。
隔离性,如果A在转账1亿给B(T1),同时C又在转账3亿给A(T2),不管T1和T2谁先执行完毕,最终结果必须是A账户增加2亿,而不是3亿,B增加1亿,C减少3亿。
持久性,确保如果 T1 刚刚提交,数据库就发生崩溃,T1执行的结果依然会保持在数据库中。
一致性,确保钱不会在系统内凭空产生或消失, 依赖原子性和隔离性。
网友评论