内容正文:
数据库的高级管理
第五章
1
目 录
2
5.1 视图的创建与应用
5.2 T-SQL编程与应用
5.3 存储过程的创建与应用
5.4 事务管理
5.5 触发器的创建和应用
5. 4 事务管理
理解事务的概念。
掌握事务的基本操作。
知识目标
会使用事务编程。
能力目标
5
退学学生信息处理
为了便于学籍管理,教务处希望对退学超过一定年限的学生个人档案进行删除,在保证数据完整性的前提下,帮其完成该项工作。
、
任务描述
6
在数据库中,一个学生的信息涉及student和score两个表。如果需要删除一个学生的记录,那么要使用两条删除语句,而且这两条语句必须完整执行后才能有效保证数据的完整性,这里可以采用事务来实现数据的级联删除。
完成任务的具体步骤如下:
(1)定义变量,保存语句执行情况;
(2)在score表中删除某学生的成绩信息,保存执行结果;
(3)在student表中删除某学生的基本信息,保存执行结果;
(4)根据变量值,判断事务的执行状态。
退学学生信息处理
任务分析
5.4.1 事务的概念
事务是一种操作序列,它包含了一组数据库操作命令。
这组命令要么全部执行,要么全部不执行,因此事务是一个不可分割的工作逻辑单元。
当在数据库系统中执行并发操作时,事务是作为最小的控制单元来使用的,它特别适合用于多用户同时操作的数据通信系统,如订票系统、银行系统、保险公司系统及证券交易系统等。
1.原子性(Atomicity):一个事务要么所有的操作都执行,要么一个操作都不执行。只有在所有的语句和行为都成功完成的情况下,事务才能完成并将结果应用于数据库中。
2.一致性(Consistency):当一个事务完成时,数据必须处于一致状态。在事务开始之前,数据库中存储的数据处于一致状态;在正在进行的事务中,数据可能处于不一致的状态;但在事务完成之后,数据必须再次回到已知的一致状态。
3.隔离性(Isolation):在多个事务并发执行时,系统应保证与这些事务先后单独执行具有相同的结果,事务间彼此是隔离的,即并发执行的事务不必关心其他事务。
4.持久性(Durability):一个事务一旦完成全部操作,它对数据库的所有更新将永久反映在数据库中,即使系统发生故障,其执行结果也会保留。在事务执行完成后,它对系统的影响是永久性的。
知识导读
5.4.2 事务的分类
在SQL Server中,事务有以下3种类型。
显式事务:用BEGIN TRANSACTION明确指定的事务。
隐式事务:使用SET IMPLICIT_TRANSATIONS ON语句启动隐式事务模式,SQL Server将在提交或回滚事务后自动启动新事务。隐式事务无法描述事务的开始,只需执行提交或回滚事务操作。
自动提交事务:SQL Server的默认模式,它将每条单独的T-SQL语句视为一个事务,若成功执行,则自动提交,否则回滚。
知识导读
5.4.3 事务的操作
一个事务可以由3条语句来描述:
开始事务、提交事务和回滚事务。
(1)执行开始事务语句表示一个事务的开始;
(2)执行提交事务语句将所更改的数据永久保存到数据库中;
(3)如果在事务执行的过程中发生意外,则通过执行回滚事务语句撤销事务执行过程中的所有操作。
1.开始事务 表示一个显式本地事务的开始。
语法格式如下:BEGIN TRAN[SACTION] [事务名]
2.提交事务 表示一个事务的结束,提交事务。
语法格式如下:COMMIT TRAN[SACTION] [事务名]
知识导读
5.4.3 事务的操作
【例5-43】开始一个事务对score表中170101号课程的成绩加5分并查询修改后的成绩信息,然后使用提交事务语句进行提交。
--事务执行前 SELECT 'before' AS 事务执行前 ,s_id ,c_id ,grade
FROM score
WHERE c_id ='170101'
--开始事务 BEGIN tran gradeupd
UPDATE score
SET grade =grade+5
WHERE c_id ='170101'
-