[sql] 트랜잭션의 개념과 ACID 특성
데이터베이스 시스템에서 트랜잭션은 하나 이상의 작업을 묶어서 한꺼번에 수행하고, 이러한 작업들이 모두 성공적으로 수행되거나 어느 하나라도 실패할 때 원자성, 일관성, 독립성, 지속성에 대한 ACID 특성을 보장합니다.
트랜잭션의 개념
트랜잭션은 데이터베이스에서 원자성을 보장하는 작업의 단위를 의미합니다. 즉, 여러 단계로 이루어진 작업이 모두 성공적으로 수행되거나, 어느 하나라도 실패할 경우 모든 작업을 취소하는 기능을 제공합니다.
트랜잭션은 보통 COMMIT
또는 ROLLBACK
명령을 통해 완료되거나 취소됩니다. COMMIT
은 모든 작업이 성공적으로 수행되어야 데이터베이스에 변경된 내용이 적용되고, ROLLBACK
은 실패한 작업들을 취소하여 이전 상태로 되돌리는 역할을 합니다.
ACID 특성
트랜잭션은 ACID 특성을 가지고 있습니다. ACID는 다음과 같이 정의됩니다.
- 원자성(Atomicity): 트랜잭션은 모든 작업들이 성공적으로 수행되거나 전혀 수행되지 않는 원자적인 단위로 작동합니다.
- 일관성(Consistency): 트랜잭션 후에 데이터베이스는 일관된 상태를 유지해야 합니다. 즉, 데이터베이스 내의 제약 조건을 준수해야 합니다.
- 독립성(Isolation): 여러 트랜잭션이 동시에 실행 중일 때, 각 트랜잭션은 다른 트랜잭션과 독립적으로 실행되는 것처럼 보여야 합니다.
- 지속성(Durability): 트랜잭션이 성공적으로 종료될 경우, 해당 트랜잭션에 의해 변경된 데이터는 영구적으로 저장되어야 합니다.
따라서, 트랜잭션은 ACID 특성을 준수하여 데이터의 무결성과 일관성을 유지합니다.
이러한 트랜잭션과 ACID 특성은 데이터베이스 시스템에서 데이터의 신뢰성과 안정성을 보장하는 데 중요한 역할을 합니다.
참고 문헌:
- “데이터베이스 시스템” - Raghu Ramakrishnan, Johannes Gehrke