首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

ACID Properties
ACID属性

事务可以由四个基本性质来定义,简记为首字母缩写:ACID(原子性  atomicity、一致性  consistency、隔离性  isolation、持久性 durability)。

Atomicity
原子性

原子性保证了要么所有更新都已完成,要么全部都未发生。由于事务保证的原子性,你不需要亲自编写代码来处理诸如一些已更新完成,其他却失败了的状况。

对照刚才的关于课程安排的例子,如果从第一个课程的名单里移除此学生成功,但是添加他到第二个课程的名单时失败,那么事务就会中止,并且此学生最终不会被从第一个课程中的名单移除。

Consistency
一致性

一致性意味着事务结束后系统的数据依然保证一致。在事务开始之前,数据保持有效的状态,事务结束后也如此。

一致性可以用讨论原子性时的同样情形,即把一个学生从一个课程转移到另一个来描述。如果把学生从第一个课程移除失败,但是添加到第二个课程成功,那么这个学生将被同时登记在两个课程上。这是不合法的情形,数据库的数据将不能保持一致。一致性表

示,事务的结果必须使数据库仍保持数据一致的状态。所以事务的部分操作失败的话,所有其他部分也要回到原先的状态,就象什么都没发生一样。

Isolation
隔离性

多个用户可能同时对同一个数据库进行操作。隔离性保证了在事务完成之前,该事务外部不能看到事务里的数据的改变。也不能访问一些中间状态,因为假如事务终止的话,这些状态将永远不会发生。

如果你做一个查询来获取所有课程的学生名单,与此同时,一个事务正在运行,把一个学生从一个课程转移到另外一个,那么两个课程的名单上都不会出现这个学生。隔离性保证了事务外无法看到事务内的任何中间状态或结果。

Durability
持久性

持久性意味着即便是系统当机也能保证一致性的状态。如果一个数据库系统当机,它必须保证已完成的事务确实已经写入数据库。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论