资讯专栏INFORMATION COLUMN

导致数据库中数据不一致的根本原因

617035918 / 2079人阅读

摘要:一般导致数据库中数据不一致的根本原因有三种情况。第一种是数据冗余造成的,第二种是并发控制不当造成的,第三种是由于某种原因比如软硬件故障或者操作错误导致数据丢失或数据损坏。

数据库中很有可能存在不一致的数据。

一般导致数据库中数据不一致的根本原因有三种情况。第一种是数据冗余造成的,第二种是并发控制不当造成的,第三种是由于某种原因(比如软硬件故障或者操作错误)导致数据丢失或数据损坏。

让我们具体讲讲这三种情况:
第一种情况:数据冗余
假如数据库中两个表都放了用户的地址,在用户的地址发生改变时,如果只更新了一个表的数据,那么两个表就有了不一致的数据。

第二种情况:并发控制不当

假如在飞机票订票系统中,如果两个购票点同时查询某张机票的订购情况,而且分别为订购了这张机票,如果并发控制不当,就会造成同一张机票卖给两个用户的情况。由于系统没有进行并发控制或者并发控制不当,造成数据不一致。

第三中情况:故障和错误

如果软硬件出现故障或者操作错误导致数据丢失或数据损坏,引起数据不一致。因此我们需要提供数据库维护和数据库数据恢复的一些措施。
要根据各种数据库维护手段(如转存、日志等)和数据恢复措施将数据库恢复到某个正确的、完整的、一致性的状态下。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48248.html

相关文章

  • Java并发编程——线程安全性深层原因

    摘要:线程安全性深层原因这里我们将会从计算机硬件和编辑器等方面来详细了解线程安全产生的深层原因。类似这种不影响单线程语义的乱序执行我们称为指令重排。通过线程安全性深层原因我们能更好的理解这三大性质的根本性原因。上一篇并发编程线程基础查漏补缺 线程安全性深层原因 这里我们将会从计算机硬件和编辑器等方面来详细了解线程安全产生的深层原因。 缓存一致性问题 CPU内存架构 随着CPU的发展,而因为C...

    Faremax 评论0 收藏0
  • Java™ 教程(同步)

    同步 线程主要通过共享对字段和引用对象的引用字段的访问来进行通信,这种通信形式非常有效,但可能产生两种错误:线程干扰和内存一致性错误,防止这些错误所需的工具是同步。 但是,同步可能会引入线程竞争,当两个或多个线程同时尝试访问同一资源并导致Java运行时更慢地执行一个或多个线程,甚至暂停它们执行,饥饿和活锁是线程竞争的形式。 本节包括以下主题: 线程干扰描述了当多个线程访问共享数据时如何引入错误。...

    Edison 评论0 收藏0
  • 用“五个为什么”写CSS

    摘要:在中来讲,就是当发现样式异常时,使用五个为什么深入找到的根本原因所在之处的重复次数越多,说明问题越严重,对问题的解决方案也应投入的更多。 相信大多数人都有过关于CSS的痛苦经历,从我加入公司到现在,不到两年的时间里,听到最多CSS相关的讨论就是‘很难调’。所以我也一直在探究这其中有怎样的问题,为什么很多人觉得CSS很难写,如何才能让其他人更优雅的写CSS。在Code Review的时候...

    Lin_R 评论0 收藏0
  • 当我们在说“并发、多线程”,说是什么?

    摘要:兜底任务,处理数据不一致状态的任务。什么是多线程多线程是并发的一种重要形式。通过具体的多线程问题引出多线程编程中的关键点和对应的工具与知识点,轻松学会多线程编程。 这篇文章的目的并不是想教你如何造火箭(面试造火箭,工作拧螺丝),而是想通过对原理和应用案例的有限度剖析来协助你构建起并发的思维,并将操作系统的理论知识与工程实践结合起来,贯穿从学到会的全过程。当然,虽然我们是从实用角度出发,...

    sf_wangchong 评论0 收藏0
  • PHP转换超过2038年日期出错问题解决

    摘要:一步步的排查,最终锁定问题是由于函数返回了一个值,导致数据插入数据库失败。漏洞导致上述问题的根本原因就是漏洞,也被称为。超过这个时间后,整型数值将会溢出。或者使用函数将一个大于时间戳转换为日期。解决方案方案一更换系统和均为位。 最近在写一个项目接口。测试中发现服务器上测试正常的功能,在本地一直有问题。一步步的排查,最终锁定问题是由于函数strtotime返回了一个false值,导致数据...

    wapeyang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<