티스토리 뷰

트랜잭션(Transaction)


데이터베이스에서 사용하는 용어로 분할될 수 없는 작업 단위를 나타낸다. 분할될 수 없다는 말은 물리적으로 분할될 수 없다는 것이 아니라 논리적으로 분할하면 안된다는 의미로, 분할되어 실행될 시 시스템에 큰 타격을 줄 수 있다.

ATM기기에서 돈을 송금하는 작업을 예로 들어보자. 돈을 송금하여 내 계좌 데이터에서는 금액이 감소되었는데, 상대방 계좌 데이터를 증가시키는 부분에서 간섭이 일어나 증가가 안된다면 문제가 된다. 위 예에서 돈을 인출하는 명령(내 계좌에서 돈을 인출)과 돈을 입금하는 명령(상대 계좌에 돈을 입금)은 하나의 트랜잭션으로 묶여서 실행되어야 한다.


 계좌 A의 돈 - 10,000

 계좌 A의 돈 - 10,000

 계좌 B의 돈 + 10,000

 간섭이 일어나면 안되는 부분

 계좌 B의 돈 + 10,000






트랜잭션의 특성


트랜잭션이 신뢰를 가지기 위해 다음과 같은 특성을 가진다.


원자성(Atomicity)

트랜잭션에 포함된 명령들은 모두 수행되거나, 모두 수행 안되어야 한다. 즉 어느 명령은 실행되고 어느 명령은 실행되지 않으면 안된다.


일관성(Consistancy)

트랜잭션이 완료된 뒤에는 일관적인 상태에 있어야 한다. 트랜잭션의 영향이 한 방향으로만 전달되어야 한다.


고립성(Isolation)

트랜잭션은 다른 트랜잭션과 독립적으로 실행되는 것 처럼 보여야 한다. 트랜잭션의 부분상태를 다른 트랜잭션에 제공해서는 안된다.


지속성(Durability)

트랜잭션의 결과는 반드시 데이터베이스에 반영되어야 한다.






트랜잭션의 종류


트랜잭션은 그 범위에 따라 두가지로 분류된다.


로컬 트랜잭션

단위 시스템에서 처리되는 트랜잭션으로 트랜잭션에 대한 관리르 DBMS에서 관리.


분산 트랜잭션

여러 시스템에서 처리되는 트랜잭션. 여러 DBMS에 걸친 트랜잭션을 담당하는 경우도 많아서 주로 미들웨어에서 관리를 담당.






참고자료


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함