1. 강의 목표
이 강의에서는 데이터베이스 트랜잭션의 개념과 중요성, 그리고 ACID 특성에 대해 간단히 설명합니다.
2. 트랜잭션이란?
- 트랜잭션(Transaction): 데이터베이스의 상태를 변화시키는 하나의 논리적 작업 단위. 여러 데이터베이스 작업을 하나의 그룹으로 묶어서 실행합니다.
- 예: 은행 계좌 이체 (한 계좌에서 출금하고 다른 계좌에 입금하는 두 개의 작업을 하나로 묶음).
3. 트랜잭션의 중요성
- 데이터의 일관성과 무결성을 보장합니다.
- 중간 단계에서의 데이터 불일치 문제를 방지합니다.
- 장애 발생 시 데이터베이스를 안전한 상태로 복구할 수 있습니다.
4. 트랜잭션의 ACID 특성
1. 원자성(Atomicity)
- 정의: 트랜잭션의 모든 작업이 성공적으로 완료되거나, 하나라도 실패하면 모든 작업이 취소(롤백)되어야 함.
- 예: 은행 계좌 이체 중 하나의 작업(출금/입금)이 실패하면 전체 작업이 취소되어야 함.
2. 일관성(Consistency)
- 정의: 트랜잭션이 성공적으로 완료되면 데이터베이스가 일관된 상태를 유지해야 함.
- 예: 은행 계좌 이체 후, 총 자산 금액이 변경되지 않아야 함.
3. 고립성(Isolation)
- 정의: 하나의 트랜잭션이 완료되기 전까지 다른 트랜잭션이 간섭하지 못하게 함.
- 예: 동시에 두 개의 트랜잭션이 동일한 데이터를 수정할 때, 각각의 트랜잭션이 독립적으로 처리되어야 함.
4. 지속성(Durability)