文档详情

事务处理控制.doc

发布:2017-12-22约1.26万字共18页下载文档
文本预览下载声明
事务处理控制 事务处理控制.txt第一次笑是因为遇见你,第一次哭是因为你不在,第一次笑着流泪是因为不能拥有你。目标 如果你是一个临时用户只需要偶而使用SQL 从数据库获得数据的话那么前十天的 的主题已经为你提供了足够的内容但是如果你想开发可以在使用数据库系统下运行的 专业应用程序这在当前在很普遍的那么你在今后四天中讲到的内容事务控制安全 内嵌SQL 语句数据库过程将会对你有很大的帮助我们先从事务控制开始到今天的 结束我们将学会以下内容 ??基本的事务控制 ??如何确认或终止某一项事务 ??Sybase 与Oracle 在事务处理上的不同之处 注在今天的例子中我们使用PERSONAL ORACLE 7和SYBASE SQL SERVER 对于你 所使用的解释器请查看相应的帮助文档以找出它们的不同之处 事务控制 事务控制或者说事务处理是指关系数据库系统执行数据库事务的能力事务是指在逻 辑上必须完成的一命令序列的单位单元工作期是指事务的开始和结束时期如果在事务 中产生的错误那么整个过程可以根据需要被终止如果每一件事都是正确的那么结果 将会被保存到数据库中 日后你也许会运行其于网络的多用户应用程序客户/服务环境就是为它而设计的传 SQL 21 日自学通(V1.0) 翻译人笨猪 224 统上的服务器例如数据库服务器支持多个与它连接的工作站与其它技术一样新特 性提高了数据库的复杂程度下边的几段描述了一个银行所使用的应用程序 银行应用程序 假定你受雇于联邦银行并负责为他们设计一个支票管理系统你已经设计了一个非常 完美的数据库并且经常测试检验证明是正确无误的你在应用程序中调用它以后你从 账号中支取了20 元并进行验证数据库中确实已经少了20 元你又从帐号中存入了50.25 元并进行验证结果也与所期望的相同于是你骄傲在告诉你的老板系统可以运行了几 台计算机接入了程序并开始工作 几分钟以后你注意到了一个你没有预见的问题一个出纳员向帐号中存入了一张支 票而另一个出纳则从相同的帐号中提出了一部分钱在分钟之内由于多用户的同时操作 就导致的帐目无法平衡很不幸由于他们之间互相进行更新和写入操作你的应用程序 很快就因为过负荷而断线我们假定出现这个问题的数据库名字叫CHECKING 它有两个 表其内容如下所示 表11.1 Name Address City State Zip Customer_ID Bill Turner 725 N. Deal Parkway Washington DC 20085 1 John Keith 1220 Via De Luna Dr. Jacksonville FL 33581 2 Mary Rosenberg 482 Wannamaker Avenue Williamsburg VA 23478 3 David Blanken 405 N. Davis Highway Greenville SC 29652 4 Rebecca Little 7753 Woods Lane Houston TX 38764 5 表11.2 Average_Bal Curr_Bal Account_ID 1298.53 854.22 1 5427.22 6015.96 2 211.25 190.01 3 73.79 25.87 4 1285.90 1473.75 5 1234.56 1543.67 6 345.25 348.03 7 假定你的应用程序为BILL Turner 运行了SELECT 查询并得到如下结果 OUTPUT SQL 21 日自学通(V1.0) 翻译人笨猪 225 NAME Bill Turner ADDRESS 725 N. Deal Parkway CITY Washington STATE DC ZIP 20085 CUSTOMER_ID 1 当返回数据的时候另外一个用户连接到了数据库并更新了BILL Turner 的住址信息 INPUT SQL UPDATE CUSTOMERS SET Address =11741 Kingstowne Road WHERE Name = Bill Turner 你现在看到了如果在你执行SELECT 语句当中出现的更新操作的话那么你所得到的 结果将是不正确的如果你的应用程序可以生成一个信件给Bill Turner 那么由于地址是 错误的如果信已经发送了那你是不能对地址进行修改的但是如果你使用了事务处理 机制那么你就可以对检测到错误的数据进行修改你所进行的所有操作也都可以撤消 开始事务处理 事务处理在执行上是非常简单的你需要检查你所执行的语法是Oracle RDBMS SQL 语法还是Sybase SQL Server SQL 语法 所有支持事务处理的系统都必须以一种准确的语法来告诉系统
显示全部
相似文档