一:四个特性介绍
原子性(Atomicity)
整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性(Consistency)
在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
隔离性(Isolation,又称独立性)
两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。
持久性(Durability)
在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
二:理解隔离性相关概念
1)脏读(Dirty Reads):
所谓脏读就是对脏数据(Drity Data)的读取,而脏数据所指的就是未提交的数据。也就是说,一个事务正在对一条记录做修改,在这个事务完成并提交之前,这条数据是处于待定状态的(可能提交也可能回滚),这时,第二个事务来读取这条没有提交的数据,并据此做进一步的处理,就会产生未提交的数据依赖关系。这种现象被称为脏读。
2)不可重复读(Non-Repeatable Reads):
一个事务先后读取同一条记录,但两次读取的数据不同,我们称之为不可重复读。也就是说,这个事务在两次读取之间该数据被其它事务所修改。
3)幻读(Phantom Reads):
一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为幻读。
三:疑问
1.原子性和一致性的区别是什么?如果能够保证原子性,是否就满足了一致性?
当然当然是否定的,如果是这样的,那么其实就没有必要定义一致性的概念了。
小组内也讨论了下:
还是以转账为例,A转给B 1000,假设A原来有1000块,B也有1000块,则A=A-1000; B=B+1000;如果A账户为0之后,此刻读到B为1000,突然B取走了1000,我们还在做操作B=B+1000 B的状态被设置为2000,但是实际B的状态应该为1000,这样也就出现了一致性问题。
网上搜索了很久感觉一个比较靠谱的答案:
数据一致性的一个典型实例为外键约束。例如,在外键约束时,首先更新父表中的主键,如果在子表中有数据与该父表记录相关联,那么父表的更新将被终止。同样地,如果试图更新子表的外键列,也会造成更新失败。因为这两个动作都破坏了数据的一致性。无论哪种操作,如果成功执行,都会使数据库中的数据处于逻辑上的不可接受状态。此时的数据一致性的保持,是在出现在语句级,即每条DML语句都会进行校验。 而事务可以包含多条语句,并可以在事务开始执行时将约束设置为延迟校验。以外键约束为例,可以成功避开无法更新父表主键和子表外键的尴尬。但是,提交时,延迟校验将生效,以保持数据一致性。
相关推荐
ACID属性是数据库事务处理的基石,确保了数据的完整性和一致性。通过理解和应用ACID属性,开发者可以设计出高效、可靠的数据库事务处理流程。随着技术的发展,对ACID属性的深入理解和应用将变得更加重要。
内容概要:本文是一份数据库相关技术点的问答资料,涵盖了如数据库ACID特性定义、数据库索引概念及其优劣分析、SQL的各种JOIN操作解析以及数据库性能优化策略等内容。通过对这些问题的回答,帮助读者全面掌握数据库...
事务的ACID属性是确保数据库事务正确执行的四个关键特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。本文将详细探讨这四个属性,并展示如何在实际的数据库操作中...
### 分布式数据库的ACID保证 #### ACID特性在分布式数据库中的重要性 在分布式数据库环境中,确保数据处理的正确性和一致性至关重要。这不仅关系到数据的安全可靠,还直接影响到系统的整体性能和服务质量。因此,...
数据库的ACID特性是数据库管理系统(DBMS)中至关重要的概念,它确保了数据库操作的可靠性和一致性。ACID代表四个关键属性,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性...
1. 事务:事务是一系列数据库操作的逻辑单元,具有原子性、一致性、隔离性和持久性(ACID特性)。 2. 并发控制:在多用户环境下,数据库系统需要防止数据不一致,如死锁检测和避免、锁定机制和多版本并发控制(MVCC...
- **事务处理**:支持ACID(原子性、一致性、隔离性、持久性)特性,确保数据处理的可靠性。 #### 3. 文档型数据库与关系型数据库的比较 ##### 3.1 数据格式 - **文档型数据库**:支持非结构化或半结构化数据,如...
高斯数据库遵循ACID(原子性、一致性、隔离性和持久性)原则,支持SQL标准,提供事务处理能力,适用于处理大规模数据。它的主要特点包括高可用性、高并发性、高性能以及对复杂查询的支持。 2. **Windows安装过程**...
ACID(原子性、一致性、隔离性、持久性)是事务的四个基本属性,确保了数据操作的正确性。同时,数据库安全性涉及到权限管理、角色分配和审计日志,防止非法访问。 数据库备份与恢复是保障数据安全的重要手段。全...
5. **配置acid**:编辑配置文件(如`acid.conf`),设置数据库连接信息、Snort日志位置等参数。 6. **启动服务**:启动Apache和MySQL服务,确保acid可以正常运行。 7. **访问Web界面**:在Web浏览器中输入...
例如,ACID(原子性、一致性、隔离性和持久性)是事务处理的四大特性,保证了数据库操作的可靠性。 5. 数据库性能优化:这涉及到索引的创建与使用、查询优化、存储过程、视图等,以提高数据库的读写速度和整体性能...
6. **事务处理**:理解事务的概念,包括ACID(原子性、一致性、隔离性和持久性)属性,以及事务的四种隔离级别,如何解决并发控制问题,如锁机制和死锁。 7. **数据库恢复技术**:了解日志文件的作用,以及如何通过...
事务处理则关乎数据库操作的原子性、一致性、隔离性和持久性(ACID属性),这对于保持数据的一致性和完整性至关重要。 6. **数据库性能优化**:这包括索引的使用、查询优化、存储过程、分区和分片等技术,以提高...
3. **ACID事务**:SQLite遵循ACID(原子性、一致性、隔离性、持久性)原则,确保数据在事务处理中的可靠性。 4. **SQL支持**:SQLite支持标准的SQL语法,包括创建表、索引、视图、触发器等。 5. **零配置**:无需...
1. **PostgreSQL数据库**:PostgreSQL是一种开源的关系型数据库管理系统(RDBMS),以其强大的功能、高度的可扩展性和遵循ACID(原子性、一致性、隔离性、持久性)的事务处理而闻名。PostgreSQL 10是其的一个重要...
万象数据库支持ACID(原子性、一致性、隔离性和持久性)特性,确保在多用户环境下的事务正确执行。它采用两阶段提交或乐观锁等机制来协调并发操作,保证数据的一致性。 **4. 扩展性与弹性伸缩** 随着业务增长,万象...
ACID属性(原子性、一致性、隔离性和持久性)确保事务处理的正确性。 9. 数据库备份与恢复: 为了防止数据丢失,数据库需要定期备份。备份策略包括全量备份、增量备份和差异备份。恢复技术包括前滚和回滚日志,以...
6. 并发控制和事务处理:理解ACID属性,掌握事务的提交、回滚和隔离级别,以及死锁的预防和解决。 7. 数据库系统架构:了解分布式数据库、云数据库的原理和应用场景,以及数据库在大数据环境下的处理方式。 通过...
非关系型数据库概念,即 NoSQL 数据库,主要指那些非关系型的、分布式的、且一般不保证 ACID 的数据存储系统,主要代表有 MongoDB、Redis、CouchDB。 NoSQL 提出了另一种理念,以键值来存储,且结构不稳定,每一个...