为什么二级封锁协议不能保证可重复读,一级封锁协议不能保证可重复读和读脏数据

首页 / 常见问题 / 低代码开发 / 为什么二级封锁协议不能保证可重复读,一级封锁协议不能保证可重复读和读脏数据
作者:低代码开发工具 发布时间:10-25 13:58 浏览量:6516
logo
织信企业级低代码开发平台
提供表单、流程、仪表盘、API等功能,非IT用户可通过设计表单来收集数据,设计流程来进行业务协作,使用仪表盘来进行数据分析与展示,IT用户可通过API集成第三方系统平台数据。
免费试用

排它锁又叫写锁,事务A对数据D加了排它锁,其它任何事务都不能再对数据D加共享锁或者排它锁。也就是说A可以读取或者修改D,但是其它事务不能读也不能写。

一、为什么二级封锁协议不能保证可重复读

排它锁又叫写锁,事务A对数据D加了排它锁,其它任何事务都不能再对数据D加共享锁或者排它锁。也就是说A可以读取或者修改D,但是其它事务不能读也不能写,但是即使数据D加了写锁,其它事务的最基本的select语句还是可以读数据D的,因为最基本的select语句并不用申请任何锁!这个是最迷惑的地方,明白了这一点,一级封锁协议协议会读脏数据就很好理解了。

事务A对数据D=1加了排它锁,修改了数据使D=2,这个时候事务B虽然不能对数据D加任何锁,但是可以用select语句读,B读到了数据D=2,之后事务A出错,回滚D=1,那你B就读到了脏数据。

二级封锁协议规定在一级的基础上规定,事务A对数据D加了排它锁,事务B想用基本的select语句读D也必须要申请共享锁(读锁)!!,而一级是不需要的!!,所以B在事务A没结束期间都不能读数据D,这样就不会出现读脏数据了!

但是二级却不能保证可重复读,这是因为,二级规定读锁是读完就释放!!而不是事务结束才释放。比如B先对数据D=1加了读锁,读完释放了读锁,但是事务B并没有结束,这时事务A对数据D加了写锁,然后修改D=2,释放了写锁,这时,事务B再次对数据D申请读锁,读到了D=2,同一个事务,两次读取不一致,这就是二级为何不能保证可重复读!

三级就是不是读完就释放,而是事务结束才释放,这样就可保证可重复读了。

延伸阅读:

二、什么是数据库

有组织且相互关联的数据的集合称为数据库。database 是一个存储数据的应用程序。它有各种应用程序,包括 MySQL、Microsoft SQL、Oracle 等。

每个数据库都不同,因为每个公司/组织都有其结构、数据类型和约束。数据库 会定期更新,以获取有关公司的最新数据。

数据库可以手动和数字方式维护。在这个数据无处不在的时代,数字数据库是优选和使用。数据库的大小取决于组织的数据和需求。

数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样“仓库”,并根据管理的需要进行相应的处理。

例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。

有了这个”数据仓库”就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那的人事管理就可以达到极高的水平。

此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种“数据库”,使其可以利用计算机实现财务、仓库、生产的自动化管理。

最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。

最近更新

开发公司团队架构表怎么写
11-17 13:54
网站开发公司怎么找
11-17 13:54
如何选择软件定制开发公司
11-17 13:54
如何开发公司的团队优势
11-17 13:54
在Timing这款App的开发公司—武汉氪细胞 工作是什么体验
11-17 13:54
网站开发公司名称怎么起名
11-17 13:54
怎么选择专业网站开发公司
11-17 13:54
app开发公司怎么选择
11-17 13:54
如何开发公司团队
11-17 13:54

立即开启你的数字化管理

用心为每一位用户提供专业的数字化解决方案及业务咨询

  • 深圳市基石协作科技有限公司
  • 地址:深圳市南山区科技中一路大族激光科技中心909室
  • 座机:400-185-5850
  • 手机:137-1379-6908
  • 邮箱:sales@cornerstone365.cn
  • 微信公众号二维码

© copyright 2019-2024. 织信INFORMAT 深圳市基石协作科技有限公司 版权所有 | 粤ICP备15078182号

前往Gitee仓库
微信公众号二维码
咨询织信数字化顾问获取最新资料
数字化咨询热线
400-185-5850
申请预约演示
立即与行业专家交流