网站大量收购闲置独家精品文档,联系QQ:2885784924

数据库原理与应用实验11(二版).docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库原理与应用实验11(二版).doc

实验 一、实验目的及要求 本实验主要目的是让学生: 学会解决出现不一致性的方法 了解锁机制 了解死锁和活锁发生的原理 二、实验原理背景知识 由用户在其中定义事务的启动和结束。其语句格式如下: 使用BEGIN TRANSACTION建立事务 SET TRAN ISOLATION LEVEL isolation_name -- 设置隔离级别 BEGIN TRAN[SACTION] [transaction_name | @tran_name_variable [WITH MARK [description] ] ] 其隔离级别有如下几种类型 表2-11-1 隔离级别类型表 隔离级别 丢失更新 读脏数据 不可重复读 read uncommitted(未提交读) 允许 允许 允许 read committed (提交读) 允许 不允许 允许 repeatable read(可重复读) 允许 不允许 不允许 Serializable(可串行读) 不允许 不允许 不允许 注意:系统默认隔离级别为READ COMMITTED(可提交读) 使用COMMIT TRANSACTION标识事务结束,其语句格式如下: COMMIT [TRAN[SACTION] [ transaction_name | @tran_name_variable] ] 执行该语句,将提交当前事务,事务中所有数据修改在数据库中将永久有效,占用的资源将被释放。 使用COMMIT WORK语句标识事务结束,其语句格式如下: COMMIT [WORK] 标示一个事务正常结束,该语句成功执行后,SQL Server将从上一个事务结束后到该语句之前的所有T-sql语句对数据库的操作保存到数据库中。 使用ROLLBACK TRANSACTION语句回滚到事务的指定点,其语句格式如下: ROLLBACK [TRAN[SACTION] [transaction_name | @tran_name_variable|savepoint_name|@savepoint_variable] 事务执行过程中遇到错误,修改的所有数据被回滚到事务指定位置的状态,占用的资源将被释放。 使用ROLLBACK WORK语句回滚到事务的起点 ROLLBACK[WORK] 表示一个事务的非正常结束,该语句结束后,SQL Server将从上一个事务结束后到该语句之间的 所有T-sql语句对数据库的操作撤销掉,数据库恢复到事务执行前的状态。 使用SAVE TRANSACTION语句设置保存点 SAVE [TRAN[SACTION]] {savepoint_name} SQL Server允许在事务处理上设置保存点,保存点允许在一个事务处理内部做些工作,而后基于 特定条件回滚这些工作,保存点类似于c语言的goto语句的标号。 (2)隐式事务 隐式事务是指在当前事务提交或回滚后,自动启动新事务。当SQL Server首次执行下列语句时,都会自动启动一个事务:所有的create语句、drop语句、open、alter table、insert、delete、update、revoke、grant、select和fetch。 一般使用set implicit_transactions off (on)语句可以关闭(打开)隐式事务模式。 (3)自动事务模式 在自动事务模式下,每个Transact_SQL语句在成功执行完成后,都被自动提交;如果遇到错误,则自动回滚该语句。该模式为系统默认的事务管理模式。 (一)锁机制 所作为一种安全机制,用以封锁正被一个事务修改的数据,防止其它用户访问到“不一致”的数据。锁机制能够控制多个用户的并发操作,可以防止用户读取正在由其他用户更改的数据或者多个用户同时修改同一数据,从而确保事务完整性和数据库一致性。 1、锁的控制方法 (1)锁类型 排它锁(Exclusive Lock,X锁):又称为写锁,若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,知道T释放A上的锁。 共享锁(Share Lock ,S 锁):又称读锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。 (2)锁粒度 锁对象的大小称为锁粒度。锁对象可以是逻辑单位,这时的粒度可以是数据库、表、记录或列。 (3)锁协议 锁协议是指每个事务的执行可以分为两个阶段:加锁阶段和解锁阶段。 锁实现过程如下:事务开始后就处于加锁阶段,一直到执行ROLLBACK和COMMIT之前都是加锁阶段。ROLLBACK和COMMIT使事务进入解锁阶段,即在ROLLBACK和COMMIT模块中DBMS释放所

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档