语言基础TCL学习.pptx

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第12页/共14页
第13页/共14页
感谢您的观看!
第14页/共14页
第11页/共14页
作业
• 事务的定义是什么,它有哪些特征? • 创建一个teacher表,字段有:teacher_id,name,gender,age 等字段,其中
teacher_id是主键,name不能为空,gender默认值为”男”;使用DML语法书 写 出 往 tea c h e r 表 中插 入 数 据 的 三条 i n s e r t 语 句 , 前 两 条 i n s e r t 语 句 之 后使 用 TC L 定 义 一 个保存 点 , 保 存 点 分 别 为 s p1 和 s p2 ; 在 最 后 一条 i n s e r t 语 句之 后 使 用 TC L 语法回滚到sp2保存点并使用TCL语法提交之,查看最后保存到teacher表中的数 据是哪些数据,并分析原因。
事务与会话: 一个会话等同于对数据库的一次连接,如果有多个用户连接到数据
库则会产生多个会话;各个会话之间的事务是相互隔离的,即会话之 间数据互不共享,一个事务在没有被提交之前其数据被放在当前会 话所标识的内存中,这个时候其它任何会话都对当前会话发起的事 务操作不可见,一旦事务被提交之后其数据将被持久化到磁盘数据 文件中去,此时其它会话将可以看到当前会话所做的更改
commit;提交回滚到保存点 mark1
第10页/共14页


• 事务的定义是指单个逻辑工作单元执行的一系列操作 • 事务的四大特征是” 一原永隔”;即:一致性、原子性、永久性、隔
离性 • 熟悉TCL语法:
A、savepoint spName:定义一个spName的保存点 B、rollback to savepoint spName:回滚到指定的保存点 spName C、rollback:全部回滚当前事务 D、commit:提交当前事务 会话发起的事务如果没有被会话提交则其它会话对当前会话的修改 将不可见,一旦会话提交事务则事务所做的数据修改将被更新到磁 盘数据文件,此时其它用户发起的会话将可以看到当前会话发起事
帐户A Balance = 100
1. A = A - 50 2. B = B + 50
帐户B Balance = 200
帐户A Balance = 50
帐户B Balance = 200
第7页/共14页
事务的特征
一致性
Consistency: 事务执行必须保证数据库的一致性。
原子性 永久性 隔离性
第4页/共14页
数据库中的事务
• 事务在实际应用中的作用: 因为事务是由多个DML操作组成的一个整体单元,其言下之意是这些 DML操作要么全部确保完成,要么全部不做,不能出现一部分完成保 存而另一部分却没有完成保存的情况出现,这就需要事务来给予保 证,因为只要应用程序没有执行事务提交(commit)则数据始终在内 存中,一旦发生任何故障(如断电或数据错误)则数据全部不做(即回 滚),如果应用程序的DML操作已经全部完成操作且确认数据无误则 执行commit提交所有DML操作完成所有数据的更新或保存
Atomicity: 事务中的操作要么都执行,要么都不执行。
Durability : 事务执行完毕,数据就应该保存在数据库中。
Isolation: 一个事务的执行不能被其他事务干扰。
第8页/共14页
事务控制语言
commit:此命令用于提交并结束事务处理。只有使用commit命令,才可以 对数据库执行永久性操作。
第5页/共14页
为什么需要事务
防止数据库中数据的不一致性。
帐户A Balance = 100
1. A = A - 50 2. B = B + 50
帐户B Balance = 200
帐户A Balance = 50
帐户B Balance = 250
第6页/共14页
为什么需要事务
防止数据库中数据的不一致性。
rollback :此命令用来撤销在当前事务中完成的操作。可以回滚整个事务 处理,以便撤销有SQL语句做出的所有修改;也可以将事务回滚到某个保存 点,以回滚该保存点后的修改。
savepoint:此命令保存点类似于标记,它将很长的事务处理划分为较小的 部分。它们用于标记事务中可以应用回滚的点。
第9页/共14页
事务操作(TCL)应用实例
示例
update student set birthday='07-5月-80' where student_id=1;
savepoint mark1; delete student where student_id=1;
设置保存点
rollback to [savepoint] mark1;
第3页/共14页
数据库中的事务
• 数据库事务(Database Transaction)定义: 是指作为单个逻辑工作单元执行的一系列操作。
• 原理: 针对数据库表执行DML操作之后,数据实际上是被暂时存放在内存中的一块称为回 退段的撤销表空间中,当用户所有DML操作完成之后确认数据需要被保存或更新(持 久化)到磁盘上时需要执行commit的TCL操作,当用户觉得数据修改有误而需要重新 调整或重做时则可以执行rollback的TCL操作回退到执行DML操作之前的状态
本章案例
• 在DML操作之间建立回滚点,分别验证commit、rollback rollback to spname的回滚机制
第2页/共14页
本章目标
• 掌握并理解事务的概念,熟记事务的逻辑定义 • 理解并熟记事务所具备的四大特征 • 掌握并熟记事务控制语言(TCL)中提交(commit)、回滚(rollback)、保存点(savepoint)的定义
相关文档
最新文档