대형 프로젝트 - C# + 유니티로 만드는 MMORPG 게임 개발/(2) 데이터베이스

SQL (31) - 트랜잭션

monstro 2025. 3. 4. 10:59
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
반응형