您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 数据库的事务创建与运行实验报告
北京邮电大学实验报告课程名称数据库系统原理实验内容实验七实验名:数据库的事务创建与运行实验班级姓名指导老师成绩_________2012年05月30日实验七数据库的事务创建与运行实验实验目的通过实验,了解sqlsever数据库系统中各类数据库事务的定义机制和基于锁的并发控制机制,掌握sqlsever数据库系统的事务控制机制。实验平台及环境本机为windows7操作系统平台,SQLServer2008数据库环境。实验内容1、定义三种模式的数据库事务2、察看事务的隔离级别实验步骤和结果分析1、定义三种模式的数据库事务(1)显式事务显示事务是一种由你自己指定的事务,允许自己决定哪一批工作必须成功完成,否则所有部分都不完成。操作包括begintransaction,rollbacktransaction,committransaction。例如:建立一个显示业务,删除和插入已调记录同时进行begintraninsertinto学生values('31430','张明','女','1980-1-200:00','计算机','3146')deletefrom学生where学号='31427'committran执行后再select*from学生结果如下:分析:由上表可见,要么删除和插入同时成功(插入了张明信息同时又删除了黄金花的信息),要么同时失败。这正是显式事务的特点。(2)自动提交事务自动提交事务:SQLServer的默认模式,无需加begin、rollback、commit等。例如:insertinto学生values('31431','李明','女','1980-1-200:00','计算机','3146')执行后再select*from学生结果如下:分析:自动提交事务模式下将每条单独的T-SQL语句视为一个事务。如果成功执行,则自动提交(比如上图,成功执行,李明的信息提交),否则回滚。(3)隐式事务打开隐性事务:setimplicit_transactionson在前一个事务完成时新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显式完成。例如:setimplicit_transactionsoninsertinto学生values('31432','李化','女','1980-1-200:00','计算机','3146')committran执行后再select*from学生结果如下:分析:当以隐性事务模式操作时,SQLServler将在提交或回滚事务后自动启动新事务。无法描述事务的开始,只需要提交或回滚事务。2、察看事务的隔离级别DBCCUseroptions图上isolationlevel的Value值readcommitted即已提交读模式,readcommitted级别是SQLServer的默认事务隔离级别。实验小结这次做实验内容不多,不过通过实验还是加强了对sqlsever数据库系统中各类数据库事务的定义机制和基于事务模式的认识。1、创建事务时,总是弹出警告告诉我插入异常,命令已终止。经过分析,发现是以前建立的主键和外键约束在作祟,所以立马删掉主键和外键,就能正常创建事物和执行。2、隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。对于多数应用程序,可以优先考虑把数据库系统的隔离级别设为ReadCommitted,它能够避免脏读取,而且具有较好的并发性能。尽管它会导致不可重复读、虚读和第二类丢失更新这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制。3、常用的四种隔离级别有:READUNCOMMITED(未提交读)、READCOMMITTED(已提交读)、REPEATABLEREAD(可重复读)、SERIALIZABLE(可序列化)
本文标题:数据库的事务创建与运行实验报告
链接地址:https://www.777doc.com/doc-5618434 .html