- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
理工·SQL Server 数据库管理标准教程ppt第8章
第8章 事务、批和锁 8.1 事务 8.2 锁和锁的作用 8.1 事务 8.1.1 事务的定义 事务是指一个单元的工作,这些工作要么全做,要么全部不做。作为一个逻辑单元,必须具备4个属性:自动性、一致性、独立性和持久性。自动性是指事务必须是一个自动的单元工作,要么执行全部数据的修改,要么全部数据的修改都不执行。一致性是指当事务完成时,必须使所有数据都具有一致的状态。在关系型数据库中,所有的规则必须应用到事务的修改上,以便维护所有数据的完整性。所有的内部数据结构,例如树状的索引与数据之间的链接,在事务结束之后,必须保证正确。独立性是指并行事务的修改必须与其他并行事务的修改相互独立。一个事务看到的数据要么是另外一个事务修改这些事务之前的状态,要么是第二个事务已经修改完成的数据,但是这个事务不能看到正在修改的数据。这种特征也称为串行性。持久性是指当一个事务完成之后,它的影响永久性地产生在系统中,也就是这种修改写到了数据库中。 8.1 事务 事务机制保证一组数据的修改要么全部执行,要么全部不执行。SQL Server使用事务保证数据的一致性和确保在系统失败时的可恢复性。事务是一个可以恢复的单元的工作,由一条或者多条T-SQL语句组成,可以影响到表中的一行或者多行数据。事务打开以后,直到事务成功完成之后提交为止,或者到事务执行失败全部取消或者回滚为止。 当修改SQL Server数据库时,有些操作之间息息相关,这时就要考虑到怎样维护数据库的一致性。假如输入下面的Update语句,对于那些折扣率不为空的所有用户提高其折扣率: Update customers Set Discount=Discount+0.001 Where Discount is not Null 8.1 事务 为了执行这条语句,SQL Server检索、测试并可能修改每一行。如果处理了一些(不是全部)customers行后执行这条语句的进程突然中断(例如,断电),那么customers表将处于不一致状态,虽然有些行增加,但是有些行没有增加,Update语句也不能重新输入,因为这将为那些在前面没有完整执行更新的过程中已经修改的客户增加额外的折扣率。 SQL Server中的事务是为数据库完整性和恢复性提供的一种功能,在同一事务中的多行操作的执行要么全部都完成,要么全部没有完成。SQL Server确保由Update语句在完成(和正在提交)之前突然失败造成的全部行的变化自动由SQL Server撤销,即使因突然断电关闭系统也是如此。在这次失败的修改之后,表中的所有行都恢复到修改之前的状态。 8.1 事务 8.1.2 事务的类型 根据系统的设置,可以把事务分成两种类型。一种是系统提供的事务,另一种是用户定义的事务。系统提供的事务是指在执行某些语句时,一条语句就是一个事务。这时要明确,一条语句的对象既可能是表中的一行数据,也可能是表中的多行数据,甚至是表中的全部数据。因此,只有一条语句构成的事务也可能包含了多行数据的处理。例如执行下面这条数据操纵语句: UPDATE authors SET state = ‘CA’ 8.1 事务 这是一条语句,这条语句本身就构成了一个事务。由于没有使用条件限制,这条语句就修改表中的全部数据。那么这个事务的对象,就是修改表中的全部数据。如果authors表中有1000行数据,那么这1000行数据的修改要么全部成功,要么全部失败。 另外一种事务是用户明确定义的事务。在实际应用中,大多数的事务处理就是采用了用户定义的事务来处理。在开发应用程序时,可以使用BEGIN TRANSACTION语句来定义明确的用户定义的事务。在使用用户定义的事务时,一定要注意两点:一是事务必须有明确的结束语句来结束。如果不使用明确的结束语句来结束,那么系统可能把从事务开始到用户关闭连接之间的全部操作都作为一个事务来对待。 8.1 事务 事务的明确结束可以使用这样两个语句中的一个:COMMIT语句和ROLLBACK语句。COMMIT语句是提交语句,将全部完成的语句明确地提交到数据库中。ROLLBACK语句是取消语句,该语句将事务的操作全部取消,即表示事务操作失败。 还有一种特殊的用户定义的事务,这就是分布式事务。前面提到的事务都是在一个服务器上的操作,其保证的数据完整性和一致性是指一个服务器上的完整性和一致性。但是,如果是一个比较复杂的环境,可能有多台服务器,那么要保证在多服务器环境中事务的完整性和一致性,就必须定义一个分布式事务。在这个分布式事务中,所有的操作都可以涉及对多个服务器的操作,当这些操作都成功时,所有这些操作都提交到相应服务器的数据库中,如果这些操作中有一条操作失败,那么这个分布式事务中的全部操作都被取消。 8
您可能关注的文档
- 清凉优雅 教你5步DIY公主风编发(组图).doc
- 清洁生产标准 铅酸蓄电池行业(征求意见稿).pdf
- 混凝土施工控制.ppt
- 清洗理论和清洗系统.ppt
- 渤海湾海上油田深部调剖技术应用现状.doc
- 渣打银行网申经验.doc
- 渔农自然护署香港湿地公园.pdf
- 温开水不为人知的五种妙用.doc
- 渭化28000m_3_h空分装置简介.pdf
- 港口镇加强禽畜饲养管理的规定.doc
- 2026年中级经济师之中级工商管理考试题库500道(研优卷).docx
- 2026年一级注册建筑师之建筑材料与构造考试题库500道含完整答案(考点梳理).docx
- 2026年一级注册建筑师之建筑材料与构造考试题库500道附答案【培优a卷】.docx
- 2026年公用设备工程师之专业案例(暖通空调专业)考试题库300道精选.docx
- 2026年保安员考试题库500道及1套参考答案.docx
- 2026年公用设备工程师之专业案例(暖通空调专业)考试题库300道附完整答案(全国通用).docx
- 2026年一级注册建筑师之建筑设计考试题库500道附参考答案(能力提升).docx
- 2026年公用设备工程师之专业案例(暖通空调专业)考试题库300道【必刷】.docx
- 2026年二级建造师之二建水利水电实务考试题库300道附参考答案【研优卷】.docx
- 2026年保密员考试题库100道附答案【精练】.docx
最近下载
- T_CAV 026-2025 T_CAS 1057-2025 疫苗临床试验安全性数据收集与报告规范.docx VIP
- T_CAV 032-2025 T_CAS 1061-2025 生物制品临床研究术语.docx VIP
- 副车架及仪表板横梁总成系列产品焊接生产线技术改造建设项目可行性研究可研报告.doc VIP
- SB 10328-1999中国烹饪、摄影、美发美容名师大师评定条件.pdf
- PHC预应力管桩静压沉桩施工技术交底(1).docx VIP
- 国家开放大学系统国家开放大学-眼视光常用仪器设备所有答案.docx VIP
- 国金证券-ETF投资宝典系列之二:自由现金流全方位解析与指数比较.pdf VIP
- GBT5972-2023 起重机钢丝绳保养维护检验和报废.docx VIP
- 2025年广东高校管理岗面试题目.pdf VIP
- 产品审核培训.pptx VIP
原创力文档


文档评论(0)