数据库用了很久了,最近看书又看到了ACID,突然想起来原子性就是不可分割, 既然是这样,那应该就可以保证一致性,为什么数据库的事务定义了4个特性.
其实这个问题的症结在怎么理解原子性,以前学物理的时候,留下了一个印象,原子性就是不可再分割的意思,但是在数据库事务里面却需要加上一些注释,是把本来几个可以分的事情整个在一起,要成功都成功,要失败都失败.
说简单点,就是事务里面的各个组成部分,并不是在一个时间点,而是分布在一个时间段(比如一分钟)里面去完成.
原子性只是保证了各个组成部分能够全部成功,或者都失败.但是无法保证一致性,比如各个部分只成功了一半,不让其他事务去读取.这样原子性也就无法独立的完成事务的一致性了.
如果原子性无法保证一致性,那原子性+隔离性是否可以保证一致呢?
答案是否定的,稍后有空再开博来讨论吧.
下面是事务ACID的详细定义.
原子性(Atomic)
事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
一致性(Consistency)
事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。
隔离性(Isolation)
多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
持久性(Durability)
已被提交的事务对数据库的修改应该永久保存在数据库中。
相关推荐
演绎性指出从基本表和代码表中可以推导出所有输出数据;稳定性确保表结构相对固定,数据长期保存。理解这些性质有助于区分基本表、中间表和临时表。 范式是数据库规范化的重要标准。通常,基本表和字段设计应尽量...
9. 数据库恢复:了解事务的概念,ACID属性(原子性、一致性、隔离性、持久性),以及日志和备份在数据库恢复中的作用。 10. 分布式数据库:理解分布式数据库的基本概念,包括数据分布、通信模型、分布式查询处理等...
关系模型的完整性规则是保证数据库正确性和一致性的关键: 1. 实体完整性:确保主键属性的值不为空,保证每个实体的唯一性。 2. 参照完整性:外键的值要么为空,要么对应其他表中的主键值,防止引用不存在的记录。 ...
2. 事务是数据库操作的基本单元,其四个特性即ACID(原子性Atomicity、一致性Consistency、隔离性Isolation和持久性Durability)保证了数据库操作的可靠性和一致性。 3. 视图是数据库系统中的一个虚拟表,它是由...
TCL命令包括BEGIN TRANSACTION、COMMIT和ROLLBACK,它们用于管理事务,确保数据库操作的原子性、一致性、隔离性和持久性。 3. UML图表 文件中出现了UML图表的相关内容,UML即统一建模语言,是面向对象系统分析和...
事务是数据库操作的基本单位,具有原子性、一致性、隔离性和持久性(ACID属性)。数据库安全性涉及权限控制,确保只有授权用户才能访问数据。数据库完整性规则防止数据的不一致,如实体完整性、参照完整性和用户定义...
范式理论是数据库规范化设计的核心,它指明了如何组织数据库表结构,以减少数据冗余并提高数据一致性。范式分为不同的级别,每个级别都代表着数据组织的不同规范性。例如,第一范式(1NF)要求数据表中的所有字段值...
5. **事务管理**:事务的ACID特性(原子性、一致性、隔离性和持久性),以及不同事务隔离级别(读未提交、读已提交、可重复读、串行化)的含义和应用场景。 6. **并发控制**:死锁的概念和解决策略,如死锁预防、...
事务是一组操作的逻辑单位,具有ACID特性(原子性、一致性、隔离性和持久性)。事务的开始和结束语句如BEGIN TRANSACTION和COMMIT/ROLLBACK。并发控制用于处理多个事务同时执行的问题,常见的方法有封锁技术和多...
5. **事务支持**:Selda提供了对数据库事务的支持,可以方便地管理一系列数据库操作的原子性,保证数据的一致性。 6. **数据库兼容性**:尽管Selda最初受到Haskell中Selda的启发,但它针对Python环境进行了优化,...
事务是数据库操作的基本单元,它保证了一组操作的原子性、一致性、隔离性和持久性。传递函数依赖是一种特殊的函数依赖,表示通过一系列的依赖关系可以从一个属性推导出另一个属性。数据库安全性涉及权限控制、审计和...
3. 数据库中的数据可以共享,减少冗余,并能通过系统控制确保更新的一致性。但数据的完全避免重复是不现实的,因为有时为了特定目的会适当冗余。 4. 模式/外模式映像是数据库逻辑独立性的基础,它使得用户可以独立...
6. 事务处理必须具备原子性、一致性、隔离性和**持久性**这四个特性,确保数据的完整性和一致性。 7. 对数据库模式进行规范化处理,通常发生在数据库设计的**逻辑设计阶段**,目的是消除数据冗余和提高数据一致性。...
2. **并发控制与数据一致性**:通过加锁机制,数据库系统可以保证在多用户环境下并发执行的处理程序不会破坏数据的一致性,防止数据的不一致状态。 3. **关系代数**:关系代数是关系数据库的查询语言,其基本运算是...
完整性约束分为静态约束和动态约束,前者确保数据的固有结构和关系,后者则关注对数据的操作如何影响数据库的整体一致性。 在设计过程中,数据依赖是核心概念之一。数据依赖体现了表中不同数据项间的相互关系,其中...
20. **故障恢复**:通过日志记录进行,确保数据库在故障后能恢复到一致性状态。 21. **关系代数表达式除法**:用于找出满足特定条件的记录,例子展示了如何查找拥有特定技能的所有员工。 22. **数据项**:数据操作...
- **正确选项**:根据ACID特性(原子性、一致性、隔离性和持久性),正确答案是 A。 #### 12. 数据库管理系统功能 - **题目描述**:数据库管理系统(DBMS)的功能包括数据存储、查询执行、事务管理等。 - **正确选项*...
4. **事务锁**:S 锁(共享锁)允许事务 T 读取数据 R,但不允许修改,其他事务只能读取,不能修改 R,这保证了读一致性。 5. **函数依赖**:如果 X→Y,存在 X 的真子集 X1 使 X1→Y,那么 X→Y 是部分函数依赖。...
6. **事务特性**:事务的四大特性(ACID)包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。 7. **分布式数据库透明性**:透明性层次越高,应用程序编写越简单,对...