🔄 트랜잭션 관리
- 트랜잭션은 데이터베이스에서 수행되는 하나의 논리적 작업 단위.
- 트랜잭션은 ACID 원칙을 따름:
- Atomicity: 트랜잭션 내의 모든 작업은 원자적으로 처리됨.
- Consistency: 트랜잭션 실행 전후, 데이터베이스는 일관된 상태를 유지.
- Isolation: 트랜잭션은 서로 독립적으로 수행됨.
- Durability: 트랜잭션이 완료되면 그 결과는 영구적으로 저장됨.
💼 트랜잭션 제어 명령어
- BEGIN: 트랜잭션 시작.
- COMMIT: 트랜잭션 완료 및 변경 사항을 데이터베이스에 반영.
- ROLLBACK: 트랜잭션을 취소하고 변경 사항을 되돌림.
⚖️ 트랜잭션 격리 수준
트랜잭션 격리 수준은 데이터의 일관성을 유지하면서도 동시에 발생하는 트랜잭션들을 처리하는 방법.
- Read Uncommitted: 다른 트랜잭션에서 변경된 데이터를 볼 수 있음 (Dirty Read).
- Read Committed: 커밋된 데이터만 읽을 수 있음, 하지만 여전히 다른 트랜잭션의 커밋을 볼 수 있음.
- Repeatable Read: 트랜잭션 내에서 동일한 데이터를 두 번 읽어도 결과가 같음 (Phantom Read 방지).
- Serializable: 가장 높은 격리 수준, 트랜잭션들이 순차적으로 처리된 것처럼 동작.
🔐 락 (Lock)
- 락은 데이터베이스에서 동시에 발생하는 트랜잭션을 관리하기 위한 메커니즘.
- 락을 사용하여 데이터 충돌을 방지하고 트랜잭션을 안전하게 처리.