浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第五章 管理事务和管理数据库

第五章管理事务和管理数据库 管理事务 管理数据库
1 第五章 管理事务和管理数据库 • 管理事务 • 管理数据库

事务的由来 使用 DELETE命令或 UPDATE命令对数据库进行更 新时,一次只能操作一个表,这会带来数据库的数据 不一致的问题。例如企业取消了后勤部,需要将后勤 部从 departmen表中删除,要修改 department表,而 employee表中的部门编号与后勤部相对应的员工也应 删除。因此,两个表都需要修改,这种修改只能通过 两条 DELETE语句进行。假设后勤部编号为1012 第一条 DELETE语句修改 department表 delete from department where dept id=’1012 第二条 DELETE语句修改 employee表 delete from employee where dept id =21012'2
2 事务的由来 • 使用DELETE 命令或UPDATE 命令对数据库进行更 新时,一次只能操作一个表,这会带来数据库的数据 不一致的问题。例如企业取消了后勤部,需要将后勤 部从department表中删除,要修改department 表,而 employee 表中的部门编号与后勤部相对应的员工也应 删除。因此,两个表都需要修改,这种修改只能通过 两条DELETE 语句进行。假设后勤部编号为1012 • 第一条DELETE 语句修改department 表 • delete from department • where dept_id = ’1012’ • 第二条DELETE 语句修改employee 表 • delete from employee where dept_id = ’1012’

在执行第一条 DELETE语句后,数据库中的数 据已处于不一致的状态。因为此时已经没有后 勤部了,但 employee表中仍然保存着属于后勤 部的员工记录;只有执行了第二条 DELETE语 句后,数据才重新处于一致状态。但是如果执 行完第一条语句后,计算机突然出现故障,无 法再继续执行第二条 DELETE语句,则数据库 中的数据将处于永远不一致的状态。因此必须 保证这两条 DELETE语句同时执行。为解决类 似的问题,数据库系统通常都引入了事务 Transaction的概念
3 • 在执行第一条DELETE 语句后,数据库中的数 据已处于不一致的状态。因为此时已经没有后 勤部了,但employee 表中仍然保存着属于后勤 部的员工记录;只有执行了第二条DELETE 语 句后,数据才重新处于一致状态。但是如果执 行完第一条语句后,计算机突然出现故障,无 法再继续执行第二条DELETE 语句,则数据库 中的数据将处于永远不一致的状态。因此必须 保证这两条DELETE 语句同时执行。为解决类 似的问题,数据库系统通常都引入了事务 Transaction 的概念

事务的概念及特性 事务:指作为单个逻辑工作单元执行的 系列操作,而这些逻辑工作单元需要 具有原子性,一致性,隔离性和持久性 四个属性,统称ACID特性。 ·原子性:指事务必须是原子工作单元, 即对于事务所进行数据修改,要么全都 执行,要么全都不执行
4 事务的概念及特性 • 事务:指作为单个逻辑工作单元执行的 一系列操作,而这些逻辑工作单元需要 具有原子性,一致性,隔离性和持久性 四个属性,统称ACID特性。 • 原子性:指事务必须是原子工作单元, 即对于事务所进行数据修改,要么全都 执行,要么全都不执行

致性:指事务在完成时,必须使所有 的数据都保持一致性状态,而且在相关 数据库中,所有规则都必须应用于事务 的修改,以保持所有数据的完整性。事 务结束时,所有的内部数据结构都必须 是正确的
5 • 一致性:指事务在完成时,必须使所有 的数据都保持一致性状态,而且在相关 数据库中,所有规则都必须应用于事务 的修改,以保持所有数据的完整性。事 务结束时,所有的内部数据结构都必须 是正确的

隔离性:指由并发事务所做的修改必须与 任何其他并发事务所做的修改相隔离。事 务查看数据时数据所处的状态,要么是被 另一并发事务修改之前的状态,要么是被 另一事务修改之后的状态,即事务不会查 看正在由另一个并发事务正在修改的数据。 持久性:指事务完成之后,它对于系统的 影响是永久性的,即使出现系统故障也是 如此
6 • 隔离性:指由并发事务所做的修改必须与 任何其他并发事务所做的修改相隔离。事 务查看数据时数据所处的状态,要么是被 另一并发事务修改之前的状态,要么是被 另一事务修改之后的状态,即事务不会查 看正在由另一个并发事务正在修改的数据。 • 持久性:指事务完成之后,它对于系统的 影响是永久性的,即使出现系统故障也是 如此

事务的类型 隐式事务:每次执行 SQLServer的任何 数据修改语句时,它都是一个隐式事务。 例如:下列SQL语句是一个独立事务: Insert talbe values(1,abc) Update ta ble set coll=5 where coll=l Delete from ta bel where coll=5
7 事务的类型 • 隐式事务 :每次执行SQL Server的任何 数据修改语句时,它都是一个隐式事务。 例如:下列SQL语句是一个独立事务: • Insert talbe values(1,’abc’) • Update table set col1=5 where col1=1 • Delete from table1 where col1=5 • go

显式事务 通常在程序中用 BEGIN TRANSACTION命令来标识 个事务的开始,用 COMMIT TRANSACTION命令标识 事务结束;这两个命令之间的所有语句被视为一体。只 有执行到 COMMIT TRANSACTION命令时,事务中对 数据库的更新操作才算确认。和 BEGIN.END命令类 似。这两个命令也可以进行嵌套,即事务可以嵌套执行
8 显式事务 • 通常在程序中用BEGIN TRANSACTION 命令来标识一 个事务的开始,用COMMIT TRANSACTION 命令标识 事务结束;这两个命令之间的所有语句被视为一体。只 有执行到COMMIT TRANSACTION 命令时,事务中对 数据库的更新操作才算确认。和BEGIN…END 命令类 似。这两个命令也可以进行嵌套,即事务可以嵌套执行

这两个命令的语法如下 BEGIN TRANISACTION transaction name atran name variable COMMIT ITRANSACTIONI transaction name @tran name variable] 其中 BEGIN TRANSACTION可以缩写为 BEGIN TRAN。 COMMIT TRANSACTION可以缩写为 COMMIT TRAN 或 COMMIT。 transaction name:指定事务的名称,只有前32个字符 会被系统识别。 atran name variable:用变量来指定事务的名称变量。 只能声明为CHARⅤ ARCHAR NCHAR或 NVARCHAR 类型
9 • 这两个命令的语法如下 • BEGIN TRAN[SACTION] [transaction_name | @tran_name_variable] • COMMIT [ TRAN[SACTION] [transaction_name | @tran_name_variable] ] • 其中BEGIN TRANSACTION 可以缩写为BEGIN TRAN 。 COMMIT TRANSACTION可以缩写为COMMIT TRAN 或COMMIT 。 • transaction_name:指定事务的名称,只有前32 个字符 会被系统识别。 • @tran_name_variable:用变量来指定事务的名称变量。 只能声明为CHAR VARCHAR NCHAR 或NVARCHAR 类型

例:删除后勤部 declare @transaction name varchar (32) select transaction name=my transaction delete begin transaction @transaction name use sample delete from department where dept id=71012 delete from employee where dept id =10122 commit transaction my transaction delete go
10 • 例: 删除后勤部 • declare @transaction_name varchar(32) • select @transaction_name = ' my_transaction_delete ' • begin transaction @transaction_name • go • use sample • go • delete from department where dept_id = ’1012’ • go • delete from employee where dept_id = ’1012’ • go • commit transaction my_transaction_delete • go
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第四章 T-SQL程序设计基础.ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第十章 管理索引(耿建玲).ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第十一章 管理触发器.ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第十三章 SQL Server数据转换.ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第十二章 管理存储过程.ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第三章 SQL语言基础.ppt
- Windows 数据恢复原理与方法.ppt
- Windows 数据恢复原理与方法 - 提示信息.doc
- 广西大学:《计算机操作系统》课程教学资源(PPT课件)第5章 内存管理.ppt
- 广西大学:《计算机操作系统》课程教学资源(PPT课件)第4章 死锁处理.ppt
- 广西大学:《计算机操作系统》课程教学资源(PPT课件)第3章 并发控制——互斥与同步.ppt
- 广西大学:《计算机操作系统》课程教学资源(PPT课件)第2章 进程描述与控制.ppt
- 广西大学:《计算机操作系统》课程教学资源(PPT课件)第1章 操作系统概论.ppt
- 广西大学:《计算机操作系统》课程教学资源(PPT课件)内容简介(董明刚).ppt
- 广西大学:《计算机操作系统》课程教学资源(PPT课件)第8章 文件管理.ppt
- 广西大学:《计算机操作系统》课程教学资源(PPT课件)第7章 I/O设备管理.ppt
- 清华大学:《文献检索》Ei_web.doc
- 清华大学:《文献检索》Sci_web_work.doc
- 清华大学:《文献检索》课程教学资源(PPT课件)5、学术资源的利用(孙平).ppt
- 清华大学:《文献检索》课程教学资源(PPT课件)4、计算机检索方法(SCI_Web).ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第一章 SQL Server关系数据库概述.ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第八章 SQL Server权限管理.ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第二章 数据库基础(耿建玲).ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第九章 数据库备份与恢复.ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第六章 管理数据库表.ppt
- 浙江大学:《数据库系统管理与维护》课程教学资源(PPT课件讲稿)第七章 管理视图.ppt
- 《java认证》课程简介.doc
- 《java认证》第五章 对象和类.doc
- 《java认证》第六章 高级语言特征.doc
- 《java认证》第七章 异常.doc
- 《java认证》第八章 建立 GUIs.doc
- 《java认证》第9章 AWT 事件模型.doc
- 《java认证》第10章 AWT 组件库.doc
- 《java认证》第11章 Java 基础类.doc
- 东南大学:《计算机组成原理》课程教学资源(PPT课件讲稿)第一章 概述、第二章 数据的表示、第三章 运算器与运算方法.ppt
- 东南大学:《计算机组成原理》课程教学资源(PPT课件讲稿)第四章 存储系统、第五章 指令系统、第六章 中央处理机组织.ppt
- 东南大学:《计算机组成原理》课程教学资源(PPT课件讲稿)第七章 总线及总线互连结构、第八章 输入输出设备.ppt
- 东南大学:《计算机组成原理》课程教学资源(PPT课件讲稿)第九章 输入输出组织、复习.ppt
- 计算机网络——数据通信基础知识.ppt
- 计算机网络——网络高层.ppt