3.6 通过事务保证数据完整性
3.6.1 .NET事务基础
在进行数据库操作过程,需要通过一种机制来保证数据的完整性,即事务。事务需要实现ACID特性。
ACID (atomicity, consistency, isolation, and durability),即原子性、一致性、不相关性和持久性,简介如下:
·原子性:在一个操作中涉及两个或两个以上独立的信息,这些信息要么全部提交,要么一个也不提交。
·一致性:操作要么创建新的有效的数据状态,要么(如果发生任何错误的话)将所有数据返回到初始状态。
·不相关性:操作在没有提交并不与别的任何操作发生任何关系。
·持久性:即使发生错误重新启动,保存过的已经提交的数据在正确状态下仍然有效。
.NET的事务分为两种情况:手动事务和自动事务。
(1)手动事务
手动事务允许显式处理若干过程,这些过程包括:开始事务、控制事务边界内的每个连接和资源登记、确定事务结果(提交或中止)以及结束事务。尽管此模型提供了对事务的标准控制,但它缺少一些内置于自动事务模型的简化操作。例如,在手动事务中数据存储区之间没有自动登记和协调。此外,与自动事务不同,手动事务中事务不在对象间流动。
如果选择手动控制分布式事务,则必须管理恢复、并发、安全性和完整性。也就是说,必须应用维护与事务处理关联的 ACID 属性所需的所有编程方法。
(2)自动事务
ASP.NET 页、XML Web services方法或 .NET Framework 类一旦被标记为参与事务,它们将自动在事务范围内执行。您可以通过在页、XML Web services 方法或类中设置一个事务属性值来控制对象的事务行为。特性值反过来确定实例化对象的事务性行为。因此,根据声明特性值的不同,对象将自动参与现有事务或正在进行的事务,成为新事务的根或者根本不参与事务。声明事务属性的语法在 .NET Framework 类、ASP.NET 页和 XML Web services 方法中稍有不同。
声明性事务特性指定对象如何参与事务,如何以编程方式被配置。尽管此声明性级别表示事务的逻辑,但它是一个已从物理事务中移除的步骤。物理事务在事务性对象访问数据库或消息队列这样的数据资源时发生。与对象关联的事务自动流向合适的资源管理器,诸如 OLE DB、开放式数据库连接 (ODBC) 或 ActiveX 数据对象 (ADO) 的关联驱动程序在对象的上下文中查找事务,并通过分布式事务处理协调器 (DTC) 在此事务中登记。整个物理事务自动发生。
| 回书目 上一节 下一节 |
|
||||
| · 隐私保护技术探讨 · Windows Server 2008专.. · WCF开发基础 · Linux——从菜鸟到高手 · 微软出价446亿美元收购.. · SQL Server 2008/2005.. · RAID——磁盘阵列基础 · 微软Forefront企业安全.. |
· 如何优化IT 控制能耗 · 国际文档格式标准开战 · CISSP认证成长之路 · 珊瑚虫QQ作者侵权案开庭 · 贝恩资本携手华为22亿.. · 802.11n:下一代的无线.. · 体验Visual Studio 200.. · 运营商封堵非法ADSL共享 |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · 子网掩码教程 · SQL Server 2008/2005.. · RAID——磁盘阵列基础 · 中间件应用技术专题 · 深入了解PGP加密技术 · 病毒查杀专题 |
· VPN技术 · 国际文档格式标准开战 · SSL VPN详细知识 · Linux防火墙 · 打造安全服务器 · Sniffer安全技术从入门.. · 木马原理与防范 · ADSL应用面面俱到 |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · 中间件应用技术专题 · SQL Server 2008/2005.. · 子网掩码教程 · RAID——磁盘阵列基础 · 身份认证技术 · 病毒查杀专题 |
· 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · VPN技术 · 了解统一威胁管理(UTM).. · 网络钓鱼 · ADSL应用面面俱到 · ADSL应用面面俱到 |
|||