📜  DBMS中的ACID属性

📅  最后修改于: 2020-12-11 02:01:27             🧑  作者: Mango

DBMS中的ACID属性

DBMS是对数据的管理,当其中进行任何更改时,这些数据应保持集成。这是因为如果影响数据的完整性,则整个数据将受到干扰和破坏。因此,为了保持数据的完整性,数据库管理系统中描述了四个属性,称为ACID属性。 ACID属性适用于执行不同任务组的事务,在这里我们可以看到ACID属性的作用。

在本节中,我们将学习并了解ACID属性。我们将学习这些属性的含义以及每个属性的用途。我们还将借助一些示例来了解ACID属性。

酸性质

ACID一词的扩展定义为:

1)原子性:术语原子性定义了数据保持原子性。这意味着,如果对数据执行了任何操作,则应该完全执行或完全执行,或者根本不执行。这还意味着该操作不应在两者之间中断或部分执行。在对事务执行操作的情况下,该操作应完全执行而不是部分执行。

示例:如果Remo的帐户A的帐户中有30美元,他希望从中向Sheero的帐户B发送10美元。在帐户B中,已经有一笔100美元的款项。当将$ 10转到帐户B时,总金额将变为$ 110。现在,将进行两项操作。一个是Remo想要转账的$ 10将从他的帐户A借记,相同的金额将记入帐户B,即记入Sheero的帐户。现在,发生了什么-借方的第一个操作成功执行,但是贷方操作失败。因此,在Remo的帐户A中,该值变为20美元,而对于Sheero的帐户,该值仍为100美元(以前存在)。

在上图中,可以看到,在贷记10美元之后,帐户B中的金额仍为100美元。因此,这不是原子交易。

下图显示借记和贷记操作均已成功完成。因此,交易是原子的。

因此,当金额失去原子性时,那么在银行系统中,这成为一个巨大的问题,因此原子性是银行系统中的主要焦点。

2)稠度:的一致性的装置,该值应当保持始终保留。在DBMS中,应保持数据的完整性,这意味着,如果对数据库进行了更改,则应始终保留该数据。对于事务,数据的完整性非常重要,因此数据库在事务之前和之后保持一致。数据应始终正确。

例:

在上图中,有三个帐户A,B和C,其中A与B和C一对一进行交易T。发生了两种操作,即借方和贷方。账户A首先向账户B借入$ 50,在交易之前,账户B读取了账户A中的$ 300。在成功交易T之后,B中的可用金额变为$ 150。现在,A向帐户C借了$ 20,到那时,C读取的值是$ 250(这是正确的,因为已成功向B借了$ 50)。从帐户A到C的借项和贷项操作已成功完成。我们可以看到事务成功完成,并且还正确读取了该值。因此,数据是一致的。如果B和C读取的值是$ 300,这意味着数据不一致,因为当执行借记操作时,它将不一致。

4)隔离:术语“隔离”是指隔离。在DBMS中,隔离是数据库的属性,在该属性中,任何数据都不会影响另一个数据库,并且可能会同时发生。简而言之,对一个数据库的操作应在第一个数据库的操作完成后开始。这意味着如果正在两个不同的数据库上执行两项操作,则它们可能不会影响彼此的价值。对于事务,当两个或多个事务同时发生时,应保持一致性。在任何特定事务中发生的任何更改都不会被其他事务看到,直到该更改未提交到内存中为止。

示例:如果两个操作同时在两个不同的帐户上运行,则两个帐户的值都不会受到影响。该值应保持不变。从下图中可以看到,帐户A正在向帐户B和C进行T1和T2事务,但两者都独立执行而不会互相影响。它被称为隔离。

4)耐用性:耐用性可确保某些东西的永久性。在DBMS中,持久性一词可确保操作成功执行后的数据在数据库中永久存在。数据的持久性应如此完美,以至于即使系统发生故障或导致崩溃,数据库仍然可以生存。但是,如果丢失,则恢复管理器有责任确保数据库的持久性。为了提交值,每次更改时都必须使用COMMIT命令。

因此,DBMS的ACID属性在维护数据库中数据的一致性和可用性方面起着至关重要的作用。

因此,这是DBMS中ACID属性的精确介绍。我们还在事务部分讨论了这些属性。