实验七 数据库的事务创建与运行实验.docVIP

实验七 数据库的事务创建与运行实验.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七 数据库的事务创建与运行实验 实验目的  通过实验,了解MySQL数据库系统中各类数据库事务的定义机制和基于锁的并发控制机制,掌握MySQL数据库系统的事务控制机制。 实验环境 操作系统:Microsoft?Windows?7旗舰版?(32位)。? 数据库版本:MySQL?6.2 实验内容 定义三种模式的数据库事务 显式事务 显式事务是可以显式地在其中定义事务的开始和结束的事务。显示事务的特点是要么删除和插入同时成功,要么同时失败。 显式事务没有自动提交,可以回滚到原始点,在rollback和commit之前对数据库的修改都可以挽回,而不是永久写入。 (1)mysql默认采用autocommit模式运行。在创建显式事务前,需要修改autocommit变量。利用show variables 语句查看此变量的默认值。 (2)修改变量autocommit,禁止自动提交。 (3)创建一个显式事务前,查看course表。 (4)执行第一条插入语句并设置第一个回滚点p1。 (5)执行第二个插入语句并设置第二个回滚点p2。 (6)回滚到p1,则p2自动被丢弃。 (7)回滚到原始点,即事务开始的点。发现操作都被回滚。显式事务执行成功。 自动提交事务 mysql默认采用autocommit模式运行。这意味着,当您执行一个用于更新(修改)表的语句之后,MySQL立刻把更新存储到磁盘中。默认级别为不可重复读。 同样采用3.1.1的例子,当设置回滚点p1后,无法返回。 (1)修改autocommit=1; (2)分别执行两次插入操作,并设置回滚点p1和p2。回滚p1,显示错误。 隐式事务 虽然我们设置自动提交为OFF,但是在事务中如果有以下语句(以及同义词),则隐含地结束一个事务。在执行本语句前,已经进行了一个COMMIT。 ALTER FUNCTION, ALTER PROCEDURE, ALTER TABLE, BEGIN, CREATE DATABASE, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, DROP DATABASE, DROP FUNCTION, DROP INDEX, DROP PROCEDURE, DROP TABLE, LOAD MASTER DATA, LOCK TABLES, RENAME TABLE, SET AUTOCOMMIT=1, START TRANSACTION, TRUNCATE TABLE, UNLOCK TABLES. (1)设置autocommit的值为OFF。 (2)查看当前数据库的表,并创建一个example表,显示成功。 (3)执行rollback,虽然rollback执行显示成功,但是实际却没能发挥作用。因为隐式事务已经无法挽回。 察看事务的隔离级别 (1)查看InnoDB系统级别的事务隔离级别: (2) 查看InnoDB会话级别的事务隔离级别: 注:Repeatable Read(可重读):这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读(Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题。 四种隔离级别:Read Uncommitted(读取未提交内容),Read Committed(读取提交内容),Repeatable Read(可重读),Serializable(可串行化)。 实验总结 这次实验的困难多出自MySQL本身的问题,MySQL对部分事务调试语句的支持没有像SQL Server那么充分。 通过这次实验,我了解了mysql数据库系统中各类数据库事务的定义机制,掌握了MySQL数据库系统的事务控制机制。

文档评论(0)

_______ + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档