实验14 并发控制实验.pptVIP

  • 41
  • 0
  • 约6.21千字
  • 约 30页
  • 2017-05-21 发布于浙江
  • 举报
实验14 并发控制实验

数据库技术与应用实验 德州学院 计算机系 实验10 并发控制实验 预备知识 -事务运行模式 SQL Server 2008的事务运行模式 (1)自动提交事务 每条单独的语句都是一个事务。 (2)显式事务 每个事务均以GEBIN TRANSACTION 语句显式开始,以COMMIT或ROLLBACK语句显式结束。 (3)隐式事务 在前一个事务完成时,新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显式完成。 (4)批处理级事务 只应用于多个活动结果集(MARS),在MARS回话中启动的T-SQL显式或隐式事务变成批处理级事。当批处理完成时没有提交或回滚的批处理级事务自动由SQL Server进行回滚。 预备知识 -事务控制语句 事务控制语句 SQL Server 2008中的事务控制语句包括以下几种: (1)BEGIN TRANSACTION语句 BEGIN TRANSACTION语句表示事务的开始,其语法格式为: BEGIN TRAN[SACTION] [ 事务名| 事务变量名 ] 其中,事务变量名是用户定义的、含有有效事务名称的变量,该变量必须是字符型。 (2)COMMIT TRANSACTION语句 COMMIT TRANSACTION语句标志一个成功的事务(包括显式和隐式事务)的结束。其语法格式为: COMMIT TRAN[ACTION] [ 事务名| 事务变量名 ] 预备知识 -事务控制语句 (3)ROLLBACK TRANSACTION语句 ROLLBACK TRANSACTION语句将事务(包括显式和隐式事务)回滚到事务的起点或事务内的某个保存点。其语法格式为: ROLLBACK TRAN[SACTION] [ 事务名 | 事务变量名 | 保存点名 | 保存点变量名 ] (4)SAVE TRANSACTION语句 SAVE TRANSACTION语句在事务内部设置保存点,这样可以按条件将事务回滚到保存点,而不是回滚整个事务。 预备知识 -锁 Microsoft SQL Server 的数据库引擎具有多粒度锁定功能,允许一个事务锁定不同类型的资源。为尽量减少锁定的开销,数据库引擎会自动将资源锁定在适合任务的级别上。因此,一般情况下用户不必关心加锁、解锁问题。同时,SQL Server的SQL语句(SELECT、INSERT、DELETE、UPDATE)支持显式加锁。这4个语句在显式加锁的语法上类似,下面仅以SELECT语句为例给出加锁的简化语法: SELECT … FROM 表名 [WITH 锁类型] … 预备知识 -锁 SQL Server 2008中支持的锁类型主要有如下几种: (1)HOLDLOCK,只在该表上保持共享锁,直到整个事务结束,而不是在语句执行完立即释放。 (2)NOLOCK:不添加锁。这个选项只适用于SELECT语句,并且使用此选项,可能会读到未提交的数据或“脏数据”。 (3)PAGLOCK:指定添加页面锁(否则通常可能添加表锁)。 (4)ROWLOCK:指定使用行级锁。 (5)TABLOCK:指定使用表级锁,SQL Server在该语句执行完后立即释放这个锁,而如果同时指定了HOLDLOCK,该锁一直保持到这个事务结束。 (6)TABLOCKX:指定在表上使用排它锁,这个锁可以阻止其他事务读或更新这个表的数据,直到这个语句或整个事务结束。 例如:SELECT * FROM StudentInfo WITH (TABLOCK) 实验10 并发控制实验 实验目的 掌握SQL Server 2008中事务的定义和作用。 理解SQL Server 2008的加锁机制。 掌握并发操作带来的数据不一致性的原理和封锁机制。 掌握死锁形成的原理和死锁解除方法。 实验10 并发控制实验 实验要求 建立适当事务实例,体会事务的原子性和一致性特征。 编写适当事务实例,模拟“不可重复读”问题。 编写适当事务实例,验证SQL Server 2008的自动加锁机制是否能避免“不可重复读”问题。 编写适当事务实例,模拟两个事务产生死锁的情景。 撰写实验报告,并附实验结果与相应实验语句。 实验10 并发控制实验 实验步骤 建立一个事务,实现SC表转分功能,将任务编号为“(2009-2010-2)-140176-09006”、学号为“201001903029”的课程成绩减10分,并将10分加给学号“201001903051”的学生。设置合适数据,执行此事务,体会事务的原子性与一致性。 (1)为SC的Grade列建立CHECK约束,保证分数在0至100之间。如果已经建立此CHECK约束,可以省略此步骤。 ALTER TABLE SC ADD CHECK(Grade=0

文档评论(0)

1亿VIP精品文档

相关文档