- 1、本文档共150页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库课件第8章系统技术
事 务 事务的概念 事务的性质 可串行性和隔离级别 SQL对事务的支持 事务的概念 事务是构成单一逻辑工作单元的操作集合。 为什么需要事务的概念呢? 恢复的需要 并发操作的需要 设银行数据库中有一转账,从账号A转一笔款子($1000)到账号B。 为什么需要事务 假定张三的账户直接转账1000元到李四的账户 模拟实现转账 : 从张三的账户转账1000元到李四的账户 错误原因分析: 事务的概念 事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作 这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行 事务是一个不可分割的工作逻辑单元 恢复和并发控制的基本单位 事务的性质 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 原子性 事务的原子性强调了一个事务是一个逻辑工作单元,是一个整体,是不可分割的。一个事务所包含的操作要么全部做,要么全部不做。 一致性 一个事务执行一项数据库操作,事务将使数据库从一种一致性的状态变换成另一种一致性状态。 在事务执行前,总是假设数据库是一致的,那么当事务成功执行后,数据库肯定仍然是一致的。 隔离性 如果每个事务单独执行能保持原子性和一致性,这些事务并发执行也能保持原子性和一致性,则是事务的隔离性。 隔离级别 彻底的隔离意味着并发操作效率的降低 在设计应用时,可以在所能容忍的干扰程度范围内,尽可能的降低隔离级别,从而提高应用的执行效率。 隔离级别类型 1.read uncommitted 2.read committed(默认) 3.repeatable read 4.serailizable 持久性 事务的持久性是指一旦事务成功完成,该事务对数据库所施加的所有更新都是永久的。 例子:事务及其性质 问题:设银行数据库中有一转账事务T,从账号A转一笔款子($1000)到账号B。 相应的事务: T:read(A); A:=A–1000; write(A); read(B); B:=B + 1000; write(B). 原子性(A,B同时被修改或同时保持原值) 一致性(A+B的值不变) 隔离性(不同事务相互隔离) 持久性(写入磁盘) 事务状态 SQL对事务的支持 开始事务 结束事务 事务保存点 隐含事务与自动提交 事务提交和事务撤销 事务的所有操作都完成了,则事务提交(COMMIT),否则事务撤销(ROLLBACK) BEGIN TRANSACTION标志事务开始执行 BEGIN TRANSACTION和COMMIT或ROLLBACK一起保证了事务的四个性质 对数据库访问的两个基本操作:读和写,但完成写操作后,数据可能暂时放在内存中,而非直接写进数据库。 开始事务 使用BEGIN TRANSACTION命令显式说明一个事务开始,它说明了对数据库进行操作的一个单元的起始点。在事务完成之前出现任何操作错误和故障,都可以撤销事务,使事务回退到这个起始点。 结束事务 成功结束事务的命令是COMMIT TRANSACTION,它的作用是提交或确认事务已经完成,所以该命令也称作事务提交。 撤消事务的命令是ROLLBACK TRANSACTION,即撤消在该事务中对数据库所做的更新操作,使数据库回退到事务的起始点。 事务保存点 SQL标准还支持“事务保存点”技术,所谓事务保存点就是在事务的过程中插入若干标记,这样当发现事务中有操作错误时,可以不撤消整个事务,只撤消部分事务,即将事务回退到某个事务保存点。 事务保存点 SQL Server支持事务保存点技术,设置保存点的命令是SAVE TRANSACTION(在SQL标准中是SAVEPOINT命令),具体格式是: SAVE TRANSACTION savepoint_name 撤消部分事务或回退到事务保存点的命令也是ROLLBACK TRANSACTION,具体格式是: ROLLBACK TRANSACTION savepoint_name 事务保存点 在SQL标准中还支持取消事务保存点的命令RELEASE SAVEPOINT,在SQL Server目前的版本中不支持取消事务保存点。 事务使用举例 select * from student begin transaction update student set sname=张玉兰 where sno=2003010 save tran point1 delete from student where sno=2003002 roll
您可能关注的文档
- 高三学生英语易错题第10组.doc
- Gfqqna500培训试题.doc
- 合肥民用机场调查报告.doc
- 大柳中学2012---2013九年级上1.doc
- 音乐游戏.doc3.doc
- 尚寨乡春节远程教育工作培训总结.doc
- 医疗事故法律适用.doc
- 机电工程学院课程设计模板.doc
- 如何安装配置JIRA和CONFLUENCEWIKI.doc
- 七年级地理导学案0012.doc
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)