Transaction / ACID

김루루룽·2022년 8월 22일
0

blog✏️

목록 보기
44/61
post-thumbnail

Transaction란?

앤디🐹는 은행🏧 업무를 보러 갔다

수만은행에서 드림은행으로 돈을 이체할 예정이다.

1. 수만은행에서 출금하여 드림은행으로 송금을 했다.
2. 송금 중 알 수 없는 오류가 발생해 수만은행에서는 돈이 빠져 나갔지만, 드림 은행 계좌에는 입금되지 않았다.
3. 이러한 상황을 막기 위해 거래 도중 뭔가 오류가 발생했을 때는 이 거래를 처음부터 없었던 거래로 완전히 되돌려야 한다.

이러한 거래의 안정성을 확보하는 방법이 트랜젝션이다.
DB에선 테이블에서 데이터를 읽어 온 후 다른 테이블에 데이터를 입력하거나, 갱신, 삭제하는데 처리 도중 오류가 발생하면 모든 작업을 원상태로 되돌린다.
작업이 모두 성공했을 때만 최종적으로 DB에 반영이 된다.

commit

모든 부분 작업이 정상적으로 완료하면 이 변경사항을 한꺼번에 DB에 반영한다

rollback

부분 작업이 실패하면 트랜잭션 실행전으로 되돌린다.




ACID

transaction을 정의하는 4가지 속성을 가르키는 약어

  • A(Atomicity) 원자성
    : 안정성 보장을 위해 가져아할 성질 중의 하나로
    트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장
    (모두 성공이 아니면 모두 실패하게 하기. DB의 오염을 막기 위함)

  • C(Consistency) 일관성
    : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 DB 상태로 유지하는 것

  • I(Isolation) 격리성
    : 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것
    (A의 요청을 처리하는 동안 B의 요청은 잠시 기다리는 것)

  • D(Durability) 지속성
    : 성공적으로 수행된 트랜잭션에 대한 로그가 남아야하는 성질로 런타임 오류나 시스템 오류가 발생하더라도 해당 기록은 영구적이여야 한다.

Isolation level

  • READ UNCOMMITTED
  • READ COMMITED
  • REPEATABLE READ
  • SERIALIZABLE


참조 :
[DB]트랜잭션(Transaction)이란?/트랜잭션의 개념,특징, 연산과정/savepoint

profile
1day 1push..plz

0개의 댓글