数据库的事务、索引、视图(zrf).ppt

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

如何创建视图 使用T-SQL语句创建视图的语法 CREATE VIEW view_name AS select语句 如何创建视图 创建方便教员查看成绩的视图 IF EXISTS (SELECT * FROM sysobjects WHERE name = view_stuInfo_stuMarks) DROP VIEW view_stuInfo_stuMarks GO CREATE VIEW view_stuInfo_stuMarks AS SELECT 姓名=stuName,学号=stuInfo.stuNo, 笔试成绩 =writtenExam, 机试成绩=labExam, 平均分=(writtenExam+labExam)/2 FROM stuInfo LEFT JOIN stuMarks ON stuInfo.stuNo=stuMarks.stuNo GO SELECT * FROM view_stuInfo_stuMarks 检测是否存在 创建视图 使用视图 删除视图 总结 5-1 数据库事务具有如下特性: 原子性 一致性 隔离性 持久性 以上四个特性也称为ACID特性。 事务可以分为如下类型: 显式事务 隐性事务 自动提交事务 总结 5-2 Transact-SQL使用下列语句来管理事务: BEGIN TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION 建立索引有助于快速检索数据。索引分为唯一索引、主键索引、聚集索引、非聚集索引 视图是一张虚拟表,可以方便不同用户的查询,提高数据的安全性,筛选特定的数据行 * * * 讲解要点: 假定资金从帐户A转到帐户B,至少需要两步,即帐户A的资金减少,然后帐户B的资金相应增加 一般来说,只要是同一银行(例如都是农行),一般都支持帐户间直接转帐, 我们来看看上述提及的转帐问题,假定张三的帐户直接转帐1000元到李四的帐户。 * 演示:参见下发的SQL Server电子资料文件夹:TG6-Source下的示例1:为什么需要事务.sql * 输出结果如图所示。 强调:目前两个帐户的总额为:1000+1=1001元, 转帐后他们两个帐户的余额应保持不变 。 * 讲解要点: 现在我们开始模拟实现转帐:从张三的帐户直接转帐1000元到李四的帐户。 即使用UPDATE语句修改张三的帐户和李四帐户,张三的帐户减少1000元,李四的帐户增加1000元。 显然,转帐后的余额总和应保持不变,仍为1001元。 具体T-SQL语句如图所示。 提问:现在张三和李四的帐户分别为1000元和1元,执行语句后,张三和李四的帐户应该为多少啊? 大部分学员会认为:张三帐上还有0元,李四1001元。少数细心的学员可能感觉不对。 现场演示实际的输出结果。 输出的结果让您惊讶了吧,张三的帐户没有减少,还是1000元; 但李四的帐户却多了1000元,转帐后两个帐户的余额变为1000+1001=2001元,银行的钱凭空多出1000元了! 为什么会怎样呢?让我们一起分析出现如此严重错误的原因 。 * 查看SQL Server给出的错误提示,显示UPDATE语句有错,执行时违反了CK_currentMoney约束, 即余额不能少于1元。 提问学员:目前有两条UPDATE语句,哪条导致了此错误呢? 引导回答:显然是修改张三帐户的UPDATE语句。 因为张三的帐户原有余额1000元,减少1000元后即为0元,违反了上述约束,所以终止执行, 余额保持不变,仍为1000元。遗憾的是,后面的语句并没有中断执行, 修改李四帐户的UPDATE语句继续执行,李四的帐户增加了1000元,变为1001元。 所以两人帐户的余额最终出现了幻灯片所示的结果。 如何解决呢?使用事务,引出事务的概念。 * 强调: 事务是一个整体。如果其中一步失败了,那整个操作都取消; 如果每步都成功了,则整个操作才完成。 * 根据银行例子解释事务的四个特征: 原子性(Atomicity):事务是一个完整的操作。事务的各元素是不可分的(原子的)。事务中的所有元素必须作为一个整体提交或回滚。如果事务中的任何元素失败,则整个事务将失败。 再次以银行转帐事务为例,如果该事务提交了,则这两个帐户的数据将会更新。如果由于某种原因,事务在成功更新这两个帐户之前中止,则不会更新这两个帐户余额,并且会撤销对任何帐户余额的修改。事务不能部分提交。 一致性(Consistency):当事务完成时,数据必须处于一致状态。

文档评论(0)

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

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

1亿VIP精品文档

相关文档