2024. 2. 22. 16:00ㆍComputer/Data
데이터베이스에서 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 |