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

数据库设计与开发(北邮软件学院研究生讲义).pptVIP

数据库设计与开发(北邮软件学院研究生讲义).ppt

  1. 1、本文档共10页,可阅读全部内容。
  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文档。上传文档
查看更多

3.2.3事务的数据封锁北京邮电大学软件学院郭文明2003.06数据库管理系统采用数据封锁技术和事务技术解决并发性和一致性问题.数据封锁有两种封锁模式:专用锁:当一个事务以专用方式封锁某个资源时,只有此事务可以改变其中的内容,在该事务结束或释放其资源后,其它事务才能使用;共享锁:允许已封锁的资源被其它事务适度共享,多个事务可以在同一资源上申请共享锁.根据封锁的类型、持锁时间、何时释放的规则,将封锁协议分为一级封锁协议、二级封锁协议、三级封锁协议。不同封锁协议在不同程度上保证数据一致性和系统并发性。北京邮电大学软件学院郭文明2003.06在SQL语句执行时,所有必要的封锁均由DBMS自动完成(也可显式加锁),事务中所有为执行SQL语句建立的封锁均要延续到事务结束时才能释放,否则一个数据库对象在同一时间段内被多个事务交替操作,可能造成对数据库数据的破坏.当参与封锁的事务较多,而每个事务封锁的资源也较多时,可能出现‘死锁’情况。预防死锁的方法有一次封锁法、顺序封锁法。死锁的诊断有超时法、有向图法。死锁发生后,DBMS通常选择一个处理死锁代价最小的事务将其撤消,并恢复该事务。3.2.3事务的数据封锁3.2.3事务的数据封锁北京邮电大学软件学院郭文明2003.06两段锁协议(Two-phaseLocking)内容:①在对任何数据进行读写之前,事务首先要获得对该数据的封锁。②在释放一个封锁之后,事务不再获得任何其它封锁。 即事务分为两个阶段: 生长阶段:获得封锁。 收缩阶段:释放封锁。定理:若所有事务均遵从两段锁协议,则这些事务的所有并行调度都是可串行化的。3.2.4ORACLE事务控制-回退段北京邮电大学软件学院郭文明2003.06ORACLE为了适应事务控制设置了回退段这一数据库对象.系统利用回退段来确保诸如读一致性、数据库恢复等管理功能。ORACLE在缺省情况下,读数据不加锁,通过回退段(RollbackSegment)保证用户不读脏数据和可重复读.表空间中的数据按段来组织,数据段、索引段、暂存段和回退段,回退段是一块磁盘存储区域,回退段可以由用户创建,但只能由系统进程使用。3.2.4ORACLE事务控制-回退段北京邮电大学软件学院郭文明2003.06回退段中的数据是为事务服务的,每执行事务时,系统先在指定回退段上记录将要对数据进行的更改,以事务为单位,各个事务的回退信息链接在一起。当事务要回退时,利用回退信息将数据块中的数据恢复到先前的状态。事务成功提交后,回退信息逐渐失效(在提交之前申请的查询需要这些信息保证读一致性,事务提交前对数据的变动不会为其他用户所知晓)。回退段可以循环使用。北京邮电大学软件学院郭文明2003.061数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、DBA、用户组成。本章介绍数据库应用程序的数据访问与数据库应用系统的体系结构。21嵌入式SQL32事务处理技术43数据库应用系统体系结构54中间件63.数据库应用程序体系结构3.1嵌入式SQL北京邮电大学软件学院郭文明2003.06为什么使用嵌入式SQL?—有些数据访问任务对于交互式的非过程的SQL是无法完成的任务。—使用交互式SQL,必须知道表名、列名并且能够写出符合语法的SQL语句。—实际的应用系统是非常复杂的,数据库访问只是其中一个部件。有些动作如与用户交互、图形化显示数据等只能用高级语言实现。嵌入到过程性主语言中使用的SQL称为嵌入式SQL。主语言可以是C或Java(不一定是Windows环境).也可以是VisualBasic,Delphi(Windows环境)等。ORACLE的Pro*C即是使用嵌入式SQL的平台。3.1嵌入式SQL北京邮电大学软件学院郭文明2003.06把SQL嵌入主语言使用时必须解决的三个问题:1.区分SQL语句与主语言语句,用EXECSQL开始.2.数据库工作单元和程序工作单元之间的通信.SQL语句可以使用主语言的程序变量(简称主变量),这些变量名前加冒号(:)作标志,以区别于字段名。这些变量由BEGINDECLARESECTION与ENDDECLARES

文档评论(0)

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

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

1亿VIP精品文档

相关文档