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

资源下载
  1. 二一教育资源

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

资源简介

(共15张PPT)
并发控制
第7章
本章主要内容
本章主要介绍数据库并发操作带来的数据不一致性问题、事务的概念及特性、活锁和死锁问题、数据库系统的封锁技术及封锁协议、并发调度的可串行性与两段锁协议、封锁粒度与多粒度封锁等。
为了充分利用数据库资源,数据库用户对数据库系统并行存取数据,这样就会发生多个用户并发存取同一数据的情况,如果对并发操作不加控制,可能会产生不正确的数据,破坏数据的完整性。因此,数据库管理系统提供并发控制机制,保证数据库的完整性和一致性。
目录
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.2.2 并发操作带来的问题
2.读脏数据
读脏数据又称为污读,是指事务T1修改某一数据并将其写回磁盘,事务T2读取同一数据后,事务T1由于某种原因被撤销,被事务T1修改过的数据会恢复原值,于是事务T2读到的数据就与数据库中的数据不一致,事务T2读到的数据就成为脏数据,是不正确的数据。
7.2.2 并发操作带来的问题
3.不可重复读
不可重复读是指事务T1读取数据R后,事务T2读取并更新了数据R,当事务T1再次读取数据R时,事务T1无法再现前一次的读取结果。

展开更多......

收起↑

资源预览