开发者社区> 萌萌怪兽> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

数据库必知词汇:ACID

简介: 对于关系型数据库的事务而言,具有四个强一致性(Strong Consistency)要求,也称为ACID.
+关注继续查看

对于关系型数据库的事务而言,具有四个强一致性(Strong Consistency)要求,也称为ACID:
(1) 原子性(Atomicity):
事务里的所有操作要么全都执行完成,要么全都不执行。只要有一个操作失败,整个事务就失败,事务会回滚至它们最初的状态。
(2) 一致性(Consistency):
数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
(3) 隔离性(Isolation):
事务的执行不被其他事务干扰。如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。
(4) 持久性(Durable):
一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现系统故障也不会丢失。

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

目前,数据库管理员通常使用以下几种策略来执行ACID。一种增强原子性和持久性的方法是使用Write-ahead logging策略,在这种策略下任何事务细节都首先写入日志,其中包括重做和撤消信息。这种方法可以确保在任何类型的数据库故障情况下,数据库都可以检查日志并将其内容与数据库的状态进行比较。

另一种增强原子性和持久性的方法是影子分页(Shadow-paging).在这种方法中,当需要修改数据时则创建一个影子页面。对于数据的更新请求会被写入影子分页中,而不是写入数据库中的实际数据,而只有在编辑完成时才会修改数据库本身。

还有一种策略称为两阶段提交协议,该策略在分布式数据库系统中非常有效。该协议将修改数据的请求分为两个阶段,即请求阶段和提交阶段。在请求阶段,受到事务影响的所有DBMS必须确认它们已经收到了事务并具有执行事务的能力。而所有相关的DBMS接收到确认之后,提交阶段就完成了,此时数据才会被真正地修改。

资料来源:
Wikipedia: ACID http://taggedwiki.zubiaga.org/new_content/95063fc8cca3e3b4a3238ead2d9aa83a
What does ACID mean in Database Systems? | Database.Guide https://database.guide/what-is-acid-in-databases/
The ACID Model for Database Management Systems https://www.lifewire.com/the-acid-model-1019731
What is ACID in Databases? - Definition from Techopedia https://www.techopedia.com/definition/23949/atomicity-consistency-isolation-durability-acid

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【数据库】一个简单的事务模型(ACID)
一个简单的事务模型(ACID)
0 0
数据库必知词汇:数据库事务
数据库事务(Transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。
0 0
数据库必知词汇:NoSQL
NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
0 0
数据库必知词汇:OLTP
联机事务处理过程(On-Line Transaction Processing, OLTP),也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。
0 0
数据库必知词汇:关系模型
关系模型(Relational Model) 是以集合论中的关系概念为基础发展起来的。关系模型中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。在实际的关系数据库中的关系也称表。一个关系数据库就是由若干个表组成。关系模型是指用二维表的形式表示实体和实体间联系的数据模型。
0 0
数据库必知词汇:读写分离
为了确保数据库产品的稳定性,很多数据库拥有双机热备功能。也就是,第一台数据库服务器,是对外提供增删改业务的生产服务器;第二台数据库服务器,主要进行读的操作。
0 0
数据库必知词汇:MADLib
Apache MADlib是Pivotal与UCBerkeley合作的一个基于SQL的数据库内置的可扩展的开源机器学习库,提供了精确的数据并行实现、统计和机器学习方法对结构化和非结构化数据进行分析。MADlib提供了丰富的分析模型,包括回归分析,决策树,随机森林,贝叶斯分类,向量机,风险模型,KMEAN聚集,文本挖掘,数据校验等。
0 0
数据库必知词汇:HTAP
混合事务/分析处理(Hybrid Transaction Analytical Processing, HTAP)是数据库技术领域的新名词,是在线事务(OnLine Transaction Processing)和在线分析(Online Analytical Processing)合称简写,即(HTAP = OLAP +OLTP), HTAP既可以在线交易事务,又可以在线实时分析。
0 0
数据库必知词汇:数据控制语言DCL
数据控制语言(Data Control Language, DCL)是SQL语言四大主要分类之一,是用来设置或者更改数据库用户或角色权限的语句,通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。
0 0
数据库必知词汇:数据库存储引擎
数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。现在许多数据库管理系统都支持多种不同的存储引擎。MySQL的核心就是存储引擎。
0 0
+关注
萌萌怪兽
云栖社区老同学,软件工程学生党。研究兴趣:软件工程、软件架构设计、软件过程、DevOps以及微服务等。
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
One Box:解读事务与分析一体化数据库HybridDB
立即下载
分析性数据库2.0深入技术解析
立即下载
阿里巴巴海量数据场景下的列式数据库 HiStore
立即下载