《Oracle数据库》课程教学资源(PPT课件讲稿)数据库一致性与事务管理

第19章数据库一致性与事务管理 数据库中的数据是每时每刻都有可能发生变化的。但 是这种变化必须是可以接受的和合理的。即数据必须保持一 致性。事务是保证数据一致性的重要手段。本章将从以下几 个方面讲述数据一致性。 什么是数据库一致性和事务 Oracle中的事务 事务的属性和隔离级别 事务的处理原则 通过本章的学习,读者可以对数据一致性有清晰的认 识,并了解Oracle中的事务处理原则
Oracle Oracle

19.1数据一致性和事务 用户对数据库的操作是复杂多变的。这些复杂的动作 可能是一个逻辑整体,如果处理不当极易造成数据不一致。 同属一个逻辑整体的操作应该作为一个事务进行处理,从而 避免出现数据不一致性

19.1.1 Oracle中的数据一致性 数据库是现实世界的反映。例如,一个存储了多家连锁店 铺库存信息的数据库,如果需要进行货物调配,则需要进行数 据更新。从A店调出的货物送至B店,那么A店对应的库存量应 该进行削减,B店库存进行相应增加。在数据库中的实际操作 应该是两条SQL语句,一条语句减少A店库存,另外一条增加 B店库存。但是,数据库有可能拋出这样那样的异常,例如, 第一条语句执行完毕,突然断电,或者第二条语句由于其他原 因(如表本身的约束)而没有执行成功,就造成了数据不符合 实际情况,即实际库存与数据库记录不符。 类似的场景还有很多,但作为存储基础数据的数据库,必 须避免任何犯错的可能,即必须保持数据一致性
A B A B SQL A B

19.1.2 Oracle中的事务 事务是保证数据一致性的重要手段。试图改变数据库 状态的多个动作应该视作一个密不可分的整体。无论其中经 过了多么复杂的操作,该整体执行之前和执行之后,数据库 均可保证一致性。整个逻辑整体即使一个事务。 事务 操作1 数据保持一致性 操作2 操作3 数据保持一致性
数据保持一致性 数据保持一致性 操作1 操作2 操作3 ... 事务

19.2 Oracle中的事务处理 一个事务的生命周期包括,事务开始、事务执行和事务 结束。在Oracle中,并不会显式声明事务的开始,而是由 Oracle自行处理。事务的结束可以利用commit.或者rollback 命令。本节将从以下角度讲述Oracle中的事务处理。 利用Commit命令结束事务 利用Rollback命令结束事务 事务属性和隔离级别
Oracle Oracle commit rollback Oracle Commit Rollback

19.2.1利用commit命令界定事务 事务的开始无需显式声明,在一个会话中,一次事务的 结束便意味着新事务的开始。事务的结束可以利用commit命 令,如示例19-1所示。 【示例19-1】利用commit命令界定事务。 在表warehouse中存储了仓库及库存信息,如下所示。 SQL>select from warehouse;
commit 19-1 19-1 commit warehouse SQL> select * from warehouse;

19.2.2利用rol1back命令界定事务 rollback命令用于回滚事务内的所有数据修改,并结束 事务。在示例19-1中,无论进行了多少次调仓,使用 rollback命令将忽略所有操作。 【示例19-2】利用rollback命令界定事务。 SQL>update warehouse set stock=stock-100 where warehouse_name='A仓'and goods='衬衫'; 1 row updated SQL>update warehouse set stock=stock+100 where warehouse_.name-B仓'and goods='衬衫';
rollback 19-1 rollback 19-2 rollback SQL> update warehouse set stock=stock-100 where warehouse_name='A ' and goods=' '; 1 row updated SQL> update warehouse set stock=stock+100 where warehouse_name='B ' and goods=' ';

19.2.3 Oracle事务的属性和隔离级别 Oracle中,可以设定事务的属性和隔离级别,以保证 事务运行在某种特定环境。因为数据库状态总是在不断进行 变化的,特定的环境有利于事务在一个稳定的状态下工作。 这些属性和隔离级别包括: read only属性; read write属性; serializable隔离级别; read commited隔离级别。 1.read only.属性 2.read write,属性 3.serializable隔离级别 4.read commited隔离级别
Oracle read only read write serializable read commited 1 read only 2 read write 3 serializable 4 read commited

19.3事务处理原则 事务并非Oracle数据库的专利,而是被广泛应用,并 具有统一的处理原则。事务的处理原则包括以下几点: 原子性(Atomicity): 一致性(Consistency): 隔离性(Isolation): 持久性(Durablity):
Oracle Atomicity Consistency Isolation Durablity

19.3.1事务的原子性一Atomicity 原子性是事务的最基本属性。当事务被提交时,所有数据 修改都将被确认;当事务回滚时,所有数据修改都将被忽略。 不能出现部分提交部分忽略的情形。当然,具体的实现细节均 由数据库实现。对于用户来说,只需使用commit/rollback命 令来提交/回滚事务即可
—— commit /rollback /
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Oracle数据库》课程教学资源(PPT课件讲稿)序列.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)创建数据库.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)SQL查询.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)SQL更新数据.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)Oralce数据库与数据表.ppt
- 《Oracle数据库》课程教学资源(试卷习题)练习和解答(Oracle Database 11g).pdf
- 《Oracle数据库》课程教学资源(实验指导)ORACLE数据库项目案例(实验文档).pdf
- 私立华联学院:《Oracle数据库》课程教学资源(教学大纲)Oracle数据库课程标准.pdf
- 私立华联学院:《Oracle数据库》课程教学资源(教学大纲)Oracle数据库授课计划表.pdf
- 私立华联学院:《Oracle数据库》课程教学资源(教学大纲)Oracle11g数据库电子教案.pdf
- 《Oracle数据库》课程教学资源(拓展资料)Oracle物化视图.pdf
- The End of Slow Networks - It’s Time for a Redesign [Vision].pdf
- Squall:Fine-Grained Live Reconfiguration for Partitioned Main Memory Databases.pdf
- 内容管理框架CMF工具:Drupal精华教程集(1/2).pdf
- 内容管理框架CMF工具:Drupal精华教程集(2/2).pdf
- 在lamp环境下安装Drupal.pdf
- Windows环境下虚拟机和Ubuntu Linux的安装.pdf
- 在Ubuntu-linux操作系统下安装apache-mysql-php(Install Apache MySQL PHP on Ubuntu Linux OS).pdf
- 《政府网站建设》课程教学资源(教学大纲)Government Website Construction.pdf
- Linux系统知识培训(PPT讲稿,共十三章).pptx
- 《Oracle数据库》课程教学资源(PPT课件讲稿)用户管理.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)约束.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)表空间应用.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)视图.ppt
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第一章 开始启程——你的第一行android代码(负责人:王海).pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第二章 先从看得到的入手——探究活动.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第三章 软件开发也要拼脸蛋——UI开发的点点滴滴.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第四章 手机平板要兼顾——探究碎片.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第五章 全局大喇叭——详解广播机制.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第六章 数据存储全方案——详解持久化技术.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第七章 跨程序共享数据——探究内容提供器.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第八章 丰富你的程序——运用手机多媒体.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第九章 看看精彩的世界——使用网络技术.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第十章 后台默默的劳动者——探究服务.pdf
- 中国人民大学:《人工智能》课程教学资源(作业摘选)人工智能课程总结.pdf
- 中国人民大学:《人工智能》课程教学资源(作业摘选)SCIgen生成文献的检测方案.pdf
- 《人工智能》课程教学资源(参考资料)基于Jupyter Notebook的Tensorflow深度学习教程.pdf
- 南京农业大学:《Web 应用系统开发》课程教学大纲.pdf
- 南京农业大学:《软件工程》课程教学大纲.pdf
- 南京农业大学:《面向对象程序设计实验》课程教学大纲.pdf