ACID (atomicity, consistency, isolation, and durability)
■■ Atomicity:
All changes made during a transaction are made successfully,
or in the case of failure, none are made. If any operation fails during the
transaction, then the entire transaction is rolled back, leaving your data in
the state it was before the transaction was started. For example, suppose
Jack is making a transfer of $500 from his checking account to a savings
account. Sometime between the withdrawal of the $500 from the checking
account and the deposit of $500 to the savings account, the software running
the banking system crashes. Jack’s $500 has disappeared! With atomicity,
either the entire transfer would have happened, or none of it would
have happened, leaving Jack a much happier customer than he is now.
■■ Consistency:
All operations transform the database from one consistent
state to another consistent state. Consistency is defined by how the database
schema is designed and whether integrity constraints such as foreign
keys are used. The database management system is responsible for ensuring
that transactions do not violate the database schema or integrity constraints.
For example, the bank’s database developers have declared in the
database schema that the balance of an account cannot be empty, or “null.”
If any transaction attempts to set the balance to an empty value, the transaction
will be aborted and any changes rolled back.
■■ Isolation:
A transaction’s changes are not made visible to other transactions
until they are committed under the atomicity rule described earlier.
This is best demonstrated by what happens when month-end reports are
generated. Let’s say that Jack is performing the transfer transaction outlined
in the atomicity example, and at the same time you are generating his
Why Use an RDBMS? 3
monthly statement. Without isolation, the monthly statement might show
the withdrawal from the checking account but not the deposit into the savings
account. This discrepancy would make it impossible for Jack or the
bank to balance their books.
■■ Durability:
Once completed, a transaction’s changes are never lost
through system or hardware crashes. If Jill has paid for $50 worth of groceries
with her debit card at the grocery store and the transaction succeeds,
even if the database software crashes immediately after the
transaction competes, it won’t forget that her checking account balance is
$50 lower
原子性,一致性,不相关性和持久性
ACID是一种缩写,它代表了操作(也称为操作管理器)的四个主要性质:
原子性:在一个操作中涉及两个或两个以上独立的信息,这些信息要么全部提交,要么一个也不提交。
一致性:操作要么创建新的有效的数据状态,要么(如果发生任何错误的话),将所有数据返回到初始状态。
不相关性:操作在没有提交并不与别的任何操作发生任何关系。
持久性:即使发生错误重新启动,保存过的已经提交的数据在正确状态下仍然有效。
分享到:
相关推荐
在Linux操作系统中,数据库编程是一项核心技能,尤其对于软件开发者和系统管理员而...通过深入学习和实践以上知识点,你将能够熟练地在Linux环境下进行数据库编程,无论是开发高效的应用程序还是维护稳定的数据库系统。
在“Accp8.0\S2\使用Java实现数据库编程 第二章”这一主题中,我们聚焦于如何利用Java语言进行数据库编程。这通常涉及到Java的JDBC(Java Database Connectivity)技术,它是Java平台的标准接口,允许Java应用程序...
首先,VC++数据库编程涉及的主要知识点包括: 1. **ODBC(Open Database Connectivity)**:这是Microsoft提供的一个标准接口,允许应用程序访问不同数据库管理系统(DBMS)。在VC++中,通过ODBC驱动程序管理器,...
本文将深入探讨这些关键知识点,帮助你掌握高效的数据管理与操作技巧。 首先,我们来看SQL(Structured Query Language),这是一种用于管理和处理关系数据库的标准编程语言。SQL能够进行数据查询、更新、插入和...
以下是一些关键知识点的详细说明: 1. **数据库基础概念**:数据库是一个存储和管理数据的系统,它提供了一种有序的方式来组织、检索和更新数据。常见的关系型数据库管理系统(RDBMS)如MySQL、Oracle、SQL Server...
Java数据库编程是软件开发中的重要一环,尤其是在企业级应用中,数据的存储和处理是核心功能。本教程主要关注Java如何与数据库进行交互,特别是使用JDBC(Java Database Connectivity)进行连接和操作。以下是对各个...
PDF文档可能涵盖了以下关键知识点: 1. **Visual C++环境设置**:如何配置Visual Studio IDE以支持数据库编程,包括安装必要的SDKs和数据访问组件,如MFC(Microsoft Foundation Classes)、ATL(Active Template ...
以下是根据提供的PPT章节标题可能涵盖的知识点的详细解释: 1. **第1章:基础概念** - ADO.NET架构:包括DataSet、DataTable、DataRow、DataColumn等组件,以及连接管理类如SqlConnection。 - 数据源:介绍各种...
本书涵盖了从基础到高级的多个层次的知识点,包括JDBC(Java Database Connectivity)API的使用、事务管理、SQL语言、存储过程、数据连接池以及性能优化等关键领域。 首先,JDBC是Java平台中的核心API,用于与各种...
这本书涵盖了数据库领域的诸多重要知识点,包括关系模型、SQL语言、事务处理、并发控制、查询优化以及性能调优等。 1. **关系模型**:关系模型是数据库的基础,以二维表格的形式存储数据,每个表格称为关系。该书会...
全国计算机等级考试三级数据库技术涵盖了这些广泛的领域,考生需要对每个知识点都有深入理解和实践能力。通过学习和练习,可以提升对数据库系统的管理和应用技能,为未来的IT职业生涯打下坚实基础。祝所有考生备考...
以下是对Java数据库编程相关知识点的详细阐述: 1. JDBC(Java Database Connectivity):JDBC是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如连接数据库、发送SQL语句、处理结果集等方法...
在“精通C#数据库开发”资源中,可能涵盖了这些知识点的详细讲解和实例,通过学习,开发者不仅可以掌握基本的数据库操作,还能了解到高级特性和最佳实践,从而提升C#数据库应用的开发能力。同时,配合“说明.txt”和...
它可能会涵盖以下几个关键知识点: 1. **JDBC驱动类型**:JDBC驱动分为四种类型,从JDBC-ODBC桥接驱动到纯Java的类型4驱动,每种类型的驱动都有其特点和适用场景。 2. **建立数据库连接**:通过`Class.forName()`...
在学习这门课程时,常见的知识点包括: 1. **关系数据库模型**:这是最常见的数据库模型,基于二维表格,包含行和列,遵循第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等规范,以消除数据冗余和提高数据一致...
下面将详细讨论在Linux下使用MySQL进行数据库编程的关键知识点。 1. **安装MySQL**:在Linux系统上,可以通过包管理器如`apt`(Ubuntu/Debian)或`yum`(CentOS/RHEL)来安装MySQL服务器和客户端。安装过程包括设置...
下面我们将详细探讨其中的关键知识点。 1. JDBC(Java Database Connectivity)基础: JDBC是Java平台的标准接口,用于连接和操作关系型数据库。通过JDBC,开发者可以执行SQL语句、处理结果集、事务管理和错误处理...
以上只是Linux下MySQL数据库编程的基本知识点,实际应用中还会涉及更多高级特性和最佳实践。通过深入学习和实践,你将能够熟练掌握MySQL在Linux环境下的各种操作和编程技巧,从而更有效地管理数据库和开发相关应用。
通过这个资源包中的实例,读者可以深入理解如何将上述知识点应用于实际项目中,从而提升C#和ASP.NET数据库编程技能。每个实例都是一次学习和实践的机会,通过逐步调试和分析,可以加深对理论知识的理解,并积累宝贵...