ACID 트랜잭션
SQL 데이터베이스에서 트랜잭션
은 하나의 단위로 처리되어야 하는 일련의 작업입니다.
데이터의 신뢰성과 무결성을 유지하기 위해 모든 트랜잭션은 ACID
라고 불리는 네 가지 핵심 원칙을 따릅니다.
ACID는 무엇의 약자인가?
ACID
는 다음 네 가지 핵심 원칙을 의미합니다.
1. 원자성(Atomicity)
- 트랜잭션의 모든 작업은 함께 성공하거나 함께 실패합니다.
- 한 부분이라도 실패하면 전체 트랜잭션이 롤백됨.
2. 일관성(Consistency)
- 데이터베이스는 한 유효한 상태에서 다른 유효한 상태로 전이합니다.
- 여러 변경이 동시에 일어나도 모든 데이터 규칙과 제약 조건을 준수합니다.
3. 격리성(Isolation)
- 트랜잭션끼리 서로 간섭하지 않습니다.
- 트랜잭션이 완료되기 전까지 그 중간 단계는 다른 트랜잭션에는 보이지 않음.
4. 지속성(Durability)
- 트랜잭션이 커밋되면 변경 내용은 영구적임.
- 커밋 직후 시스템이 장애가 나더라도 변경 사항은 사라지지 않습니다.
예시: 송금
사용자끼리 서로 돈을 이체할 수 있다고 가정해 봅시다.
accounts
user_id | name | balance |
---|---|---|
1 | 지영 | 500 |
2 | 민수 | 300 |
지영에게서 민수에게 100원을 안전하게 보내려면, 다음과 같이 트랜잭션을 사용할 수 있습니다.
ACID 준수 이체
BEGIN; UPDATE accounts SET balance = balance - 100 WHERE name = '지영'; UPDATE accounts SET balance = balance + 100 WHERE name = '민수'; COMMIT;
- 두 업데이트가 모두 성공하면 → 변경 사항이 저장됩니다.
- 하나라도 실패하면 →
ROLLBACK
으로 되돌릴 수 있습니다.
왜 중요한가
ACID 보장이 없다면 다음과 같은 위험이 있습니다.
- 실패한 이체 중에 사용자의 돈이 사라짐
- 일관성 없거나 손상된 데이터
- 여러 사용자가 같은 데이터에 접근할 때 발생하는 경쟁 상태
ACID는 애플리케이션이 안전하고 예측 가능하게 동작하도록 보장합니다.
Quiz
0 / 1
SQL 데이터베이스에서 ACID 트랜잭션의 '지속성(Durability)' 속성은 트랜잭션이 한 번 커밋되면, 그 직후 시스템이 다운되더라도 해당 트랜잭션이 손실될 수 있음을 보장한다.
○
✕
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
DB 테이블 구조
실행 결과