在ADO.NET中使用事务保护数据的完整性(1)

原创 2004年06月11日 11:24:00

ADO.NET中使用事务保护你数据的完整性

Christa  May 2004

小结: 当修改数据时,事务是维护数据完整性的一个关键特征. 纵览一下事务及其重要性,接下来学习如何在你的应用中使用事务保护数据.

内容<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

介绍

事务剖析

事务在ADO.Net

实施事务

总结

介绍

大多数企业数据库为了在数据修改时保证数据的完整性而提供了事务这样一个特征. 维护数据的完整性目的是保证组织依赖数据的质量; 毕竟, 当你生成报表或进行一些数据驱动的处理, 你希望知道你操作的数据是正确的.

一个成功的事务必须通过”ACID”测试, 它必须如此:

·                         原子性 所有在事务中的表述或者执行正确, 或者它们全部回滚. 所有操作集合代表或完成或失败, 而不会是剩下部分, 损坏你的数据.

·                         一致性 所有通过事务接触的数据在逻辑上保持一致状态. 例如, 存货数量在一个消耗的表中, 这儿有相关的订单消费存货. 因此存货不能丢失.

·                         孤立性 事务必须在没有干扰别的并发事务时或被别的并发事务干扰的情况下影响数. 这就阻止事务在没有授权信息的情况下改变数据. 大部分数据库使用上锁保证事务的孤立性.

·                         持久性 通过事务修改的数据是永久的, 并且会持续到系统失败.

经典的例子是提交订单和订单系统 你已经检查了顾客的信誉等级, 创建了订单记录, 创建了订单条目, 消费订单条目从库存中, 创建运输请求, 等等. 如果这些步骤中的一步或多步失败, 其余的将失败, 你可以在一个孤立的,不可靠的库存数量,或其它的记录表格中结束数据的不一致性. 正确的使用事务阻止这种可能发生的情形. 这对于你们的DBA, 你们的公司, 和你的工作的安全性都有好处.

这就是说,记住在有必要的去使用事务. 管理事务会增加系统的开销. 使用事务也会增加系统中锁(或其它独立机制,依赖数据库)的范围, 会导致并发问题. 考虑这些情况封装到事务当中作为一个原子单元执行, 考虑在执行环境下产生的后果, 考虑部分完成时会发生什么.

事务可以使用各种原生数据库的SQL变量在服务器端实施, , 也可以使用ado.net在应用中调用. 本文章使用ado.net数据提供对象实施数据库事务. 我将以事务剖析为开始并且看它们是如何和你的数据库交互的. 然后看一下.Net Framework 提供的类是如何帮助你在数据读取代码中实现和管理事务的, 已经它们一些使用的通常场景.

在ADO.NET中使用事务保护数据的完整性(3)

事务在ADO.Net中Ado.net 支持两种事务模型,这在.Net Framework 文档中作为指南有定义.事务指南手册介绍了通常应该知道的数据库事务, 它影响操作单个目标数据库.一个类通过由ad...
  • wildhorseli
  • wildhorseli
  • 2004年06月14日 15:19
  • 1001

在ADO.NET中使用事务保护数据的完整性(5)

 使用Savepoints当使用savepoints, 记住仅仅是回滚savepoints并不是足够的.当局部回滚后事务必须仍被提交.同时,如果你选择实施它们,如何通知用户或处理局部完成事务是非常重要...
  • wildhorseli
  • wildhorseli
  • 2004年06月14日 15:17
  • 888

在ADO.NET中使用事务保护数据的完整性(2)

事务剖析事务最基本上包含两个步骤 – 开始, 然后是提交或回滚. 开始调用定义了事务的边界, 同时调用提交或回滚在定义结束. 在事务边界内, 所有的执行描述被认为是完成任务的一部分, 必须作为成功或失...
  • wildhorseli
  • wildhorseli
  • 2004年06月11日 15:47
  • 814

在ADO.NET中使用事务保护数据的完整性(4)

实施事务既然我们已经看了类和成员,让我们来看一下基本的实施情况.接下来的代码是一个简单的情况,使用事务来保证两个存储过程-一个从表中删除库存,另一个增加库存在另个表中,或同时执行,或失败.using ...
  • wildhorseli
  • wildhorseli
  • 2004年06月14日 15:17
  • 813

确保事务完整性

确保数据完整性 一、认识约束 约束是数据库中保证数据库里表中数据完整性的手段。录入数据库中的数据都有实际的意义,而约束的作用就是保证数据在实际业务中是有意义的,也就是减少脏数据的机会。   1....
  • u012027907
  • u012027907
  • 2013年10月02日 14:40
  • 1673

.NET开发中的事务处理大比拼 之 ADO.NET级别的事务

现在我们对事务的概念和原理都有所了解了,并且作为已经有一些基础的C#开发者,我们已经熟知编写数据库交互程序的一些要点,即:(1)使用SqlConnection类的对象的Open()方法建立与数据库服务...
  • sven_xu
  • sven_xu
  • 2015年06月02日 09:13
  • 1246

软件的完整性保护问题

软件的完整性保护问题不仅是个老话题,也是当前的一个重要而未解决的问题. “重要而未解决”这一断言是以目前计算机网络病毒,恶意代码,流氓软件,木马程序肆虐横行的现实情况来佐证的.  的确,许多这一类的攻...
  • wenbomao
  • wenbomao
  • 2008年07月29日 00:46
  • 5063

mysql 如何保证数据完整性 -- 笔记

mysql 约束和索引  相同点: 保证证数据的完整性 区别: 索引是从数据结构的角度来保证数据完整性, 而 约束是一个逻辑概念,用来保证数据完整性. 保证数据完整性的方法: 一. 对错误数据...
  • lyfjx8701
  • lyfjx8701
  • 2013年09月29日 10:46
  • 640

HTTP+ 加密 + 认证 + 完整性保护 =HTTPS

早上起来看了会书,虽然一遍可能不会完全学会,但是还是希望能学多少学多少,  1.HTTP+ 加密 + 认证 + 完整性保护 =HTTPS  如果在 HTTP 协议通信过程中使用未经加密的明文,比如...
  • qq_33413264
  • qq_33413264
  • 2017年06月13日 10:14
  • 448

通过加密算法实现数据的完整性、机密性及身份验证

一般互联网上加密算法分为三种:                 对称加密、单向加密、非对称加密 下面就来介绍下如何通过上面的三种加密算法实现数据的机密性、完整性及身份验证。 对称机密算法: ...
  • lyglostangel
  • lyglostangel
  • 2015年05月15日 07:50
  • 3801
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在ADO.NET中使用事务保护数据的完整性(1)
举报原因:
原因补充:

(最多只允许输入30个字)