3-17 Transaction, Commit, Rollback

서현우·2022년 5월 31일
0

복습

목록 보기
27/34

1. Transaction이란?

더이상 나눌수 없는 작업의 단위.
Tx. insert, update, select 하나하나가 다 TX.
계좌이체의 경우, 출금(update)과 입금(update)이 하나의 Tx로 묶여야 됨.
'모'아니면 '도'. 출금과 입금이 둘 다 성공하지 않으면 실패.
하나만 실패해도 취소돼야 함.(all or nothing)

2.Transaction의 속성

ACID

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

3. 커밋, 롤백

커밋 - 작업 내용을 DB에 영구적으로 저장
롤백 - 최근 변경사항을 취소(마지막 커밋으로 복귀)
자동커밋(Auto Commit) - 명령 실행 후, 자동으로 커밋 실행(rollback불가)
수동커밋 - 명령실행 후, 명시적으로 commit 또는 rollback을 입력

4. Tx의 Isolation Level

각 Tx을 고립시키는 정도.

READ UNCOMMITED - 커밋되지 않은 데이터도 읽기 가능.(dirty read)
(Tx1이 select작업 실행. Tx2이 insert 후 commit하지 않아도 Tx1에서 보임)
READ COMMITED - 커밋된 데이터만 읽기 가능.(phantom read)
(Tx1이 select작업 실행. Tx2이 insert 후 commit하지않으면 Tx1에서 안보임)
REPEATABLE READ(default) - Tx이 시작된 이후 변경은 무시됨.
(Tx1이 select작업 실행. Tx2가 insert 후 commit해도, Tx1이 commit하지 않으면 안보임)
SERIALIZABLE - 한번에 하나의 Tx만 독립적으로 수행.
(Tx1이 select작업 실행. Tx2가 insert하면 running..뜨면서 안됨. 이 때 Tx1이 commit하면 Tx2에 insert가능)
profile
안녕하세요!!

0개의 댓글