网站大量收购独家精品文档,联系QQ:2885784924

第十五课--确保数据的一致性精要.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十五课--确保数据的一致性精要

确保数据的一致性 Copyright?2007-2009 创智新程 确保数据的一致性 事务的定义 利用SQL Server实现事务的功能 事务的创建 事务的提交 事务回滚和回滚事务的部分 游标的使用 声明游标 打开游标 从游标中获取数据 关闭游标 数据的一致性和完整性问题 设想现在最流行的电子商务中的一次网上购物交易,其付款过程至少包括以下几步数据库操作: 更新客户所购商品的库存信息 保存客户付款信息――可能包括与银行系统的交互 生成订单并且保存到数据库中 更新用户相关信息,例如购物数量等等 数据的一致性和完整性问题 正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关数据都将被写入数据库中保存下来。但是,如果在这一系列过程中任何一个环节出了差错,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,否则数据库中的数据就是不一致的或者说是错误的。 任务一:确保数据的一致性 提出任务 FOX公司最近的业务进行调整,合作伙伴也发生了变化。这一切的变化是由公司的不同部门完成的,但是以前的系统出现了很多数据丢失的情况,实际上就是数据发生了不一致的情况。下面我们来看看发生了什么样的事情。 任务一:确保数据的一致性 在采购部门,一个职员做了如下操作: SELECT * FROM Products WHERE (ProductID = 1) 取到的数据是 任务一:确保数据的一致性 采购部现在这个产品的供应商发生了变化,供应商编号现在需要改为“2”。 应用程序产生的SQL语句如下: 任务一:确保数据的一致性 在采购部读取产品编号为“1”的产品数据的同时,仓库管理员决定对这个产品仓库进行调整。所有的这个产品必须放到仓库编号为“2“的仓库里边。此时采购部还没有对这条数据进行更新,所以仓库管理员执行语句: SELECT * FROM Products WHERE (ProductID = 1) 任务一:确保数据的一致性 得到的数据和上面的数据完全相同,所以仓库管理员要更新数据的SQL语句如下 两个部门更新完数据后就会发现要么仓库管理员的数据更新成功,采购部门的数据丢失,或者采购部门更新数据成功,仓库管理员的数据丢失。 任务一:确保数据的一致性 解题思路 步骤1:了解防止数据不一致的基本方式 步骤2:编写脚本实现 步骤3:执行代码 任务一:确保数据的一致性 任务求解 步骤1:了解防止数据不一致的基本方式 数据库的不一致性通常是由并发操作引起的。数据的不一致性又包括三类:修改丢失、不可重复读和读“脏“数据。 任务一:确保数据的一致性 步骤2:编写脚本实现 采购部门的脚本: 任务一:确保数据的一致性 步骤2:编写脚本实现 仓库管理员的脚本: 事务的基本概念 数据库事务的ACID属性 原子性 一致性 隔离性 持久性 任务二:事务的创建 提出任务 客户到FOX公司的零售部门购买物品,这些物品可能包含了很多的种类。公司要求零售部门的交易系统要能够以每个客户为一次操作的单位,如果操作过程中出现了任何问题那么这次客户的交易都不能算是成功的操作。 任务二:事务的创建 解题思路 步骤1:分析任务使用到的数据库表 步骤2:分析事件的流程和可能产生数据不一致情况的地方 步骤3:学习事务的基本操作 步骤4:编写脚本实现 步骤5:执行验证 任务二:事务的创建 任务求解 步骤1:分析任务使用到的数据库表 零售部门与客户进行交易的时候使用的表是Orders表和Order Details表。 任务二:事务的创建 步骤2:分析事件的流程和可能产生数据不一致情况的地方 零售部门使用的管理系统是一个完整的流程,但是如果客户购买商品的信息中部分信息发生了错误,那么整个交易都不能算是成功的。那么在Order Details表中产生的别的正确的数据因为包含在这次交易中间那么也是无效的,而且在Orders表中生成的记录同样也是无效的。 任务二:事务的创建 步骤3:学习事务的基本操作 要想避免数据不一致情况的出现那么我们需要引入事务的机制。 启动事务 显式事务 自动提交事务 隐性事务 结束事务 任务二:事务的创建 步骤4:编写脚本实现 任务

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档