《《MySQL数据原理与应用》实验报告实验11事务处理.docx》由会员分享,可在线阅读,更多相关《《MySQL数据原理与应用》实验报告实验11事务处理.docx(9页珍藏版)》请在优知文库上搜索。
1、实验11事务处理实验目的令了解存储引擎的相关知识;令熟悉事务的基本概念;令掌握事务的AClD特性和状态;令掌握如何使用事务,设置事务的隔离级别。要求:所有操作结果均以截图的形式保存,截取的图上尽可能的出现自己的个人信息。实验设备PC机一台;Win7/10操作系统;MySQL8.0、NavicatWorkbench0【实验报告提交】在完成本实验文档要求的所有任务后,加上版权(水印),将文件以“学号姓名+实验11事务处理”命名,并转换成PDF文件,提交至超星平台本课程对应的作业文件夹中。实验任务任务1演示提交与回滚操作任务2演示读未提交操作任务3演示读已提交操作任务4演示可重复读操作任务5实验过程
2、中常见错误解决方法实验流程任务1演示提交与回滚操作【任务需求】往“tb_department”数据表中插入一行数据,进行提交(COMMlT)操作;继续往数据表中插入一行数据,进行回滚(ROLLBACK)操作。首先使用“db_study”数据库,执行“BEGIN;”语句开启一个事务。往“tb_department”数据表中插入一行数据,最后执行“COMMIT;”语句进行提交操作。执行BEGIN;”语句开启一个事务。往“tb_department”数据表中插入一行数据,最后执行“ROLLBACK;”语句进行回滚操作【任务参考效果图】mysqlUSEdb_study;Databasechangedm
3、ysqlBEGIN;QueryOK,0rowsaffected(0.00sec)mysqlIINSERTINTOtb_department-VALUES(X09,人工智能学院,87471238,1栋教学楼);Query0K1rowaffected(0.OUsec)-mysqlCOMMIT;QueryOK,0rowsaffected(0.00sec)mysqlrBEGIN?Query0K,0rowsaffected(0.00sec)mysqlINSERTINTOtb_department-VALUES(X10,马克思学院,87471239,T3栋教学楼);QueryOK,Trowaffected
4、(0.00sec)一mysqlROLLBACK;QueryUK,0rowsaffected(0.00sec)【任务完成效果图】请按照任务需求将完成的效果图放在下方。任务2演示读未提交操作【任务需求】将两个会话SessionASessionB设置隔离级别为读未提交(READUNCOMMITTED),并在两个会话中开启事务,首先在SessionA会话中将titb_department,数据表中department_name(学院名称)计算机学院的department_address(学院地址)的值修改5栋教学楼,并且不进行COMMn提交操作,此时SessionB会话中需要查看到已修改的数据。【任务
5、参考效果图】Administrator:CmeLeXe-myql-urtpSeSSiOnA-口SessionBmysqlSELECT*FROMtb-department;Idepartment_iddepartment-nameIdepartment-PhOneIdepartment_addressXOl_嬲融工程学院874712311X0287471232X0387471233X04874712347隹,幸黄3楼X05874712357栋教学楼6楼X06874712356栋教学楼4楼X07874712366栋教学楼5楼X08人又与睡学院87471236行政楼X09874712381栋教学楼9
6、rowsinset(O.00sec)AdminiMratoccmdeKemyqlMoOtpmysqlUSEdb_study;DatabasechangedmysqlSTARTTRANSACTION;QueryOK,Orowsaffected(O.OOsec)mysqlSELECT*FROMtb-department;一一T4_二卜d卜department_idddepartment_name卜SELECT*FROMtb-department;I department-id department_nameIdepartment_phonedepartmenJaddreSS123456789Ooo
7、ooooooXxxxxxxxx院与学学学院学育学 学造程理理学计教能 机制工管管语设与智 算能筑商济国术文.工 计智建工经外艺人人电院院院院学院874712318747123287471233874712348747123587471235874712368747123687471238楼舞舞Il楼一m.蝴8w776n.9rowsinset(O.OOsec)mysqlCONMITSessionBQueryOK,(Trowsaffected(0.OOsec)AdminiMrdtoccmd.exemysql-vrootpmysqlSELECT*FROMtb_department:I departm
8、ent_id department_namedepartment-PhOnedepartment_address123456789Ooooooooo Xxxxxxxxx电院院院院学院 院与学学学院学育学 学造程理理学计教能 机制工管管语设与智 算能筑商济国术文工 计智建工经外艺人人874712318747123287471233874712348747123587471235874712368747123687471238信息楼9栋教学楼8栋教学楼7栋教学楼3楼7栋教学楼6楼6株教学楼4楼6栋教学楼6楼 行政楼1栋教学楼9rowsinset(O.OOsec)【任务完成效果图】请按照任务需求将完
9、成的效果图放在下方。任务4演示可重复读操作【任务需求】将两个会话SessionA.SessionB设置隔离级别为可重复读(REPEATABLEREAD),并在两个会话中开启事务,首先在SeSSionA会话中将tb_department”数据表中department_name(学院名称)智能制造与电气工程学院的department_address(学院地址)的值修改9栋教学楼2楼,并进行COMMIT提交操作。同时在SessionB会话也中对智能制造与电气工程学院的学院地址进行修改操作,此时SeSSiOnB会话将操作失败。SessionA【任务参考效果图】GQAdmintstratoncmd.ex
10、e-mysql-uroot-pmysqlSETSESSIONTRANSACTIONISOLATIONLEVELREPEATABLEREAD;QueryOK,Orowsaffected(O.OOsec)mysqlIUSEdb_study;|DatabaseChangedmysqlSTARTTRANSACTION;QueryOK,Orowsaffected(O.OOsec)mysqlUPDATEtb_department-:SETdepartment_address=9栋教学楼2楼-WHEREdepartment_name-,智能制造与电气工程学堂;QueryOK,1rowaffected(O.O
11、Osec)Rowsmatched:1Changed:1Warnings:OmysqlAdministrator:cmd.ee-mysql-urootpSSSIOB一口mysqlSETSESSIONTRANSACTIONISOLATIONLEVELREPEATABLEREAD:QueryOK,Orowsaffected(O.OOsec)mysqlJJSEdb_study;Databasecange3mysqlSTARTTRANSACTION;QueryOK,OrowsaffecTed(O.OOsec)mysqlUPDATEtb_department-SETdepartment_address=9
12、栋教学楼3楼-WHEREdepartme5t_name二智能制造与电气工程生院LERROR1205(HYOOO):Lockwaittimeoutexceeded:tryrestartingtransactionmysql.【任务完成效果图】请按照任务需求将完成的效果图放在下方。任务5实验过程中常见错误解决【任务需求】在实验过程中出现如下图所示的错误,请调试,并写出解决办法。【实验思考】1 .未进行COMMIT事务提交操作在SessionA会话中往“tb_department”数据表中插入一行数据,并且在当前会话中能查看到插入的数据,如下图1所示。当在SessionB会话中则不能查看,如下图2所示。AdmlnluratocCfnd.xmytqlurootpmysqlUSEdb_study:Database.changfid_mysqlSTARTTRANSACTION:QueryOK,0rowsaffected(0.00sec)mysqlINSERTINTOtb_d