《大型数据库》第10讲 事务与游标编程

第10讲 事务与游标编程
第10讲 事务与游标编程

●问题 在银行等重要交易中,要使 组SQL语句同时执行或撤消, 如何做? 问要对查询结果进行一行行的操 题 作,如何做到?
问 题 问题 在银行等重要交易中,要使一 组SQL语句同时执行或撤消, 如何做? 要对查询结果进行一行行的操 作,如何做到?

●事务是作为单个逻辑工作单元 执行的一系列操作。 9思考:事务和批处理的区别? 事务的属性(ACID) 事务概述 9原子性:原子工作单元 9一致性:保证数据的一致性 9隔离性:并发事务之间所做的修 改要隔高 并发操作:几个用户程序同时读写 个数据的情况 持久性:对系统的影响要持久
事 务 概 述 事务是作为单个逻辑工作单元 执行的一系列操作。 思考:事务和批处理的区别? 事务的属性(ACID) 原子性:原子工作单元 一致性:保证数据的一致性 隔离性:并发事务之间所做的修 改要隔离 并发操作:几个用户程序同时读写 一个数据的情况 持久性:对系统的影响要持久

格式: BEGIN TRANSACTION 2. COMMIT TRANSACTION 简单事务编程 3. ROLLBACK TRANSACTION (问题】简单的事务提交和 回滚 说明:如果没有明确给出 BEGIN TRANSACTION语句, 则 SQL Server是将每个SQL语句 都当成一个事务进行执行
简 单 事 务 编 程 格式: 1. BEGIN TRANSACTION 2. COMMIT TRANSACTION 3. ROLLBACK TRANSACTION 【问题】简单的事务提交和 回滚 说明:如果没有明确给出 BEGIN TRANSACTION语句, 则SQL Server是将每个SQL语句 都当成一个事务进行执行

嵌套事务只有在提交了最外层 的事务后,数据才执行永久修 改 事务的嵌套 嵌套事务时, ROLLBACK语句 只能将所有内层事务回滚到最 外层的 BEGIN TRANSACTION 语句
事 务 的 嵌 套 嵌套事务只有在提交了最外层 的事务后,数据才执行永久修 改 嵌套事务时,ROLLBACK语句 只能将所有内层事务回滚到最 外层的BEGIN TRANSACTION 语句

利用封锁技术可以有效地保 证数据的一致性 封锁粒度:可以锁定在行 列、表、数据库等不同的单 封锁 元上 SQL Server具有自动和强制封 锁的功能
封 锁 利用封锁技术可以有效地保 证数据的一致性 封锁粒度:可以锁定在行、 列、表、数据库等不同的单 元上 SQL Server具有自动和强制封 锁的功能

锁模式 1.共享锁( Share lock) 2.排他锁( Exclusive Lock) 3.更新锁( Update Lock) 锁模式 各种锁模式的兼容性 共享锁更新锁排他锁 共享锁YES YES NO 更新锁YES NO NO 排他锁NO NO NO
锁 模 式 锁模式: 1. 共享锁(Share Lock) 2. 排他锁(Exclusive Lock) 3. 更新锁(Update Lock) 各种锁模式的兼容性: 共享锁 更新锁 排他锁 共享锁 YES YES NO 更新锁 YES NO NO 排他锁 NO NO NO

当两个事务 trans1和 trans2在下 列的状态时,将产生死锁: 1. Trans l:存取数据项Ⅹ和Y 2. Trans2:存取数据项Y和Ⅹ 死锁 9〖说明】如果事务 Trans1封锁了 数据项Ⅹ,事务 Trans2封锁了数 据项Y,则 Trans1等待 Trans2释放 Y上的锁, Trans2等待 Trans l释放 X上的锁。因此, Trans 1和 Trans2 都无限地等待对方打开锁住的数 据项,则产生死锁
死 锁 当两个事务trans1和trans2在下 列的状态时,将产生死锁: 1. Trans1:存取数据项X和Y 2. Trans2:存取数据项Y和X 【说明】如果事务Trans1封锁了 数据项X,事务Trans2封锁了数 据项Y,则Trans1等待Trans2释放 Y上的锁,Trans2等待Trans1释放 X上的锁。因此,Trans1和Trans2 都无限地等待对方打开锁住的数 据项,则产生死锁

●〖死锁示例】 说明: SQL Server能自动发现 死锁⌒续 并解除死锁 e避免死锁的措施:P237
死 锁 ( 续 ) 【死锁示例】 说明: SQL Server能自动发现 并解除死锁 避免死锁的措施:P.237

Coulacoulame Kind Credit Teacher DepartNol School Timel LimitMun WillIum/ Choosellun 实用东信息技术31人风0周二56节20430 0N技开发信技2程0月5的节0310 陽崔息索康信息技术2蒴0娩1⑩31 游标引例 以前:使用 seLECT语句对表格进行耷询 返回的结果集包括所有满足条件的行 思考:如果要求每次只显示表格(例如 上面的 Course表)中的一行,该如何处 理?—这在将TSQL嵌入到其他高级 语言(如C、VC、 Del ph等)的编程中 经常用到
游 标 引 例 以前:使用SELECT语句对表格进行查询, 返回的结果集包括所有满足条件的行。 思考:如果要求每次只显示表格(例如 上面的Course表)中的一行,该如何处 理?——这在将T-SQL嵌入到其他高级 语言(如C、VC、Delphi等)的编程中 经常用到
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《大型数据库》第9讲 触发器.ppt
- 《大型数据库》第8讲 存储过程.ppt
- 《大型数据库》第7讲 视图.ppt
- 《大型数据库》第6讲 索引、约束与数据库其它对象.ppt
- 《大型数据库》第5讲 数据库与事务日志、表.ppt
- 《大型数据库》第4讲 数据库设计基础.ppt
- 《大型数据库》第3讲 Transact-SQL语言编程.ppt
- 《大型数据库》第2讲 Transact-SQL语言.ppt
- 《大型数据库》第1讲 SQL Server2000概述.ppt
- 深圳大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第八章 信息安全与职业道德.ppt
- 深圳大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第四章 数据库与信息系统.ppt
- 深圳大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第七章 计算机网络基础.ppt
- 深圳大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第三章 计算机软件系统.ppt
- 深圳大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第五章 多媒体应用技术.ppt
- 深圳大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第六章 数据通信基础.ppt
- 深圳大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第一章 计算机基础知识.ppt
- 深圳大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第二章 计算机件系统.ppt
- 《SQL基础—语句初步》第二章 SQL.ppt
- 宜宾职业技术学院:《实用组网技术》课程教学资源_校园网投标书实例(二).doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_校园网投标书实例(一).doc
- 《大型数据库》第11讲 SQL Server安全管理.ppt
- 《大型数据库》第12讲 数据库日常维护与管理.ppt
- 《大型数据库》第13讲 应用系统开发.ppt
- 浙江大学:《电子商务系统结构》课程PPT教学课件_第二讲 电子商务系统需求分析.ppt
- 浙江大学:《电子商务系统结构》课程PPT教学课件_第六讲 EB系统分析与设计工具.ppt
- 浙江大学:《电子商务系统结构》课程PPT教学课件_复习.ppt
- 浙江大学:《电子商务系统结构》课程PPT教学课件_第三讲 讨论的内容.ppt
- 浙江大学:《电子商务系统结构》课程PPT教学课件_第四讲 讨论的内容.ppt
- 浙江大学:《电子商务系统结构》课程PPT教学课件_第五讲 应用开发架构.ppt
- 浙江大学:《电子商务系统结构》课程PPT教学课件_第一讲 内容组织和结构.ppt
- 哈尔滨工业大学:《模式识别》课程教学资源(讲义)第一章 绪论(刘家锋).doc
- 哈尔滨工业大学:《模式识别》课程教学资源(PPT课件讲稿)第一章 绪论(刘家锋).ppt
- 哈尔滨工业大学:《模式识别》课程教学资源(讲义)第三章 判别函数分类器.doc
- 哈尔滨工业大学:《模式识别》课程教学资源(PPT课件讲稿)第三章 判别函数分类器.ppt
- 哈尔滨工业大学:《模式识别》课程教学资源(讲义)第二章 距离分类器和聚类分析.doc
- 哈尔滨工业大学:《模式识别》课程教学资源(PPT课件讲稿)第二章 距离分类器和聚类分析.ppt
- 哈尔滨工业大学:《模式识别》课程教学资源(讲义)第五章 特征选择与特征提取.doc
- 哈尔滨工业大学:《模式识别》课程教学资源(PPT课件讲稿)第六章 神经网络在模式识别中的应用.doc
- 哈尔滨工业大学:《模式识别》课程教学资源(讲义)第四章 统计分类器.ppt
- 哈尔滨工业大学:《模式识别》课程教学资源(PPT课件讲稿)第四章 统计分类器及其学习.doc