트랜잭션

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

트랜잭션(transaction)은 ATM, 데이터베이스 등의 시스템에서 사용되는 쪼갤 수 없다는 업무처리의 단위이다.

영어 낱말 transaction은 거래를 뜻한다. 예를 들어 돈을 주었는데 물건을 받지 못한다면, 그 거래는 이루어지지 못하고 원상태로 복구되어야 한다. 이와 같이 쪼갤 수 없는 하나의 처리 행위를 원자적 행위라고 한다. 여기서 쪼갤 수 없다는 말의 의미는 실제로 쪼갤 수 없다기보다는 만일 쪼개질 경우 시스템에 심각한 오류를 초래할 수 있다는 것이다. 이러한 개념의 기능을 ATM 또는 데이터베이스 등의 시스템에서 제공하는 것이 바로 트랜잭션이다.

트랜잭션은 사용자가 시스템에 요구를 시작하여 시스템 내의 처리, 시스템에서 사용자에게 응답하는 모든 처리를 포함한다. 이러한 트랜잭션이 충족해야 하는 기술적인 요건은 ACID가 있다.

1) 원자성 : 트랜잭션의 처리는 완전히 끝마치지 않았을 경우에는 전혀 이루어지지 않은 것과 같아야 한다. 2) 일관성 : 트랜잭션들간의 영향이 한 방향으로만 전달되어야 한다. 3) 고립성 : 트랜잭션의 부분적인 상태를 다른 트랜잭션에 제공해서는 안된다. 4) 지속성 : 성공적인 트랜잭션의 수행 후에는 반드시 데이터베이스에 반영되어야 한다.

종류[편집]

트랜잭션의 범위에 따라 다음과 같이 분류된다.

  • 로컬 트랜잭션 (local transaction)
단위 시스템에서 처리되는 트랜잭션으로 트랜잭션에 대한 관리를 DBMS에서 담당한다.
여러 개의 시스템에서 처리되는 트랜잭션이다. 여러 DBMS에 걸친 트랜잭션을 담당하는 경우도 많아서 주로 미들웨어에서 트랜잭션 관리를 담당한다.

[편집]

ATM에서의 인출 거래는 하나의 트랜잭션이다. 인출 거래는 사용자로부터 필요한 정보를 입력받고 사용자의 계좌를 조회하고 잔고를 확인하여 요청 금액을 지불할 수 있는지 살펴보고, 잔고를 감소시킨 후 현금을 지급하는 일련의 절차이다. 만약 정전 또는 통신망 장애 등으로 인해 도중에 중단되면 인출 거래 전의 상태로 복구될 것이다. 데이터베이스에서 여러 개의 질의를 트랜잭션으로 묶어 놓은 경우도 마찬가지이다.

같이 보기[편집]