본문 바로가기

IT/Database

[데이터베이스] 트렌젝션 4가지 속성에 대하여 알아보자


Transaction

 

더이상 쪼갤수 없는 하나의 작업 단위


x) 송금시스템

                     A계좌                |           B계좌                |

 송금   -----  출금한다 ------>|                                    |

                                            |  -----  입금한다 ---->   |

 


Transaction 4가지 속성 만족

 


1) 원자성(Atomicity)

   - 트랜잭션은 연산들을 전부 실행하든지 전혀 실행하지 않아야지 일부만 실행해서는 안된다. All or Nothing

 

2) 일관성(Consistency)

   - 틀랜잭션이 성공적으로 실행되면 데이터베이스 상태는 모순되지 않고 일관된 상태가 된다.

   - 출금한 금액만큼 입금이 이루어져서 출금 데이터와 입금 데이터가 일치해야한다.

 

3) 격리성(Isolation)

   - 트랜잭션 실행 도중의 연산 결과는 다른 트랜잭션에서 접근할 수 없다.

   - 출금을 하는 중에는 다른 사람이 출금을 실행할 수 없다

 

4) 영속성(Durability)

   - 트랜잭션이 성공적으로 완료되면 그 결과는 영속적이다.

   - 데이터가 어딘가 저장되어 있어야 한다.

 


 

DDL, DCL

 - 자동으로 트랜잭션이 완료된다. (자동 커밋)

 



DML

 - 자동으로 트랜잭션 완료가 되지 않는다.

 - 작업이 끝나길 기다리므로 트랜잭션 완료를 해야한다.

    1) 실제 DB에 반영 위해      COMMIT;     

    2) 원상태로 돌리고 싶을 떈 ROLLBACK;