본문 바로가기
Computer/Data

Database ACID

by 생각하는달팽이 2024. 2. 22.

데이터베이스에서 ACID는 트랜잭션(데이터베이스에서의 작업 단위)이 안전하게 수행되는 것을 보장하기 위한 네 가지 기본적인 속성을 의미합니다. ACID는 Atomicity(원자성), Consistency(일관성), Isolation(독립성), Durability(지속성)의 약자입니다. 각각의 속성을 쉽게 이해할 수 있도록 예를 들어 설명하겠습니다.

Atomicity (원자성)

원자성은 트랜잭션이 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야 함을 의미합니다. 즉, 트랜잭션의 모든 작업이 성공적으로 완료되거나, 하나라도 실패하면 전체 트랜잭션이 취소되어야 합니다.

예시: 은행 계좌 이체를 생각해보세요. A 계좌에서 B 계좌로 돈을 이체할 때, 이 과정은 두 단계로 이루어집니다. (1) A 계좌에서 돈을 빼고, (2) B 계좌에 돈을 추가합니다. 원자성은 이 두 작업이 모두 완료되거나, 아무 일도 일어나지 않아야 함을 보장합니다. 즉, 돈을 A 계좌에서 빼는 것만 성공하고 B 계좌에 돈을 추가하는 것이 실패하면 안 됩니다.

Consistency (일관성)

일관성은 트랜잭션이 성공적으로 완료되면, 데이터베이스가 항상 일관된 상태를 유지해야 함을 의미합니다. 이는 데이터베이스의 모든 무결성 제약 조건을 충족하는 것을 포함합니다.

예시: 은행 계좌의 예에서 계속해서, 계좌의 잔액은 절대 음수가 될 수 없다는 규칙이 있습니다. 이체 작업 후에도 모든 계좌의 잔액이 이 규칙을 만족해야 합니다. 즉, 일관성은 이체 후에도 모든 계좌가 유효한 상태를 유지하도록 보장합니다.

Isolation (독립성)

독립성은 동시에 실행되는 여러 트랜잭션이 서로에게 영향을 주지 않고 독립적으로 실행됨을 보장합니다. 이는 각 트랜잭션이 마치 순차적으로 실행되는 것처럼 보이게 합니다.

예시: 동시에 여러 이체 작업이 일어날 때, 각 이체는 다른 이체와 독립적으로 처리됩니다. 예를 들어, A 계좌에서 돈을 빼는 작업과 동시에 A 계좌로 돈을 입금하는 다른 트랜잭션이 있다면, 이 두 작업은 서로에게 영향을 주지 않고 독립적으로 처리되어야 합니다.

Durability (지속성)

지속성은 트랜잭션이 성공적으로 완료되면, 그 결과가 영구적으로 데이터베이스에 반영되어야 함을 의미합니다. 즉, 시스템에 문제가 발생해도, 완료된 트랜잭션의 결과는 사라지지 않습니다.

예시: 은행 계좌 이체가 성공적으로 완료되면, 이 이체 정보는 데이터베이

스에 영구적으로 저장됩니다. 이후에 시스템에 문제가 발생하더라도, 이체 결과는 유지되어야 합니다.

ACID 속성은 데이터베이스가 신뢰성 있게 데이터를 관리하고, 다양한 오류 상황에서도 데이터의 정확성과 안정성을 보장하기 위해 중요합니다.

반응형

'Computer > Data' 카테고리의 다른 글

MongoDB ACL 설정을 하면서...  (0) 2022.07.28
The Cap Theorem  (0) 2021.03.25