본문 바로가기

DataBase

트랜잭션(Transaction)이란?

트랜잭션이란 데이터 베이스 작업의 단위를 말합니다.
이는 작업의 일관성과 관계가 있습니다.
트랜잭션의 처리과정을 한마디로 표현하자면 All or Nothing이라고 하지요.

간단하게 말하자면, 
일련의 작업들이 모두 제대로 수행이 되었다면 Commit 시키고,
만약 중간에 어떠한 에러가 발생하였다면 그 일련의 작업들을 모두 없었던 것으로 하는 것을 말합니다.

* 트랜잭션이 갖추어야할 4가지 조건(ACID)

1. 원자성(Atomic):
트랜잭션은 더 이상 분류할 수 없는 작업 단위여야 하며 모든 데이터 수정 작업이 수행되거나 하나도 수행되지 말아야 합니다.

2. 일관성(Consistency):
완료된 트랜잭션의 모든 데이터는 일관적이어야 합니다.
관계형 데이터베이스에서는 트랜잭션 수정에 모든 규칙을 적용하여 모든 데이터 무결성을 유지해야 합니다. 
트랜잭션 마지막에는 B-tree 인덱스 또는 이중 연결 목록 등 모든 내부적 데이터 구조를 반드시 수정해야 합니다. 

3. 고립성(Isolation):
동시 트랜잭션에 의한 수정은 다른 동시 트랜잭션에 의한 수정과 격리되어야 합니다. 
트랜잭션에서 다른 동시 트랜잭션이 수정하기 전 상태의 데이터를 보거나, 
두 번째 트랜잭션이 완료된 후의 데이터를 볼 수는 있지만 중간 상태는 볼 수 없습니다. 
결과적으로 시작 데이터를 다시 로드하고 일련의 트랜잭션을 재생하여 원래 트랜잭션이 수행된 후의 상태로 
데이터를 되돌릴 수 있는데 이를 순차성이라고 합니다.

4. 지속성(Durabillity):
트랜잭션이 완료되고 나면 그 영향이 영구적으로 시스템에 적용됩니다. 
수정은 시스템에 오류가 발생한 경우에도 지속됩니다. 

'DataBase' 카테고리의 다른 글

[오라클] TO_NUMER 를 [MSSQL] CONVERT 로  (0) 2011.06.23
[오라클] DECODE 를 [MSSQL] CASE 문으로 바꾸기  (0) 2011.06.23
오라클/MSSQL 전월 구하기  (0) 2011.06.22
트리거(TRIGGER)란?  (0) 2009.12.18
조인(Join)이란?  (0) 2009.12.17