DBMS ACID 속성

이진호·2022년 9월 6일
0

DB

목록 보기
1/6

트랜잭션은 데이터베이스의 내용에 액세스하고 수정하는 단일 논리적 작업 단위입니다. 트랜잭션은 읽기 및 쓰기 명령을 사용하여 데이터에 액세스합니다.
데이터베이스의 일관성을 유지하기 위해 트랜잭션 전후에 특정 속성을 따라야합니다. 이를 ACID 속성이라고 합니다.

ACID

Atomicity(원자성)

이는 전체 트랜잭션이 동시에 발생하거나 전혀 발생하지 않아야 함을 의미합니다. 중간은 없습니다. 즉, 트랜잭션은 부분적으로 발생하지 않습니다. 각각의 트랜잭션은 하나의 단위로 간주되며 완료되거나 전혀 실행되지 않습니다. 여기에는 다음 두 가지 명령이 포함됩니다.

  • Abort: 트랜잭션이 중단되면 데이터베이스에 대한 변경 사항이 적용되지 않습니다.
  • Commit: 트랜잭션이 커밋되면 변경 사항이 적용됩니다.
    원자성은 'All or nothing rule'이라고도 알려져 있습니다.

다음은 T1과 T2으로 구성된 트랜잭션 T 예제 입니다. 계좌 X에서 계좌 Y로 100을 이체합니다.

Atomicity

만약 T1 완료 후 T2(즉, 쓰기(X) 후 쓰기(Y) 전)가 실패하면 해당 금액은 X에서 차감되지만 Y에는 추가되지 않습니다. 이로 인해 데이터베이스 상태가 일관되지 않게 됩니다. 따라서 데이터베이스 상태의 정확성을 보장하려면 트랜잭션이 전체적으로 실행되어야 합니다.

Consistency(일관성)

이는 트랜잭션 전후에 데이터베이스가 일관되도록 무결성 제약 조건이 유지되어야 함을 의미합니다. 이는 데이터베이스의 정확성을 나타냅니다. 위의 예를 참조하면, 거래 전후의 총 금액이 유지되어야 한다는 것을 의미합니다.
T가 발생하기 전 합계 = 500 + 200 = 700.
T 발생 후 합계 = 400 + 300 = 700.
따라서 데이터베이스는 일관적입니다. T1이 완료되었지만 T2가 실패하는 경우 불일치가 발생합니다. 결과적으로 T는 불완전합니다.

Isolation(격리)

이 속성은 데이터베이스 상태의 불일치를 초래하지 않고 여러 트랜잭션이 동시에 발생할 수 있도록 보장합니다. 거래는 간섭 없이 독립적으로 발생합니다. 특정 트랜잭션에서 발생하는 변경 사항은 해당 트랜잭션의 특정 변경 사항이 메모리에 기록되거나 커밋될 때까지 다른 트랜잭션에서 볼 수 없습니다. 이 속성은 트랜잭션을 동시에 실행하면 어떤 순서로 순차적으로 실행되어 달성된 상태와 동일한 상태가 되도록 보장합니다.
X= 500, Y = 500으로 설정합니다.
아래는 두 개의 트랜잭션 T와 T” 예제입니다.

Isolation

Read(Y)까지 T를 실행한 후 T"가 시작된다고 가정합니다. 결과적으로 T"가 X의 올바른 값을 읽지만 Y의 잘못된 값과 다음에 의해 계산된 합계로 인해 연산의 인터리빙이 발생합니다.
T": (X+Y = 50,000 + 500= 50,500)
따라서 트랜잭션 종료 시 합계가 일치하지 않게 됩니다.
T: (X+Y = 50,000 + 450 = 50,450).
이로 인해 50이 손실되어 데이터베이스 불일치가 발생합니다. 따라서 트랜잭션은 독립적으로 이루어져야 하며 변경 사항은 주 메모리에 적용된 후에만 조회 가능해야 합니다.

Durability(내구성)

이 속성은 트랜잭션 실행이 완료되면 데이터베이스에 대한 업데이트 및 수정 사항이 디스크에 저장되고 기록되며 시스템 오류가 발생하더라도 지속되도록 보장합니다. 이제 이러한 업데이트는 영구적이며 비휘발성 메모리에 저장됩니다. 따라서 트랜잭션의 효과는 결코 사라지지 않습니다.

몇 가지 중요한 사항

속성속성을 구현하는 책임 주체
AtomicityTransaction Manager
ConsistencyApplication programmer
IsolationConcurrency Control Manager
DurabilityRecovery Manager

전체적으로 ACID 속성은 각 트랜잭션이 단일 단위로 작동하고 일관된 결과를 생성하며 다른 작업과 격리되어 작동하면서 영구적으로 저장되는 작업 그룹이 되도록 데이터베이스의 정확성과 일관성을 보장하는 메커니즘을 제공합니다.

출처

0개의 댓글