ACID与CAP定理

简介:

ACID:RMDB的4个基本要素

        ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。    

原子性

        整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

一致性

      在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。

隔离性

        隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。

持久性

        在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚

由于一项操作通常会包含许多子操作,而这些子操作可能会因为硬件的损坏或其他因素产生问题,要正确实现ACID并不容易。ACID建议数据库将所有需要更新 以及修改的资料一次操作完毕,但实际上并不可行。

目前主要有两种方式实现ACID:第一种是Write ahead logging,也就是日志式的方式。第二种是Shadow paging。


CAP定理

        CAP定理指在设计分布式系统时,一致性(Consistent)、可用性(Availability)、Partition Tolerance(分区容忍性)三个属性不可能同时满足,该定理也叫做布鲁尔定理。CAP定理明确了分布式系统所能实现系统的局限性,目前互联网中的很多分布式系统是基于首要满足可用性和分区容忍性而设计的

        在一系列的研究结果里发现,在较大型的分布式系统中,由于网络分隔,一致性与可用性不能同时满足,这意味着这三个要素只能同时实现两个,不可能三者兼顾;放宽一致性的要求会提升系统的可用性,提升一致性意味着系统需要牺牲一定的可用性。

目录
相关文章
|
8月前
|
人工智能 监控 算法
搬运5款实用型WIN10小工具
推荐5款实用Win10小工具,提升办公学习效率。1. EDiary:本地加密日记软件,支持富文本与云同步;2. ColorPicker:智能取色工具,提供多种格式转换;3. 3171.cn:在线AI工具箱,涵盖视频、音频、图片等编辑功能;4. MultiPar:文件恢复工具,采用纠错算法保护数据;5. 1Password:密码管理器,保障账号安全。这些工具简单便捷,满足不同场景需求。
146 0
|
人工智能 Rust Apache
|
12月前
|
存储 数据采集 大数据
数据仓库建模规范思考
本文介绍了数据仓库建模规范,包括模型分层、设计、数据类型、命名及接口开发等方面的详细规定。通过规范化分层逻辑、高内聚松耦合的设计、明确的命名规范和数据类型转换规则,提高数据仓库的可维护性、可扩展性和数据质量,为企业决策提供支持。
922 10
|
11月前
|
人工智能 自然语言处理 搜索推荐
GLM-Realtime:智谱推出多模态交互AI模型,融入清唱功能,支持视频和语音交互
GLM-Realtime 是智谱推出的端到端多模态模型,具备低延迟的视频理解与语音交互能力,支持清唱功能、2分钟内容记忆及灵活调用外部工具,适用于多种智能场景。
501 4
GLM-Realtime:智谱推出多模态交互AI模型,融入清唱功能,支持视频和语音交互
|
存储 数据采集 分布式计算
大数据技术生态系统概述
【5月更文挑战第30天】大数据技术生态系统涵盖数据采集(Flume, Logstash, FileBeat, Sqoop, Datax, Canaal, Maxwell)、存储(HDFS, HBase, Kudu, Kafka)、资源管理(YARN, Kubernetes, Mesos)、计算(MapReduce, Spark, Storm, Flink)、分析(Hive, Impala, Kylin, Clickhouse, Druid, Drois)、任务调度(Azkaban, Oozie, DolphinScheduler)及底层技术(Zookeeper)。
601 1
|
安全 网络协议 网络安全
2023 年度湖南省“楚怡杯“职业院校技能竞赛信息安全管理与评估赛项样题
2023 年度湖南省“楚怡杯“职业院校技能竞赛信息安全管理与评估赛项样题
|
Python
Python中限制输入数范围的技巧与实践
Python中限制输入数范围的技巧与实践
375 6
|
存储 算法 数据挖掘
【模拟面试问答】力扣165题:比较版本号(逐个比较与双指针法详解及模拟面试问答)
【模拟面试问答】力扣165题:比较版本号(逐个比较与双指针法详解及模拟面试问答)
|
监控 测试技术 UED
升级和维护老旧LabVIEW程序
升级和维护老旧LabVIEW程序
330 0
|
SQL Java 数据库连接
Clickhouse-Java使用JDBC连接大批量导出(表2本地文件)
Clickhouse-Java使用JDBC连接大批量导出(表2本地文件);测试数据:212w,耗时28秒;测试数据:4814w,耗时380秒约6.3分钟
1864 1