7.1事务(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

2024-03-22
| 15页
| 54人阅读
| 0人下载
普通

内容正文:

并发控制 第7章 本章主要内容 本章主要介绍数据库并发操作带来的数据不一致性问题、事务的概念及特性、活锁和死锁问题、数据库系统的封锁技术及封锁协议、并发调度的可串行性与两段锁协议、封锁粒度与多粒度封锁等。 为了充分利用数据库资源,数据库用户对数据库系统并行存取数据,这样就会发生多个用户并发存取同一数据的情况,如果对并发操作不加控制,可能会产生不正确的数据,破坏数据的完整性。因此,数据库管理系统提供并发控制机制,保证数据库的完整性和一致性。 2 目录 01 事务 02 并发控制 03 封锁与 封锁协议 04 活锁与死锁 05 并发调度的可串行性与两段锁协议 06 封锁粒度与多粒度封锁 07 SQL Server的并发控制机制 事务 第7章 01 7.1.1 事务的概念 1.事务的概念 定义7.1 事务是数据库应用程序的基本逻辑单元,是用户定义的一个数据库操作序列,这些操作要么全做,要么不做,是一个不可分割的工作单位。 一个事务可以是一组SQL语句、一条SQL语句或整个程序,一个应用程序可以包括多个事务。 定义事务的语句有三条: BEGIN TRANSACTION (事务的开始) COMMIT (事务的提交) 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新写回到磁盘上的物理数据库中 ROLLBACK (事务的回滚) 事务异常终止 事务运行的过程中发生了故障,不能继续执行 系统将事务中对数据库的所有已完成的操作全部撤销 事务回滚到开始时的状态 7.1.1 事务的概念 7.1.1 事务的概念 【例7.1】定义一个“转账”事务,该事务将5000元由账号A转至账号B,但是账号B最多不能超过30000元。用T-SQL定义该事务的操作序列如下: BEGIN TRANSACTION READ(A) A=A-5000 IF(A<0) /*账号A款项不足*/ ROLLBACK ELSE WRITE(A) READ(B) B=B+5000 IF(B>30000) /*账号B款项超过30000元*/ ROLLBACK ELSE WRITE(B) COMMIT END TRANSACTION 7.1.2 事务的特性 1.原子性 事务是数据库的逻辑工作单位,是不可分割的工作单元。事务中包含的所有操作要么全做,要么全不做,即不允许完成部分事务。 2.一致性 事务运行的结果应该使数据库保持数据的一致性,保持数据一致性的前提是事务不能够在执行过程中被打断,确保事务的全部操作被正确地执行,如果其中某些操作无法正确执行,就无法保证数据的一致性。 7.1.2 事务的特性 3.隔离性 系统必须保证事务不受其他并发执行事务的影响,一个事务内部的操作及使用的数据,对其他并发事务应该是隔离的,并发执行的各个事务之间不能相互干扰。 4.持久性 一旦一个事务被提交,事务对数据的更改就被永久地写入数据库中,这个改变应该是持久的,即使存放数据的介质损坏了,系统也能将数据恢复到介质损坏之前事务提交的状态。 并发控制 第7章 02 数据库是一个可以供多个用户共同使用的共享资源,在串行执行的情况下,每个时刻只能有一个应用程序对数据库进行存取,其他程序必须等待。这种工作方式制约了对数据库的访问效率,不利于数据库资源的利用。解决这一问题的重要途径是允许多个用户并发地访问数据库。当多个用户并发地访问数据库时,就会产生多个事务同时存取同一数据的情况,若对并发操作不加以控制,就会造成对数据的错误存取,从而破坏数据库的一致性。 7.2 并发控制 7.2.1 并发控制的含义 并发控制是指当多个用户同时对数据库进行操作时,为了保护数据库中数据的完整性和一致性而采用的各种技术。 7.2.2 并发操作带来的问题 1.丢失修改 丢失修改是指事务T1和事务T2读取同一数据并分别修改,事务T2提交的结果覆盖了事务T1提交的结果,导致事务T1对数据的修改被丢失。 表7.1中,事务T1和事务T2分别读取到数据库中R的值为100,在t3时刻,T1将R减去30,则R的值为70,在t4时刻,T2将R减去20,则R的值为80。接下来,T1和T2分别将R的值写回数据库,由于T2的写入操作在T1的写入操作之后,所以R的值为80,这样就丢失了T1对R的修改值70。 13 7.2.2 并发操作带来的问题 2.读脏数据 读脏数据又称为污读,是指事务T1修改某一数据并将其写回磁盘,事务T2读取同一数据后,事务T1由于某种原因被撤销,被事务T1修改过的数据会恢复原值,于是事务T2读到的数据就与数据库中的数据不一致,事务T2读到的数

资源预览图

7.1事务(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
1
7.1事务(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
2
7.1事务(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
3
7.1事务(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
4
7.1事务(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
5
7.1事务(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。