西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第13章 多用户操作

第13章多用户操作 第13章多用户操作 13.1多用户简介 132多用户 FoXPro的加锁和 出错处理 133死锁的预防
第13章 多用户操作 第13章 13.1 多用户简介 13.2 多用户 FoxPro 的加锁和 出错处理 13.3 死锁的预防

第13章多用户操作 131多用户简介 13.1.1数据的一致性和正确性 假定,分处于两个网络工作站上的两程序甲和乙同 时使用某库文件A。甲打开A库文件后,对其中的数据 进行修改;乙用户打开A库文件后,只是使用其中的数据 (即不进行修改操作)
第13章 多用户操作 13.1 多 用 户 简 介 13.1.1 数据的一致性和正确性 假定, 分处于两个网络工作站上的两程序甲和乙同 时使用某库文件A。 甲打开A库文件后, 对其中的数据 进行修改; 乙用户打开A库文件后, 只是使用其中的数据 (即不进行修改操作)

第13章多用户操作 再进一步假定,甲、乙两用户同时都对同一库文 件A进行修改。此时,情况更复杂了。当两用户修改 结束后,谁也无法确定,库文件更新的数据中,哪些是正 确的,哪些是错误的;哪些数据最终是仅由甲修改的,哪 些数据最终是乙修改的,哪些数据是甲乙双方修改的结 果。也即,在这种情况下,连数据的正确性都无法保证。 加锁可以保证数据的一致性和正确性
第13章 多用户操作 再进一步假定, 甲、 乙两用户同时都对同一库文 件A进行修改。 此时, 情况更复杂了。 当两用户修改 结束后, 谁也无法确定, 库文件更新的数据中, 哪些是正 确的, 哪些是错误的; 哪些数据最终是仅由甲修改的, 哪 些数据最终是乙修改的, 哪些数据是甲乙双方修改的结 果。 也即, 在这种情况下, 连数据的正确性都无法保证。 加锁可以保证数据的一致性和正确性

第13章多用户操作 13.1.2加锁,共享,冲突与死锁 所谓加锁( Locking)就是对库文件加锁(File Locking)。当用户甲对库文件A加锁后,其他用户都不 能再使用此库文件 上述的加锁法虽然可以保证库文件数据的一致性 和正确性,但却不能使多个用户同时使用同一个库文件 即破坏了共享 当用户甲要使用某库文件数据时(不修改,如果不 在乎数据是否一致,他并不需要对库文件A进行加锁;但 若他要求数据必须一致,那么必须给库文件A加锁
第13章 多用户操作 13.1.2 加锁, 共享, 冲突与死锁 所谓加锁 (Locking) 就 是 对 库 文 件 加 锁 (File Locking)。 当用户甲对库文件A加锁后, 其他用户都不 能再使用此库文件。 上述的加锁法虽然可以保证库文件数据的一致性 和正确性, 但却不能使多个用户同时使用同一个库文件, 即破坏了共享。 当用户甲要使用某库文件数据时(不修改), 如果不 在乎数据是否一致, 他并不需要对库文件A进行加锁; 但 若他要求数据必须一致, 那么必须给库文件A加锁

第13章多用户操作 加锁虽然可以保证数据的一致性和正确性,但加锁 也带来了两个新问题:冲突和死锁。冲突( Collision)。 当用户甲对库文件加锁,不允许其他用户使用此库 文件后,用户乙企图打开此库文件,就发生了冲突。或 者,当用户甲对库文件加锁,不允许其他用户修改此库 文件后,用户乙企图修改此库文件,也会发生冲突。 死锁一般在多库文件操作时发生。用户甲对库文 件A加锁,不允许其他用户使用,然后,准备使用库文件 B的数据;但库文件B已被用户乙加锁,不允许其他用户 使用,且用户乙也准备使用库文件A的数据
第13章 多用户操作 加锁虽然可以保证数据的一致性和正确性, 但加锁 也带来了两个新问题: 冲突和死锁。 (Collision)。 当用户甲对库文件加锁, 不允许其他用户使用此库 文件后, 用户乙企图打开此库文件, 就发生了冲突。 或 者, 当用户甲对库文件加锁, 不允许其他用户修改此库 文件后, 用户乙企图修改此库文件, 也会发生冲突。 死锁一般在多库文件操作时发生。 用户甲对库文 件A加锁, 不允许其他用户使用, 然后, 准备使用库文件 B的数据; 但库文件B已被用户乙加锁, 不允许其他用户 使用, 且用户乙也准备使用库文件A的数据

第13章多用户操作 132多用户 FoxPro的加锁和 出错处理 1321多用户 FoxPro的加锁 1.独占加锁 在打开库文件的同时,对库文件进行的加锁为独占 加锁。独占加锁是最严厉的加锁 个库文件被独 占加锁后,只有加锁用户可以使用该库文件,其他用户 无权打开此库文件,更谈不上修改,使用此库文件了 (1)独占加锁法
第13章 多用户操作 13.2 多用户 FoxPro 的加锁和 出错处理 13.2.1 多用户 FoxPro 的加锁 1. 在打开库文件的同时, 对库文件进行的加锁为独占 加锁。 独占加锁是最严厉的加锁。 一个库文件被独 占加锁后, 只有加锁用户可以使用该库文件, 其他用户 无权打开此库文件, 更谈不上修改, 使用此库文件了。 (1) 独占加锁法

第13章多用户操作 FoxPro提供了两种独占加锁的方法。 ①使用 SET EXCLUSIVE命令,命令格式为 SET EXCLUSIVE ON/OFF 执行了 SET EXCLUSIVE ON命令后,系统将处于 EXCLUSIⅤEON状态。在此状态下,执行USE命令打 开库文件时,若无特殊声明,被打开的库文件都是独占 加锁的。但是,该命令执行以前,未独占打开的库文件, 仍保持不独占加锁的特性(共享特性)
第13章 多用户操作 FoxPro提供了两种独占加锁的方法。 ① 使用SET EXCLUSIVE命令, 命令格式为: SET EXCLUSIVE ON/OFF 执行了SET EXCLUSIVE ON命令后, 系统将处于 EXCLUSIVE ON状态。 在此状态下, 执行USE命令打 开库文件时, 若无特殊声明, 被打开的库文件都是独占 加锁的。 但是, 该命令执行以前, 未独占打开的库文件, 仍保持不独占加锁的特性(共享特性)

第13章多用户操作 执行了 SET EXCLUSIVE OFF命令后,系统即处于 EXCLUSIVE OFF状态。在此状态下,利用USE命令打 开库文件时,若无特殊声明,打开的库文件是不独占加 锁的。但是,此命令执行前,已独占加锁的库文件,仍 保持独占加锁的特性 观察下列程序段 SET EXCLUSIVE ON SELECT 1 USE职工 SET EXCLUSIVE OFF
第13章 多用户操作 执行了SET EXCLUSIVE OFF命令后, 系统即处于 EXCLUSIVE OFF状态。 在此状态下, 利用USE命令打 开库文件时, 若无特殊声明, 打开的库文件是不独占加 锁的。 但是, 此命令执行前, 已独占加锁的库文件, 仍 保持独占加锁的特性。 观察下列程序段: SET EXCLUSIVE ON SELECT 1 USE 职工 SET EXCLUSIVE OFF

第13章多用户操作 SELECT B USE工资 上述程序若能执行成功,职工DBF库文件独占加锁, 工资DBF未独占加锁(可共享) SET EXCLUSIⅤE的初始默认值为ON ②打开库文件时,声明独占加锁。利用USE命令 打开库文件时,若带有子句: EXCLUSIVE 则打开的库文件是独占加锁的。即使刚执行过 SETEXCLUSIVE OFF命令,也是如此
第13章 多用户操作 SELECT B USE 工资 上述程序若能执行成功, 职工.DBF库文件独占加锁, 工资 .DBF 未独占加锁(可共享)。 SET EXCLUSIVE的初始默认值为ON。 ② 打开库文件时, 声明独占加锁。 利用USE命令 打开库文件时, 若带有子句: EXCLUSIVE 则打开的库文件是独占加锁的。 即使刚执行过 SET EXCLUSIVE OFF命令, 也是如此

第13章多用户操作 例 USE职工 EXCLUSIVE 若此命令执行成功,职工DBF库文件就被该用户独 占 ③打开库文件时,声明可共享。利用USE命令打开 库文件时,若带有子句 SHARE 则打开的库文件是可共享的。即使刚执行过SET EXCLUSIVE ON命令,也是如此
第13章 多用户操作 例 USE 职工 EXCLUSIVE 若此命令执行成功, 职工.DBF库文件就被该用户独 占。 ③ 打开库文件时, 声明可共享。 利用USE命令打开 库文件时, 若带有子句: SHARE 则打开的库文件是可共享的。 即使刚执行过SET EXCLUSIVE ON命令, 也是如此
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第12章 多库文件操作.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第11章 FoxPro生成器的使用.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第10章 子程序及基本菜单的.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)目录(主编:郭盈发).ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第十章 继承.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第九章 数组.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第八章 面向对象的Java程序.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第七章 使用方法.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第六章 循环结构.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第五章 运算符、类型转换以及条件判断结构.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第四章 对象和编程结构.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第三章 Java技术编程入门.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第一章(1-5)Java程序分类.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第二章 面向对象的分析与设计.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第一章 Java编程语言概述.ppt
- 莆田学院:《C语言程序设计》第八章 函数.ppt
- 莆田学院:《C语言程序设计》第七章 数组.ppt
- 莆田学院:《C语言程序设计》第三章(3-2)常量与变量.ppt
- 莆田学院:《C语言程序设计》第五章 选择结构程序设计.ppt
- 莆田学院:《C语言程序设计》第1章 C语言概述.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第14章 FoxPro与其它语言.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第15章 关系数据库.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第16章 关系数据库设计初步.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第1章 数据库系统概论.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第2章 FoxPro基础知识.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第3章 FoxPro应用基础.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第4章 库文件的维护及.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第5章 FoxPro系统菜单的使用.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第6章 数据库的辅助操作命令.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第7章 FoxPro程序设计初步.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第8章 循环.ppt
- 西安电子科技大学出版社:《数据库原理与应用》课程教材电子教案(PPT课件讲稿)第9章 输入输出格式设计.ppt
- 《MMS Visual Studio .NET培训》可视化的软件架构设计.ppt
- 《MMS Visual Studio .NET培训》在NET上构架企业级应用程序.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第二十一讲 ASP.NET增强服务器 控件.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第十五讲 DataAdapter对象.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第十四讲 DataReader对象的使用.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第十六讲 DataSet对象.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第十八讲 利用 Gridview控件显示数据.ppt
- 河南经贸职业学院:《ASP.NET动态网站开发》课程教学资源(PPT课件)第二十二讲 Treeview控件.ppt