首页 > 数据库 >数据库的ACID原则

数据库的ACID原则

时间:2023-12-03 15:22:24浏览次数:33  
标签:事务 隔离 原则 数据库 完整性 一致性 ACID

数据库的ACID原则是关系型数据库中保证事务的一致性和可靠性的基本原则,其包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)四个方面。

  • 原子性(Atomicity):原子性是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做。如果事务中一个sql语句执行失败,则已执行的语句也必须回滚,数据库退回到事务前的状态。
  • 一致性(Consistency):一致性是指事务执行结束后,数据库的完整性约束没有被破坏,事务执行的前后都是合法的数据状态。数据库的完整性约束包括但不限于:实体完整性(如行的主键存在且唯一)、列完整性(如字段的类型、大小、长度要符合要求)、外键约束、用户自定义完整性(如转账前后,两个账户余额的和应该不变)1
  • 隔离性(Isolation):隔离性是指,事务内部的操作与其他事务是隔离的,并发执行的各个事务之间不能互相干扰1。通常使用锁机制来保证事务的隔离性1
  • 持久性(Durability):持久性是指事务一旦提交,它对数据库的改变就应该是永久性的1。接下来的其他操作或故障不应该对其有任何影响1

 

 

标签:事务,隔离,原则,数据库,完整性,一致性,ACID
From: https://www.cnblogs.com/whcjob/p/17873244.html

相关文章

  • 第十四章:MySQL数据库系统
    MySQL数据库系统本章的主要内容就是MySQL关系数据库系统;介绍了MySQL数据库系统和它的重要性;Linux系统下MySQL的安装与使用方式;MySQL数据库的命令模式和批处理模式的SQL脚本管理方法;C与MySQL数据库的有机结合;MySQL数据库与PHP的集成,通过动态Web创建和管理MySQL数据库。MySQL是一......
  • openGauss学习笔记-139 openGauss 数据库运维-例行维护-检查应用连接数
    openGauss学习笔记-139openGauss数据库运维-例行维护-检查应用连接数如果应用程序与数据库的连接数超过最大值,则新的连接无法建立。建议每天检查连接数,及时释放空闲的连接或者增加最大连接数。139.1操作步骤以操作系统用户omm登录数据库主节点。使用如下命令连接数据库......
  • idea本地连接oracle数据库的配置设置
    先粘贴连接成功的截图:为什么要先贴图,主要是想重点来说一下这里面红框参数如何设置。我想先说一下我的环境背景:服务器环境:虚拟机,linux:centOS7.5,oracle19c(具体版本:19.3.0.0),连接服务器客户端工具:mobaxterm接下来我一个一个说上面的参数应该如何设置:host:就是我的idea连接的虚......
  • 图数据库Neo4j概念、应用场景、安装及CQL的使用
    一、图数据库概念引用SethGodin的说法,企业需要摒弃仅仅收集数据点的做法,开始着手建立数据之间的关联关系。数据点之间的关系甚至比单个点本身更为重要。传统的**关系数据库管理系统(RDBMS)**并不擅长处理数据之间的关系,那些表状数据模式和呆板的结构难以添加新连接或不同类型连接......
  • 一键导出数据库中表结构定义(数据字典)的工具
    导出数据库中标的定义,即所谓的数据字典一、新建maven工程中加入依赖在maven工程的pom.xml中添加依赖<dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.5</version></dependency>......
  • MySQL数据库管理系统
    MySQL数据库管理系统一、知识点归纳本章讨论了MySQL关系数据库系统;介绍了MySQL并指出了它的重要性;展示了如何在Linux机器上安装和运行MySQL;演示了如何使用MySQL在命令模式和批处理模式下使用SQL脚本创建和管理数据库;说明了如何将MySQL与C编程相结合;演示了如何将MySQL与PHP......
  • 使用JookDB将Oracle数据库迁移到Mysql
    JookDB是多平台的数据库开发管理工具,如Sql输入提示、导入导出、表设计、数据编辑等功能强大,而且是C++开发的界面非常丝滑流畅。可以免费支持Oracle、Mysql、SqlServer数据库管理。要通过JookDB将Oracle数据库迁移到Mysql需要先添加连接到这两个数据库的数据源。选择菜单【文件/新建......
  • Java连接MySQL数据库(maven构建)
    构建方式:Java+MySql+Maven1.创建项目2.导入依赖选择目录中的pom.xml文件,导入mysql连接驱动依赖注意这里版本使用的是MySql8.0,MySql在8.0版本有较大改动<dependencies><dependency><groupId>mysql</groupId><ar......
  • openGauss学习笔记-138 openGauss 数据库运维-例行维护-检查时间一致性
    openGauss学习笔记-138openGauss数据库运维-例行维护-检查时间一致性数据库事务一致性通过逻辑时钟保证,与操作系统时间无关,但是系统时间不一致会导致诸多潜在问题,主要是后台运维和监控功能异常,因此在月度检查时建议检查各个节点的时间一致性。138.1操作步骤以操作系统用户o......
  • SAP ABAP 里如何高效找到修改某个数据库表字段的 ABAP 程序的三种思路介绍试读版
    我的知识星球里,有朋友提问:公司的SAP中,总部开发了一个功能去更新采购订单行上的收货地址字段EKPO-ADRN2,我尝试着去Debug,但找不到最终是哪段程序更新了这一个字段。SAT也用了,也发现不了。不过我对SAT也不熟。有什么思路可以快速Debug找到那段更新程序不?其实这种需......