728x90
반응형
이번 포스트에서는 트랜잭션의 동작 원리와 동작 구성을 살펴보겠습니다.
1) 트랜잭션
트랜잭션은 하나의 작업 단위를 의미합니다.
그리고 이러한 트랜잭션은 ACID라는 특성을 갖고 있습니다.
- A : Atomicity(원자성), 데이터의 유효성을 보장
- C : Consistency(일관성), 데이터는 미리 정해진 규칙에서만 수정이 가능함
- I : Isolation(고립성), 하나의 트랜잭션에 다른 트랜잭션이 개입하지 못하며, 영향과 간섭받지 않음
- D : Durability(지속성), 한번 COMMIT된 데이터는 안정적으로 보존되며 남겨진 로그를 통해 수정 가능
2) 로그
위와 같은 트랜잭션의 ACID 특성 중에서 Durability와 관련된 로그에 대해서 알아보겠습니다.
DB에서는 항상 어떤 행동을 취한 후 로그를 남기게 됩니다.
이때 남겨지는 로그에 대해서 몇가지 명령어를 사용할 수 있습니다.
- REDO : 현재 로그에서 미래의 로그로 이동
- UNDO : 현재 로그에서 과거의 로그로 이동
- ROLLFORWARD : 가장 최근의 COMMIT된 트랜잭션을 사용하여 데이터베이스를 복구
- ROLLBACKWARD : 가장 최근의 COMMIT된 트랜잭션 이전으로 데이터베이스를 복구
위와 같이 DB는 변경된 데이터를 바로 하드 디스크에 반영하지 않고 로그를 남겨 반영하게 됩니다.
또, DB에 문제가 발생하였어도 로그를 통해 쉽게 수정 / 취소할 수 있습니다.
728x90
반응형
'대형 프로젝트 - C# + 유니티로 만드는 MMORPG 게임 개발 > (2) 데이터베이스' 카테고리의 다른 글
| Redis #2 (0) | 2025.03.05 |
|---|---|
| Redis #1 (0) | 2025.03.04 |
| SQL (30) - 대기와 락 (0) | 2025.03.04 |
| SQL (29) - 쓰레드와 캐싱 (0) | 2025.03.03 |
| SQL (28) - 데이터 베이스의 원리 (0) | 2025.03.03 |