ADO对象模型是数据绑定是绑定技术中使用最频繁,也是最为重要的技术,也可以说是各种.Net开发语言开发数据库应用程序最需要掌握的基本的知识之一。数据绑定之所以很重要,是因为在.Net FrameWork SDK中并没有提供数据库开发的相关组件。
原子性
原子的交互是不可分的,也就是说,它不能部分地被完成。每个事务必须具有原子性。例如,在前面的银行示例中,如果减少了客户支票账户中的钱,但没有增加客户存折账户中的钱,这是不允许的。如果事务失败,数据库必须回到事务没有发生之前的状态。
提示:所有的事务,甚至是失败的事务,都会以琐碎的方式对数据库产生影响:资源消耗、影响性能、日志文件更新。原子性要求,如果ADO对象模型,所有的表和数据(除了日志表)都将回到事务没有发生之前的状态。#t#
一致性
在事务开始之前,数据库会被假设处于一致的状态。当事务完成时,事务必须仍然保证它处于一致状态。当事务正在被执行时,数据库无须处于一致状态。继续我们的资金转移的示例,在事务进行时,数据库无须一致(在增加客户的存折账户的钱之前,ADO对象模型减少客户的支票账户的钱是完全正常的)。然而,在结束时,它必须保持一致,也就是说,当事务完成时,账面必须保持平衡。
独立性
事务不是每次只处理一个。通常,数据库可能要一次处理许多事务,并在不同操作间切换。这就为一个事务查看和操作另一个正在处理的事务的数据创造了可能,因此,当前数据可能处于不一致状态。事务独立性就是设计用来防止这种情况发生的。对于一个独立的事务而言,ADO对象模型事务的效果必须就好像只有这个事务自己在运行一样,不允许有任何其他数据库操作所产生的效果,或存在对于其他数据库的依赖性。需要了解更多信息,可参见下文的“数据独立性”。
持久性
一旦事务被提交,它对于数据库的影响是持久的。