第11章 事务与锁 11.1 事务Transact 11.2 数据并发的问题 11.3 锁Lock 11.4 事务隔离级别.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
實踐國中綜合活動. 我們的團隊 輔導 — 邱敏芳主任、洪穎馨組長、朱孝安組 長、徐維莉師、蔡嘉容師、蔡燕娟師 童軍 --- 蘇月琴團長、蔡盟玉師 家政 --- 阮雅倩師、李怡慧師、蔡佩瑩師.
教学网站: 数据库及应用 授课教师:岳静 Tel: 教学网站:
武汉库得克 软件有限公司 公司简介 发展机遇 特点 一家专注于质量管理平台和整体 解决方案的提供商
Database Management System 資料庫管理系統
第15章 备份与恢复数据库 日志文件 基本概念 恢复数据库的基本原理 数据库故障的种类 备份数据库 备份的内容和时间 备份的一般方法
第2章 資料庫系統 2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構
SQL的简单查询.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
十一 ASP对数据库的访问.
数据库原理及应用 课程导引 成都东软学院.
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
颈椎移位.
第10章 并发控制技术 10.1 并发控制概述 10.2 并发控制的正确性准则 10.3 加锁协议 10.4 死锁的检测、处理和预防
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
第十三章 SQL Server的安全管理.
数据库原理及应用 第10章 事务与锁 10.1 事务 10.2 锁.
第三章 Management Studio.
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
数据库原理与SQL Server 第9章 保证数据完整性.
第7章 事务管理 事务管理(transaction management): 恢复——保证事务在并发执行时满足ACID准则的技术。
第5章 数据库保护 之事务.
转正述职报告 乐恩公司 史航
資料庫管理 資管二 賴柏融.
并发控制 讲授者:李川.
An Introduction to Database System
小学信息技术第一册 教材内容介绍.
第五讲 利用视图进行查询优化.
第 8 章 資料的 新增、修改與刪除.
課程名稱:資料庫系統 授課老師:李春雄 博士
解振宇 客户技术经理 客户售前技术部 微软中国有限公司广州办事处
第 3 章 熟悉 SQL Server 的工作平台.
第 11 章 建立檢視表.
第 14 章 預存程序.
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
第 16 章 觸發程序.
SQL Server 2000 数据库入门.
2013年教育事业统计操作系统 2013年7月.
5 数据库管理与保护 数据库运行的最小逻辑工作单位是事务,所有对数据库的操作,都以事务作为一个整体来执行或撤销。
第9章 SQL Server的数据库保护技术 教学目标:通过本章学习,了解SQL Server的安全体系结构的含义和安全认证模式的分类;掌握SQL Server登录账号、用户账号及角色的创建方法;熟悉权限的分类,掌握对象权限和语句权限的管理方法;明确SQL Server中数据完整性的种类,掌握数据完整性实现的具体方法;熟悉SQL.
第9章 事务.
第7章 SQL Server代理服务 7.1 SQL Server代理服务配置 7.2 定义操作员 7.3 作业管理 7.4 警报管理
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
刘红岩 清华大学 管理科学与工程系 第17章 事务管理 刘红岩 清华大学 管理科学与工程系
Ch4.SQL Server 2005資料庫組成員元件介紹
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
分布式数据库系统及其应用.
数据库应用技术 SQL Server 2005.
ORACLE 第九讲 触发器.
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
圖畫成語 Go !Go ! Go ! 遊戲說明.
An Introduction to Database System An Introduction to Database System
17 交易處理與鎖定 17-1 交易的基礎 17-2 交易處理 17-3 並行控制 17-4 資料鎖定 17-5 死結問題.
An Introduction to Database System
第三章 SQL Server数据管理.
讲课人:王璞 浙江工商职业技术学院.
第4章 表的创建与维护 4.1 数据类型 4.2 数据完整性约束 4.3 创建数据表 4.4 修改数据表 4.5 删除数据表.
第9章 存储过程的创建和使用 9.1 存储过程简介 9.2 创建存储过程 9.3 修改存储过程 9.4 删除存储过程 9.5 执行存储过程.
SQL Server2000概述 SQL Server简介 SQL Server安装 SQL Server数据库 2019/5/8.
第11章 安全管理 教学提示:数据库安全是关系数据库中的非常重要的方面,包括了系统安全、数据安全、资源管理、用户管理、权限管理、角色管理、口令管理以及授权、认证、审计等相当多方面的内容。本章讲述有关数据库安全方面的知识。 数据库系统的安全性是每个数据库管理员都必须认真考虑的问题。SQL Server.
第9章 视 图 教学提示:用户在查询数据库中的数据时,除了直接查看数据库中的表中的数据以外,还可以通过视图来查看表中的数据,也就是说,视图为用户提供了另外一种查看表中的数据的方式。 视图是一种虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自于定义视图的查询所引用的表,并且在引用视图时动态生成。
IT DNA- 微軟MVP、資深IT人胡百敬 資訊產業全攻略!IT知識工作者聯手推薦! 資訊新鮮人》 專業資訊人》 知識工作者》
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
1.4数据库管理系统 数据库管理系统是数据库系统的核心,是为数据库的建立,维护,使用而建立的系统软件,建立在操作系统基础之上,位于操作系统与用户之间的数据管理软件,负责对数据库进行统一管理与控制.
第8章 并发控制 概述 封锁 封锁协议 活锁和死锁 并发调度的可串行性 两段锁协议 封锁的粒度 Oracle的并发控制 2019/11/20
Presentation transcript:

第11章 事务与锁 11.1 事务Transact 11.2 数据并发的问题 11.3 锁Lock 11.4 事务隔离级别

能力目标   理解事务和锁的概念;   掌握使用和编写事务处理代码的技能;   了解各种锁的含义和锁的使用方法;   掌握事务隔离等级的设置方法。

态度目标   团队精神;   态度积极;   任务按时完成;   出勤。

重点难点   重点:   掌握使用和编写事务处理代码的技能;   了解各种锁的含义和锁的使用方法。   难点:

11.1 事务Transact 1. 事务Transact 事务是指一个逻辑单元的工作任务,这些工作   事务是指一个逻辑单元的工作任务,这些工作 任务要么全做,要么全部放弃。它必须同时满足四 个特性:原子性、一致性、隔离性和持久性。   原子性(Atomic) :表示组成一个事务的多个 数据库操作是一个不可分隔的原子单元,只有所有 的操作执行成功,整个事务才提交,事务中任何一 个数据库操作失败,已经执行的任何操作都必须撤 销,让数据库返回到初始状态。   一致性(Consistency):事务操作成功后,数 据库所处的状态和它的业务规则是一致的,即数据 不会被破坏。

11.1 事务Transact 1. 事务Transact 隔离性(Isolation):在并发数据操作时,不 同的事务拥有各自数据空间,它们的操作不会对 对方产生干扰。数据库规定了多种事务隔离级别, 不同隔离级别对应不同的干扰程度,隔离级别越 高,数据一致性越好,但并发性越弱。   持久性(Durabiliy) :一旦事务提交成功后, 事务中所有的数据操作都必须被持久化到数据库 中,即使提交事务后,数据库马上崩溃,在数据 库重启时,也必须能保证能够通过某种机制恢复 数据。

11.1 事务Transact 2. 事务类型 自动提交事务: 系统默认每个TRANSACT-SQL命令都是一个   2. 事务类型   自动提交事务:   系统默认每个TRANSACT-SQL命令都是一个 事务处理,由系统自动开始并提交。 隐式事务   该类事务是任何单独的 INSERT、UPDATE 或 者DELETE语句构成。当有大量的DDL和DML命令 执行时会自动开始,并一直保持到用户明确提交为 止。

11.1 事务Transact 2. 事务类型 显式事务 该类事务是用户自定义事务,是以BEGIN   2. 事务类型   显式事务   该类事务是用户自定义事务,是以BEGIN TRANSACTION(事务开始)开头,以 COMMIT TRANSACTION(事务提交)或者 ROLLBACK TRANSACTION(回滚事务)语句结束的。   分布式事务   跨越多个服务器的事务称为分布式事务,SQL Server 可以由DTC来支持处理分布式事务,可以使 用 BEGIN DISTRIBUTED TRANSACTION 命令启 动一个分布式事务处理。

11.1 事务Transact 3. 事务控制 BEGIN TRANSACTION:该语句标记一个显   3. 事务控制   BEGIN TRANSACTION:该语句标记一个显 式事务的开始点,即事务开始。其语法如下: BEGIN { TRAN | TRANSACTION }  [ { transaction_name | @tran_name_variable }  [ WITH MARK [ 'description' ] ]    ][ ; ]   COMMIT TRANSACTION:该语句标志一个 成功的隐性事务或显式事务的结束,即事务提交。 其语法如下: COMMIT { TRAN | TRANSACTION }  [ transaction_name | @tran_name_variable ] ][ ; ]

11.1 事务Transact 3. 事务控制 ROLLBACK TRANSACTION :该语句将显式   3. 事务控制   ROLLBACK TRANSACTION :该语句将显式 事务或隐性事务回滚到事务的起点或事务内的某个 保存点。其语法如下: ROLLBACK { TRAN | TRANSACTION }      [ transaction_name | @tran_name_variable      | savepoint_name | @savepoint_variable ] [ ; ]

1.2 数据并发的问题 1. 脏读(Dirty Read) 脏读是指某个事务(A)读取另外事务(B) 1.2 数据并发的问题   1. 脏读(Dirty Read)   脏读是指某个事务(A)读取另外事务(B) 尚未提交的更改数据,并在这个数据的基础上操 作。如果恰巧 B事务回滚,那么 A事务读到的数 据根本是不被承认的。   2. 不可重复读(Unrepeatable Read)   不可重复读是指 A事务读取了 B事务已经提 交的更改数据。  

1.2 数据并发的问题 3. 幻象读(Phantom Read) A事务读取B事务提交的新增数据,这时 A事 务将出现幻象读的问题。 1.2 数据并发的问题    3. 幻象读(Phantom Read)   A事务读取B事务提交的新增数据,这时 A事 务将出现幻象读的问题。   4. 第一类丢失更新   A事务撤销时,把已经提交的B事务的更新数 据覆盖了。   5. 第二类丢失更新 A事务覆盖B事务已经提交的数据,造成 B事务 所做操作丢失。

11.3 锁Lock 1. 锁Lock 数据库中的锁是指一种软件机制,用来控制防 止某个用户(进程会话)在已经占用了某种数据资   数据库中的锁是指一种软件机制,用来控制防 止某个用户(进程会话)在已经占用了某种数据资 源时,其他用户做出影响本用户数据操作或导致数 据非完整性和非一致性问题发生的手段。   2.锁的类型   共享锁(S): SQL Server 中,共享锁用于所 有的只读数据操作。   修改锁(U):在修改操作的初始化阶段用来 锁定可能要被修改的资源,避免使用共享锁造成的 死锁现象。

11.3 锁Lock 独占锁(X):为修改数据而保留的,它所锁 定的资源,其他事务不能读取也不能修改。   结构锁:结构锁分为结构修改锁(Sch-M)和 结构稳定锁(Sch-S)。   意向锁:意向锁说明SQL Server有在资源的低 层获得共享锁或独占锁的意向。   批量修改锁(BU):批量复制数据时使用批 量修改锁。   键范围锁:在使用可序列化事务隔离级别时, 对于TRANSACT-SQL语句读取的记录集,键范围 锁可以隐式保护该记录集中包含的行范围。

11.4 事务隔离级别 1.设置事务隔离级别 SET TRANSACTION ISOLATION LEVEL 11.4 事务隔离级别   1.设置事务隔离级别 SET TRANSACTION ISOLATION LEVEL     { READ UNCOMMITTED     | READ COMMITTED     | REPEATABLE READ     | SNAPSHOT     | SERIALIZABLE     }[ ; ]

11.4 事务隔离级别 1.设置事务隔离级别 READ UNCOMMITTED:指定语句可以读取 已由其他事务修改但尚未提交的行。 11.4 事务隔离级别   1.设置事务隔离级别   READ UNCOMMITTED:指定语句可以读取 已由其他事务修改但尚未提交的行。   READ COMMITTED:指定语句不能读取已由 其他事务修改但尚未提交的数据。这样可以避免脏 读。   REPEATABLE READ:指定语句不能读取已 由其他事务修改但尚未提交的行,并且指定,其他 任何事务都不能在当前事务完成之前修改由当前事 务读取的数据。 

11.4 事务隔离级别 1.设置事务隔离级别 SNAPSHO:指定事务中任何语句读取的数据 都将是在事务开始时便存在的数据的事务上一致的 11.4 事务隔离级别   1.设置事务隔离级别   SNAPSHO:指定事务中任何语句读取的数据 都将是在事务开始时便存在的数据的事务上一致的 版本。   SERIALIZABLE:指定:  (1)语句不能读取已由其他事务修改但尚未提 交的数据;  (2)任何其他事务都不能在当前事务完成之前 修改由当前事务读取的数据;  (3)在当前事务完成之前,其他事务不能使用 当前事务中任何语句读取的键值插入新行。

11.4 事务隔离级别 2. 设置事务隔离级别案例 【案例11.1】 在表Employyes和Departments上设置隔离级别为 11.4 事务隔离级别   2. 设置事务隔离级别案例 【案例11.1】   在表Employyes和Departments上设置隔离级别为 REPEATABLE READ ,实现其他任何事务都不能在 当前事务完成之前修改由当前事务读取的数据。 USE eTradeINfo GO SET TRANSACTION ISOLATION LEVEL REPEATABLE READ BEGIN TRANSACTION SELECT * FROM Employees SELECT * FROM Departments COMMIT TRANSACTION

Management Studio”管理窗口中,按照事务控制结构 和锁机制,编写和调试以下代码。 案例分析   使用案例数据库eTradeInfo,在“SQL Server Management Studio”管理窗口中,按照事务控制结构 和锁机制,编写和调试以下代码。   1. 编写一个存储过程,输入某客户姓名(customer)和 订单前订日期(Order_Date) ,修改该客户自该日期以来订 购的商品的单价降低10%。如果修改出现问题回滚事务。   2. 输入仓库编号,输出其库存商品数量之和以及商品种 类之和,为保证在统计汇总过程中出现数据不一致问题,使 用事务和锁机制,锁定查询统计过程。   3. 编写存储过程,输入合同编号,如果合同尚未到期, 则将到期日期延长 3 个月,之后设置一个事务回滚点,接下 来在合同明细表中讲该合同的商品单价提价5%。

1.正确用 “ SQL Server Management Studio ” 和 T-SQL 语句,使用事务格式编写存储过程, 案例分析 要求:   1.正确用 “ SQL Server Management Studio ” 和 T-SQL 语句,使用事务格式编写存储过程, 并在 “ SQL编辑器 ” 窗口中调试;   2.掌握锁与事务的关系和使用方法。 问题:   1. 理解事务和锁有何联系?   2. 如何在事务中使用锁?   3. 如何解决事务隔离等级的设置? 讨论:   为什么要使用事务和锁?编写后台多任务 处理程序时如何解决数据并发问题?

事务和锁是数据库应用、开发和管理的重要技 术。在多用户开发应用环境中,使用事务和锁机制 是保证数据一致性、完整性和安全性的重要手段。 本章小结   事务和锁是数据库应用、开发和管理的重要技 术。在多用户开发应用环境中,使用事务和锁机制 是保证数据一致性、完整性和安全性的重要手段。   通过人工对事务、锁和事务等级的控制,可以 有效避免数据脏读等一系列数据并发操作问题。