8-第八章:事务管理(1)

8-第八章:事务管理(1)

ID:32383733

大小:487.04 KB

页数:101页

时间:2019-02-04

8-第八章:事务管理(1)_第1页
8-第八章:事务管理(1)_第2页
8-第八章:事务管理(1)_第3页
8-第八章:事务管理(1)_第4页
8-第八章:事务管理(1)_第5页
资源描述:

《8-第八章:事务管理(1)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、本讲(第八章)简要说明¢授课目的与要求:掌握事务管理的有关概念以及并发控制的必要性及控制方法。¢授课重点:事务的特性、串行化调度、两段封锁、基于时标的并发控制。¢授课难点:串行化调度、两段封锁。¢作业安排:p2633,4,6,15,16第八章事务管理¢两个以上查询试图修改同一数据项帐号借款贷款余额…..13945671000甲:乙:读余额1000;读余额1000;取款800;取款500;写余额200。写余额500。第八章事务管理¢两个以上查询企图试图修改同一数据项¢系统在执行查询期间出现故障¢只读查询与

2、修改查询为此,引入“事务”这一术语,它在数据库领域中被作为一致性和可靠性计算的基本单位。1.数据库的一致性¢假如一个数据库满足其上规定的所有一致性(完整性)约束,那么我们称此数据库处于一致性状态。¢注意:数据库可以在事务执行过程中出现暂时的不一致现象。重要的是数据库应该在事务终止后,处于一致性状态。数据库处于数据库可能暂时数据库处于一致状态处于不一致状态一致状态事务开始事务T执行事务终止2.可靠性一个系统承受各种类型故障的弹性和恢复系统的能力。一个有弹性的系统能够容忍系统故障,甚至在发生故障时能继续提供

3、服务。一个可恢复的DBMS能够在系统发生各种失败后,回到一致性的状态。3.事务管理负责使数据库始终保持一致性状态,甚至在有并发访问和错误发生时。ConcurrencyControlT1T2…TnDB(consistencyconstraints)8.1事务管理的基本概念1.什么是事务直观来说,事务要在数据库上完成动作,引起状态转移,生成数据库的一个新版本。一般来说,一个事务可以看作是由对数据库的读写操作与计算步骤一起构成的序列。¢嵌入了数据库访问的程序¢显示说明的一个事务¢单个或多个SQL语句的集合例1

4、DATABASE(C3)课程的成绩普遍增加10%.UPDATESCSETGRADE=GRADE*1.1WHEREC-NO=“C3”这一查询交户执行就是一个事务,也可以由嵌入式SQL表示,并通过指定名字和作出如下说明使其成为一个事务。Begin_transactionGRADE_UPDATEBeginEXECSQLUPDATESCSETGRADE=GRADE*1.1WHEREC-NO=“C3”End例2假设有一个航空订票数据库系统,关系FLIGHT记录了每次航班的有关数据,关系CUST记录了预定航班的所有

5、顾客的信息,关系FC记录了哪个顾客预定了哪一次航班的信息。这些关系的定义如下:(有下划线的属性构成关键字)FLIGHT(FNO,DATE,SRC,DEST,STSOLD,CAP)CUST(CNAME,ADDR,BAL)FC(FNO,DATE,CNAME,SPECIAL)FNO,DATE----航班号,日期;SRC,DEST----起点,终点。STSOLD----已售座位个数;CAP----旅客容量。CNAME----旅客姓名;ADDR----地址;BAL----资金差额。SPECIAL----旅客订票的

6、特殊要求。我们考虑一种简化的典型的订票情况:订票代办处输入航班号,起飞日期以及订票的顾客姓名,向航空公司订票。完成此功能的事务实现如下(嵌入式SQL语言):Begin_transactionReservationBegininput(flight_no,date,customer_name);(1)EXECSQLUPDATEFLIGHT(2)SETSTSOLD=STSOLD+1WHEREFNO=flight_noANDDATE=date;EXECSQLINSERT(3)INTOFC(FNO,DATE,C

7、NAME,SPECIAL)VALUES(flight_no,date,customer_name,null);output(“reservationcompleted”)(4)End.考虑可能没有座位的情况,航空订票事务修改如下:Begin_transactionReservationbegininput(flight_no,date,customer_name);EXECSQLSELECTSTSOLD,CAPFORUPDATEINTOtemp1,temp2FROMFLIGHTWHEREFNO=flig

8、ht_noANDDATE=date;iftemp1=temp2thenbeginoutput(“nofreeseats”);abortendelsebeginEXECSQLUPDATEFLIGHTSETSTSOLD=STSOLD+1WHEREFNO=flight_noANDDATE=date;EXECSQLINSERTINTOFC(FNO,DATE,CNAME,SPECIAL)VALUES(flight_no,date,customer_n

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。