ORACLE-事务和锁.ppt

ORACLE-事务和锁.ppt

ID:48038056

大小:322.00 KB

页数:26页

时间:2020-01-14

ORACLE-事务和锁.ppt_第1页
ORACLE-事务和锁.ppt_第2页
ORACLE-事务和锁.ppt_第3页
ORACLE-事务和锁.ppt_第4页
ORACLE-事务和锁.ppt_第5页
资源描述:

《ORACLE-事务和锁.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、授课教师:姚瑶职务:讲师Oracle11g数据库应用教程1第12章事务和锁事务和锁是两个联系非常紧密的概念,它们保证了数据库的一致性。由于数据库是一个可以由多个用户共享的资源,因此当多个用户并发地存取数据时,就要保证数据的准确性。事务和锁就完成了这项功能。本章的学习目标:●掌握事务的概念和使用方法●了解锁的概念和使用方法212.1事务索引是关系型数据库的一个基本概念。在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快,作用类似于一本书的目录。本节主要介绍索引的概念、作用和使用方法。12.1.1事务概述事务在数据库中主要

2、用于保证数据的一致性,防止出现错误数据。在事务内的语句都会被看成一个单元,一旦有一个失败,那么所有的都会失败。在编程过程中也经常用到事务。3事务是一组数据库操作的逻辑工作单元,每个事务都是一个原子单位。在一个事务中可以包含一条或多条DML(数据操纵语言)、DDL(数据定义语言)和DCL(数据控制语言)语句,这些语句组成一个逻辑整体。在事务中包含的数据库操作是不可分割的整体,要么在一起被执行,要么回滚到执行事务之前的状态。对事务的操作有两个:提交(COMMIT)和回滚(ROLLBACK)。提交事务时,对数据库所做的修改便永久写入数据库。回滚事务时,对数据库

3、所做的修改全部撤销,数据库恢复到操作前的状态。事务可用于操作数据库的任何场合,包括应用程序、存储过程和触发器等。4在数据库的应用中,经常需要使用到事务的概念。例如:银行账户之间的汇款转账操作。该操作在数据库中由以下三步完成:●源账户减少存储金额,例如减少10000;●目标账户增加存储金额,增加10000;●在事务日志中记录该事务。整个交易过程,我们看做一个事务,如果操作失败,那么该事务就会回滚,所有该事务中的操作将撤销,目标账户和源账户上的资金都不会出现变化;如果操作成功,那么将对数据库永久修改,即使以后服务器断电,也不会对该修改结果影响。512.1.2

4、事务的特性事务有四个特性,简称ACID属性:●原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行●一致性(Consistency):事务把数据库从一个一致性状态带入另一个一致性状态。●隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。●永久性(Durability):事务完成后,它对数据库的修改永久有效,事务日志能够保持事务的永久性。612.1.3事务的类型一个事务中可以包含多条DML语句,或者包含一条DDL语

5、句,或者包含一条DCL语句。事务开始于第一条SQL语句,在下列之一情况结束:●遇到COMMIT或ROLLBACK命令。●遇到一条DDL或者DCL命令。●系统发生错误、退出或者崩溃。事务是一系列可以把系统带入一个新的状态的操作,如果事务被提交,则数据库进入一个新的状态,否则数据库恢复到事务以前的状态。在数据库中使用事务的好处是首先可以确保数据的一致性,其次对数据做永久修改之前可以预览以前的数据改变,还可以将逻辑上相关的操作进行分组。7控制事务的方式有两种,隐式控制和显示控制。1.隐式控制该类型的事务没有明确的开始和结束标志。它由数据库自动开启,当一个程序正

6、常结束或使用DDL语言时会自动提交。如果从SQL*PLUS非正常退出或发生系统崩溃,那么系统将自动回滚事务。如果设置AUTOCOMMIT为打开状态(默认关闭),则每次执行DML操作都会自动提交。语法格式如下:SETAUTOCOMMITON/OFF●设置开关为ON,表示自动提交数据更新语句;●设置开关为OFF,表示关闭自动提交数据更新语句的功能。2.显式控制显式方式就是利用COMMIT和ROLLBACK命令“显式”的结束事务。Oracle中的事务不需要设置开始标志,通常遇到登录数据库后,第一次执行DML语句的时候;或者是当事务结束后,第一次执行DML语句的

7、时候,事务就开始了。8【例12-1】演示如何使用事务保持数据库数据的一致性。第一步:登录SQL*Plus窗口,称之为窗口1,执行下面的语句。SQL>INSERTINTOStudentsVALUES('20120810101','测试数据','男',to_date('1990-04-24','YYYY-MM-DD'),'汉族','081','08101');当上述操作提示成功后,查询Students表中的数据,验证数据是否修改成功,结果如图12-1所示。图12-1查询插入数据后的Students表9从图中可以查找到新输入的一条数据。注意,此时,还没有提交事

8、务。第二步:以同样的用户再次登录一个新的SQL*Plus,为了加以区分,称新打开

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。