본문 바로가기

컴공스러운 공부

트랜잭션(Transaction)이란?

⭐ 트랜잭션(Transaction)?

  • 데이터베이스의 상태를 변환시키기 위해 수행하는 작업의 단위
  • 한꺼번에 모두 수행되어야 할 일련의 연산들
  • 하나의 트랜잭션은 Commit 또는 Rollback 됨
  • 쿼리 한줄 ≠ 트랜잭션!! 트랜잭션 설계를 하는 사람 마음에 따라 작업단위는 달라지는걸 유의!
    (ex. 은행에서 [돈 입금 => 금액 확인 => 돈 보관 => 통장 총액 업데이트] 이 작업단위를 하나의 트랜잭션이라고 볼 수 있음!)

 

 

⭐ 트랜잭션의 연산

1. Commit

  • 변경된 데이터를 테이블에 영구적으로 반영
  • 하나의 트랜잭션이 성공적으로 끝남 && 데이터베이스가 일관성 있는 상태 
    => Commit😀📢:트랜잭션이 끝났어요! 알아두세요!

2. Rollback

  • 트랜잭션이 행한 모든 연산을 취소
  • 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨짐 
    => Rollback💻⌨: (트랜잭션 재시작 or 폐기 동작)

 

 

⭐ 트랜잭션의 특성

1. 원자성(Atomicity)

  • 트랜잭션은 데이터베이스 연산의 전부가 실행되거나 전혀 실행되지 않아야 함
    (트랜잭션의 처리가 완전히 끝나지 않았을 경우 실행 전 상태와 같아야 함! 트랜잭션은 완벽주의자야..)

 

2. 일관성(Consistency)

  • 트랜잭션의 작업 처리 결과가 항상 일관성 있어야 함
    (트랜잭션이 진행되는 동안 데이터베이스가 변경되더라도 처음 참조한 데이터베이스로 진행)

 

3. 고립성(Isolation)

  • 트랜잭션 실행 중 생성되는 중간결과는 다른 트랜잭션이 접근할 수 없음

 

4. 영속성(Durability)

  • 트랜잭션이 실행을 성공적으로 완료한다면, 그 결과는 영구적으로 보장되어야 함

 

 

⭐ 트랜잭션의 상태