ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DB용어] 트랜잭션( transaction ) 이란 ?
    IT /DataBase 2013. 2. 22. 17:55
    728x90



    트랙잭션( transaction ) 개념을 말하자면

    데이터베이스 내에서 한꺼번에 수행되어야할 일련의 연산들 입니다.
    간단하게 말하자면 전부 되거나~~ 전부 안되거나~~

    트랙잭션 의 모든 연산은 반드시 한꺼번에 완료가 되야 하며
     그렇지 않은경우에는 한꺼번에 취소되어야 하는 원자성을 가지고 있습니다

    한꺼번에 완료가 된경우에는 성공적인 종료 COMMIT 

    이 경우에는 작업결과는 데이터베이스에 반영이 되게 됩니다.

    취소가 된경우에는 비정상적인 종료 ROLLBACK 

    이 경우에 작업결과는 모두 취소되게 되어 데이터베이스에 영향을 미치지 않게 됩니다. 



    이 트랙잭션에 성질들을 보게되면 

    1. 원자성(Atomicity)

    분리 할수 없는 하나의 단위로 작업은 모두 완료되거나 모두 취소 되어야 합니다.

    2. 일관성(Consistency)

    - 사용되는 모든 데이터는 일관되어야 합니다.

    3. 격리성(Isolation)

     - 접근하고 있는 데이터는 다른 트랜잭션으로 부터 격리 되어야 합니다.

    트랜잭션이 진행되기전과 완료된 후에 상태를 볼수 있지만

    트랜잭션이 진행되는 중간 데이터는 볼수 없습니다.

    4. 영속성(Durability)

    - 트랙잭션이 정상 종료되면 그 결과는 시스템에 영구적으로 적용되어야 합니다.

    5. 순차성(Sequentiality)

    - 데이터를 다시 로드하고 트랜잭션을 재생하여 원래 트랜잭션이 수행된 후의 상태로

     데이터를 되돌리는 것을 말합니다.


    트랙잭션의 예를 하나 들어 이해를 해볼게요ㅎㅎ


    저는 카드하나를 들고서 은행 인출기 앞으로 갑니다.

    처음에     카드를 넣습니다

    두번째로     어떤거래를 할지 선택을하고

    세번째로     비밀번호를 눌러 인증을 받고

    네번째로     거래를 완료 하겠죠

    이 네가지 과정을 묶어서 트랜잭션이라고 합니다.


    거래까지 완료됬으면 COMMIT 

    중간에 비밀번호를 틀리거나.. 인증을 받았는데 거래를 취소하거나 하는 일이

     발생해서 처음으로 돌아갈경우에는 ROLLBACK 이라고 합니다.





Designed by Tistory.