스프링 ch3-17 - Transaction, Commit, Rollback

서현우·2022년 7월 6일
0

스프링의정석

목록 보기
75/85

Transaction이란?

더이상 나눌 수 없는 작업의 단위.
계좌 이체의 경우, 출금(update)과 입금(update)이 하나의 Tx로 묶여야 됨.
==> 둘 다 성공하지 않으면 원래 상태로 Rollback.
==> 둘 다 성공하던지, 아니면 하나만 실패해도 취소.

Transaction의 속성 - ACID

원자성(Atomicity) - 나눌 수 없는 하나의 작업으로 다뤄져야한다.
일관성(Consistency) - Tx 수행 전과 후가 일관된 상태를 유지해야 한다.
고립성(Isolation) - 각 Tx는 독립적으로 수행되어야 한다.
영속성(Durability) - 성공한 Tx결과는 유지되어야 한다.

commit, rollback

커밋 - 작업 내용을 DB에 영구적으로 저장
롤백 - 최근 변경사항을 취소(마지막 커밋으로 복귀)

자동커밋과 수동커밋

  • 자동커밋 - 명령 실행 후, 자동으로 커밋이 수행(rollback 불가)
  • 수동커밋 - 명령 실행 후, 명시적으로 commit 또는 rollback을 입력

Tx의 isolation level

  1. READ UNCOMMITED - 커밋되지 않은 데이터도 읽기 가능
  2. READ COMMITED - 커밋된 데이터만 읽기 가능
  3. REPEATABLE READ - Tx이 시작된 이후 다른 Tx의 변경은 무시됨
  4. SERIALIZABLE - 한번에 하나의 Tx만 독립적으로 수행
profile
안녕하세요!!

0개의 댓글