热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

事物的基本概念,附图示

并发操作问题事物是并发操作的基本单位,保证事物的ACID特征是事务处理的重要人物,而事务的ACID特征可能遭到破坏的原因之一是多个事务对数据库的并发操作造成的。为了保证事务的隔离性

并发操作问题

  事物是并发操作的基本单位,保证事物的ACID特征是事务处理的重要人物,而事务的ACID特征可能遭到破坏的原因之一是多个事务对数据库的并发操作造成的。为了保证事务的隔离性和一致性,DBMS需要对并发操作进行正确调度。其中完整性校验可以保证一个事务单独执行时,若输入的数据库状态是正确的,则其输出的数据库状态也是正确的,但当多个事物交错执行时,可能出现不一致的问题,这也称为并发操作问题,典型的有如下三种:丢失更新、不可重复读和读”脏“数据。

  (1)丢失更新

  设有两个事物T1和T2,当它们同时读入同一数据并加以修改时,事务T2的提交结果会破坏事务T1的提交的结果,由此导致事务T1的修改丢失。这就是一种由于对数据的并发操作而带来的数据不一致。

 

  (2)不可重复读

  设有两个事物T1和T2,不可重复读是指事物T1读取事务后,事务T2执行更新操作,使事务T1无法再现前一次读取的结果。通常,不可重复读包括三种情况。

    i)事务T1读取某一数据后,事务T2对其做了修改,当事务T1再次读该数据时,得到与前一次不同的值。

    ii)事务T1按一定的条件从数据库中读取某些数据后,事务T1删除了其中部分记录,当事务T1再次按相同条件读取数据时,发现某些记录神秘的消失了。

    iii)事务T1按一定的条件从数据库中读取某些记录后,事务T2插入了一些记录,当事务T1再次按相同条件读取数据时,发现多了一些记录。

  (3)读”脏“数据

   设有两个事物T1和T2,读”脏“数据是指,事务T1修改了某一数据,并将其写回磁盘,事务T2读取同一数据后,事务T1由于某种原因被撤销,这时事务T1已经修改过的数据恢复原值,事务T2督导的数据,就与数据库中的数据不一致,则事务T2读到的数据就为‘’脏‘数据,机不正确的数据。

  产生上述三类数据不一致的主要原因是并发操作破坏了事物的隔离性,并发控制机制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致。

  解决并发操作所带来的数据不一致问题的方法有***、时间戳、乐观控制法和多版本并发控制等。本节接下来主要介绍***方法,这也是众多数据库产品采用的基本方法。  


推荐阅读
  • 本文详细介绍了数据库并发控制的基本概念、重要性和具体实现方法。并发控制是确保多个事务在同时操作数据库时保持数据一致性的关键机制。文章涵盖了锁机制、多版本并发控制(MVCC)、乐观并发控制和悲观并发控制等内容。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 在 CentOS 7 环境中使用 MySQL 5.6 镜像启动数据库时遇到权限问题,本文将详细探讨并提供解决方案。 ... [详细]
  • NX二次开发:UFUN点收集器UF_UI_select_point_collection详解
    本文介绍了如何在NX中使用UFUN库进行点收集器的二次开发,包括必要的头文件包含、初始化和选择点集合的具体实现。 ... [详细]
  • 本文介绍了Spring 2.0引入的TaskExecutor接口及其多种实现,包括同步和异步执行任务的方式。文章详细解释了如何在Spring应用中配置和使用这些线程池实现,以提高应用的性能和可管理性。 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • EST:西湖大学鞠峰组污水厂病原菌与土著反硝化细菌是多重抗生素耐药基因的活跃表达者...
    点击蓝字关注我们编译:祝新宇校稿:鞠峰、袁凌论文ID原名:PathogenicandIndigenousDenitrifyingBacte ... [详细]
  • SQL 连接详解与应用
    本文详细介绍了 SQL 连接的概念、分类及实际应用,包括内连接、外连接、自连接等,并提供了丰富的示例代码。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • [c++基础]STL
    cppfig15_10.cppincludeincludeusingnamespacestd;templatevoidprintVector(constvector&integer ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
  • B站服务器故障影响豆瓣评分?别担心,阿里巴巴架构师分享预防策略与技术方案
    13日晚上,在视频观看高峰时段,B站出现了服务器故障,引发网友在各大平台上的广泛吐槽。这一事件导致了连锁反应,大量用户纷纷涌入A站、豆瓣和晋江等平台,给这些网站带来了突如其来的流量压力。为了防止类似问题的发生,阿里巴巴架构师分享了一系列预防策略和技术方案,包括负载均衡、弹性伸缩和容灾备份等措施,以确保系统的稳定性和可靠性。 ... [详细]
  • 元宇宙为加密行业注入了无限想象空间,并显著推动了该领域的发展。从早期的卡牌游戏、数字艺术、头像艺术、生成艺术到如今火热的GameFi,这一进程不断演进。当前及未来的GameFi不仅在技术上不断创新,还在用户体验和经济模型方面取得了显著进展。本文探讨了NFT链游系统的构建方法及其在元宇宙游戏开发中的未来前景,旨在为开发者提供有价值的参考和指导。 ... [详细]
author-avatar
放ch养奶牛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有