数据库系统概论10.pptVIP

  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文档。上传文档
查看更多
未提交读(Read Uncommitted)? ?直译就是读未提交,意思就是即使一个更新语句没有提交,但是别的事务可以读到这个改变.这是很不安全的。允许任务读取数据库中未提交的数据更改,也称为脏读。? 提交读(Read Committed)? ?直译就是读提交,可防止脏读,意思就是语句提交以后即执行了COMMIT以后? 别的事务就能读到这个改变. 只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别? 可重复读(Repeatable Read) 直译就是可以重复读,这是说在同一个事务里面先后执行同一个查询语句的时候,得到的结果是一样的.在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读? 串行读(Serializable)? 直译就是序列化,意思是说这个事务执行的时候不允许别的事务并发执行. 完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞 隔离级别 第一类丢失更新 脏读 第二类丢失更新 不可重复读 幻读 Read Uncommitted Read Committed Repeatable read Serializable 可以使用select @@tx_isolation;查询mysql默认的事务隔离级别 结束 * * * * * * * 数据库系统概论 视图、事务 主讲:刘志鹏 Hello View! select * from my_contacts natural join job_current; create view mc as (select * from my_contacts natural join job_current); select * from mc; 视图(View) 数据库中的视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 1.从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。 2.从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表,是由一张或多张表中的数据组成的。 3.从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。 视图的作用 1.简单性 看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。 2.安全性 通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上。 3.逻辑数据独立性 视图可帮助用户屏蔽真实表结构变化带来的影响。 事务 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)特性。 时间 账户A 账户B 从账户A转账100元到账户B 1 1000 查询账户A余额 1000元 Select sum from A 2 900 从账户A中减去100元 Update A set sum=900 3 100 查询账户B余额100元 Select sum from B 4 200 汇入B账户100元 Update B set sum=200 5 900 200 转账完成! 时间 账户A 账户B 从账户A转账100元到账户B 1 1000 查询账户A余额 1000元 Select sum from A 2 900 从账户A中减去100元 Update A set sum=900 3 100 查询账户B余额100元 Select sum from B 4 意外发生(如停电、网络中断等),后面的更新账户B的操作无法完成 5 系统恢复后 6 100 查询账户B余额100元 Select sum from B 7 900 查询账户A余额 900元 Select sum from A 8 账户A的100元人间蒸发 Hello Transaction! Set autocommit = 0; Start trasaction; I

文档评论(0)

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

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

1亿VIP精品文档

相关文档