首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网页制作-> DHTML教程
C#数据库事务原理及实践(上)-.NET教程,C#语言
作者:网友供稿 点击:21
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
什么是数据库事务

   数据库事务是指作为单个逻辑工作单元执行的一系列操作。

设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:

   · 更新客户所购商品的库存信息

   · 保存客户付款信息--可能包括与银行系统的交互

   · 生成订单并且保存到数据库中

   · 更新用户相关信息,例如购物数量等等

正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。

数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。

数据库事务的acid属性

事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的acid(原子性、一致性、隔离性和持久性)属性:

   · 原子性

事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。

   · 一致性

事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 b 树索引或双向链表)都必须是正确的。某些维护一致性的责任由应用程序开发人员承担,他们必须确保应用程序已强制所有已知的完整性约束。例如,当开发用于转帐的应用程序时,应避免在转帐过程中任意移动小数点。

   · 隔离性

由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。当事务可序列化时将获得最高的隔离级别。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量。

   · 持久性

 事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。
dbms的责任和我们的任务

企业级的数据库管理系统(dbms)都有责任提供一种保证事务的物理完整性的机制。就常用的sql server2000系统而言,它具备锁定设备隔离事务、记录设备保证事务持久性等机制。因此,我们不必关心数据库事务的物理完整性,而应该关注在什么情况下使用数据库事务、事务对性能的影响,如何使用事务等等。

本文将涉及到在.net框架下使用c#语言操纵数据库事务的各个方面。
体验sql语言的事务机制

作为大型的企业级数据库,sql server2000对事务提供了很好的支持。我们可以使用sql语句来定义、提交以及回滚一个事务。

如下所示的sql代码定义了一个事务,并且命名为"mytransaction"(限于篇幅,本文并不讨论如何编写sql语言程序,请读者自行参考相关书籍):


    declare @tranname varchar(20)

select @tranname = mytransaction
begin transaction @trannamegouse pubs
go

update roysched
set royalty = royalty * 1.10
where title_id like pc%
go

commit transaction mytransaction
go
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·使用MiddleGen 产生hibernate的数据库表映射文件-JSP教程,数据库相关
·关于防火电线电缆的特性和型号
·一个jsp连接mysql的简单例子-JSP教程,Jsp/Servlet
·ip网络拓扑自动发现
·XML入门精解之文件格式定义(DTD)-.NET教程,XML应用
·Flash 和 ASP / PHP 以及 Javascript 的交互-ASP教程,ASP应用
·VB6如何让程序开机就自动启动-.NET教程,VB.Net语言
·Java数据库字符国际化-JSP教程,数据库相关
·ip网络性能测试系统介绍
·.NET三层经典架构PetShop3.0分析之表现层-.NET教程,.NET Framework
最新文章
·photoshop抠出墨滴入水的流动效果_photoshop教程
·只需十三招 轻松学会利用博客赚钱_网赚技巧
·对话王学集:专注是个人网站的成功法典_站长访谈
·李想:消费者和渠道是垂直类网站的关键_站长访谈
·个人站点提高访问量谋略3_站长心得
·再谈多媒体文件的搜索技巧_google推广
·用自己的方法去做搜索优化和做站_seo网站优化
·backpack - 体验可读写的web服务_站长心得
·搜索引擎优化策略_seo网站优化
·从jz123的发展看个人网站发展的关键_站长心得
相关主题
  • c#数据库操作的3种典型用法_c#应用
  • C#数据库连接字符大全-.NET教程,C#语言
  • C#数据库編程2-.NET教程,数据库应用
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭