我是数据库和SQL Server的新手。
因此,当我在互联网上搜索关于数据库的事情时,我发现如果数据库服从或遵循 ACID(原子性,一致性,隔离性,持久性),那么数据库会说是好的属性。
我想知道 Microsoft SQL Server(任何版本当前或以前的版本)在内部遵循ACID属性,或者如果我们在我们的应用程序中使用MS SQL Server,那么我们必须编写这样的编码方式我们的应用程序遵循ACID属性。
简而言之:维护 ACID属性是数据库的任务(或责任) 或者它的任务是应用程序程序员。
谢谢..
答案 0 :(得分:8)
在SQL Server中强制实施ACID属性。
阅读本文:Acid Properties of SQL 2005
但这并不意味着数据库会为您处理所有事情。
根据Pinal Dave(blog.sqlauthority.com)
ACID (Atomicity的首字母缩写词 一致性隔离耐久性)是一个 数据库专业人员的概念 通常在评估时寻找 数据库和应用 架构。对于可靠的数据库 所有这四个属性应该是 实现。
原子性是全有或全无 命题。
一致性保证a 事务从不离开您的数据库 处于半完成状态。
隔离会使事务分开 从彼此直到他们 结束。
耐用性保证了 数据库将跟踪待定 以这种方式改变服务器 可以从异常中恢复过来 终止。
以上四条规则非常重要 对于任何处理的开发人员 数据库。
这适用于处理数据库的开发人员。
但应用程序开发人员还应编写正在执行ACID属性的业务逻辑。
Practical use of ACID properties上的示例可以帮助您更多猜测
答案 1 :(得分:2)
几乎每个现代数据库系统都强制执行ACID属性。 阅读:Database transaction and ACID properties
答案 2 :(得分:1)
ACID:
[A] tomic: - 一切都成功或失败。
[C] onsistent: - 操作完成后,一切都处于安全状态。
[我]沉闷: - 没有其他操作会影响我的操作。
[D] urable: - 操作完成后,更改是安全的
答案 3 :(得分:1)
事务: - 事务是一批SQL语句,其行为类似于单个单元。简而言之,事务是完成整个活动的一系列工作的单元。我们可以举一个银行交易的例子来理解这一点。
当我们从帐户“A”转帐到帐户“B”时,会发生交易。每笔交易都有四个特征,即ACID属性。
◦原子性 ◦一致性 ◦隔离 ◦耐久性
Atomicity: - 每个事务都遵循原子模型,这意味着如果一个事务启动,它应该是完成或回滚。为了理解这一点,我们举一个例子,如果有人将金额从账户“A”转移到账户“B”,则应在完成交易后记入账户B.如果发生任何故障,在从帐户“A”扣款后,更改应该是回滚。
一致性: - 一致性表示在交易完成后,交易期间所做的更改应保持一致。让我们通过参考上面的例子来理解这个事实,如果账户“A”已经被200 RS借记,那么在完成交易账户之后,“B”应该由200 RS记入贷方。这意味着变化应该是一致的。
隔离: - 隔离说明每个事务应相互隔离,两个事务之间不应有任何干扰。
持久性: - 持久性意味着一旦事务完成,所有更改都应该是永久性的,这意味着如果系统出现任何故障,则不应丢失更改。
答案 4 :(得分:1)
ACID - >原子性,一致性,隔离性,耐用性
<强>原子性:强>
交易是处理的基本单位。要么执行所有操作,要么都不执行。
假设在写(A)操作之后(但在写(B)之前)系统崩溃。)
数据库必须能够恢复A和B的旧值(或完成整个事务)
保持一致性
单独执行事务必须将数据库从一个一致状态移动到另一个一致状态。
通过执行交易
<强>隔离:强>
在提交之前,事务不应使其他事务知道其效果。
如果两个事务并发执行,则必须在另一个事务开始之前显示一个完成执行。
如果另一个同时执行的事务正在读取(和/或写入)帐户A和B,则它应该无法读取处于不一致状态的数据(写入A之后和写入B之前)
<强>耐用性:强>
事务提交后,由于将来的故障,对数据库的更改不会丢失。
一旦事务完成,我们将始终在数据库中有新的A和B值