logo

DBMS의 ACID 속성

DBMS는 변경 사항이 발생하더라도 통합된 상태로 유지되어야 하는 데이터 관리입니다. 데이터의 무결성이 영향을 받으면 전체 데이터가 교란되고 손상되기 때문입니다. 따라서 데이터의 무결성을 유지하기 위해 데이터베이스 관리 시스템에는 다음과 같은 네 가지 속성이 설명되어 있습니다. 속성. ACID 속성은 다양한 작업 그룹을 통과하는 트랜잭션을 위한 것이며 여기에서 ACID 속성의 역할을 살펴보겠습니다.

이번 장에서는 ACID 속성에 대해 알아보고 이해하겠습니다. 우리는 이러한 속성이 무엇을 의미하는지, 그리고 각 속성이 어떤 용도로 사용되는지 알아보겠습니다. 또한 몇 가지 예를 통해 ACID 속성을 이해할 것입니다.

ACID 속성

ACID라는 용어의 확장은 다음을 정의합니다.

DBMS의 ACID 속성

1) 원자성

원자성이라는 용어는 데이터가 원자성으로 유지된다는 것을 정의합니다. 이는 데이터에 대해 작업이 수행되는 경우 해당 작업을 완전히 수행하거나 실행해야 하거나 전혀 실행하지 않아야 함을 의미합니다. 이는 또한 작업이 중간에 중단되거나 부분적으로 실행되어서는 안 된다는 것을 의미합니다. 트랜잭션에 대한 작업을 실행하는 경우 작업은 부분적으로 실행되지 않고 완전히 실행되어야 합니다.

예: Remo의 계정 A에 30달러가 있고 Sheero의 계정 B로 10달러를 보내려는 경우 계정 B에는 총액 100달러가 이미 존재합니다. 10달러가 B 계좌로 이체되면 합계는 110달러가 됩니다. 이제 두 가지 작업이 수행됩니다. 하나는 Remo가 이체하려는 금액 $10가 자신의 계좌 A에서 인출되고 동일한 금액이 계좌 B, 즉 Sheero의 계좌에 적립된다는 것입니다. 이제 어떤 일이 발생합니까? 첫 번째 차변 작업은 성공적으로 실행되지만 대변 작업은 실패합니다. 따라서 Remo의 계정 A에서는 값이 $20가 되고, Sheero의 계정에서는 이전과 마찬가지로 $100로 유지됩니다.

DBMS의 ACID 속성

위 다이어그램에서 10달러를 입금한 후에도 계정 B의 금액은 여전히 ​​100달러임을 알 수 있습니다. 따라서 이는 원자성 거래가 아닙니다.

아래 이미지는 차변 및 대변 작업이 모두 성공적으로 수행되었음을 보여줍니다. 따라서 트랜잭션은 원자적입니다.

DBMS의 ACID 속성

따라서 금액이 원자성을 잃으면 은행 시스템에서는 이것이 큰 문제가 되며 은행 시스템에서는 원자성이 주요 초점입니다.

2) 일관성

단어 일관성 이는 값이 항상 보존되어야 함을 의미합니다. ~ 안에 DBMS , 데이터의 무결성이 유지되어야 합니다. 즉, 데이터베이스가 변경되더라도 항상 보존되어야 함을 의미합니다. 트랜잭션의 경우 트랜잭션 전후에 데이터베이스의 일관성을 유지하려면 데이터의 무결성이 매우 중요합니다. 데이터는 항상 정확해야 합니다.

예:

DBMS의 ACID 속성

위 그림에는 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인 경우 이는 차변 작업이 실행될 때 데이터가 일치하지 않기 때문에 데이터가 일치하지 않음을 의미합니다.

3) 격리

'격리'라는 말은 분리를 의미합니다. DBMS에서 격리는 어떤 데이터도 다른 데이터에 영향을 주어서는 안 되며 동시에 발생할 수 있는 데이터베이스의 속성입니다. 즉, 첫 번째 데이터베이스의 작업이 완료되면 한 데이터베이스의 작업이 시작되어야 합니다. 이는 두 개의 서로 다른 데이터베이스에서 두 개의 작업이 수행되는 경우 서로의 값에 영향을 미치지 않을 수 있음을 의미합니다. 트랜잭션의 경우 두 개 이상의 트랜잭션이 동시에 발생하더라도 일관성이 유지되어야 합니다. 특정 트랜잭션에서 발생하는 모든 변경 사항은 해당 변경 사항이 메모리에서 커밋되지 않을 때까지 다른 트랜잭션에서 볼 수 없습니다.

예: 두 개의 서로 다른 계정에서 두 작업이 동시에 실행되는 경우 두 계정의 값이 영향을 받지 않아야 합니다. 값은 지속적으로 유지되어야 합니다. 아래 다이어그램에서 볼 수 있듯이 계정 A는 계정 B와 C에 T1 및 T2 거래를 수행하지만 둘 다 서로 영향을 주지 않고 독립적으로 실행됩니다. 이를 격리라고 합니다.

DBMS의 ACID 속성

4) 내구성

내구성은 무언가의 영속성을 보장합니다. DBMS에서 내구성이라는 용어는 작업이 성공적으로 실행된 후의 데이터가 데이터베이스에 영구적으로 유지된다는 것을 보장합니다. 데이터의 내구성은 시스템이 실패하거나 충돌이 발생하더라도 데이터베이스가 계속 살아남을 정도로 완벽해야 합니다. 그러나 분실된 경우 데이터베이스의 내구성을 보장하는 것은 복구 관리자의 책임이 됩니다. 값을 커밋하려면 변경할 때마다 COMMIT 명령을 사용해야 합니다.

따라서 DBMS의 ACID 속성은 데이터베이스 내 데이터의 일관성과 가용성을 유지하는 데 중요한 역할을 합니다.

따라서 DBMS에 ACID 속성을 정확하게 도입한 것입니다. 우리는 거래 섹션에서도 이러한 속성을 논의했습니다.