본문 바로가기
IT 이것저것

[DB] 트랜잭션(Transaction) 정의 및 특징

by 관성맨 2023. 2. 6.
반응형

 

 

트랜잭션(Transaction)이란 무엇인가?

트랜잭션은 쪼갤 수 없는 업무 처리의 최소 단위를 의미하며 데이터베이스(DB) 상태를 변화시키는 논리적 작업 단위를 뜻한다. 쪼갤 수 없는 업무 처리의 최소 단위이므로 하나의 트랜잭션은 한꺼번에 모두 수행된다.

 

 

 

 

 

 

 

 

 

 

 

트랜잭션의 특징

 

트랜잭션의 특징은 4가지가 있다.

 

원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)의 특징이 있는데

각각 앞글자를 따서 ACID 라고 부른다.

 

 

하나씩 알아보도록 하자.

 

 

(1) 원자성(Atomicity)

원자성은 트랜잭션의 연산이 데이터베이스에 모두 반영되든지 아니면 모두 반영되지 않든지 해야한다.

업무 처리의 최소 단위이므로 All or Nothing의 개념으로 작업 단위를 일부분만 실행하지는 않는다는 의미이다. 

만약, 트랜잭션 내에서 처리가 되다가 어느 하나 오류가 발생하게 된다면 그 트랜잭션은 전부 취소(Rollback)되게 된다.

 

 

(2) 일관성(Consistency)

일관성은 트랜잭션의 작업 처리 결과가 항상 일관적이어야 한다는 뜻이다.

즉, 트랜잭션 수행 전과 수행 후의 상태가 같아야 한다는 뜻이다. 

시스템의 고정 요소는 수행 전과 후가 변함이 없어야 하며, 트랜잭션이 진행되는 동안 데이터베이스가 변경되더라도 처음 트랜잭션을 진행하기 위해 참조한 데이터베이스로 진행되어야 한다.

 

 

(3) 고립성(Isolation)

고립성, 또는 독립성이라 한다.

두개의 트랜잭션이 수행되었을 경우 두 트랜잭션은 독립적으로 수행되어야 한다는 것이다. 어느 하나의 트랜잭션 실행중에 다른 트랜잭션이 끼어들거나 영향을 끼치지 못한다는 뜻이다. 수행중인 한개의 트랜잭션이 완료되기 전까지 다른 트랜잭션에서 그 수행 결과를 참조할 수 없다.

 

 

(4) 지속성(Durability)

지속성 또는 연속성이라고 한다.

트랜잭션이 성공적으로 처리되어 완료되었을 경우 그 트랜잭션의 결과는 영구적으로 반영되어야 한다는 뜻이다.

 

 

 

 

 

 

 

 

 

 

트랜잭션의 연산

 

(1) Commit

커밋(Commit)이란 트랜잭션처리가 완료되어 종료되었을 때, 그 트랜잭션이 성공적으로 완료되었다 라는 것을 알려주는 연산이다.

 

 

(2) Rollback

롤백(Rollback)이란 트랜잭션 처리가 비정상적으로 되어 데이터베이스의 원자성의 특징이 위배되었을 때 그 상태를 연산 전으로 되돌리는 연산이다. 트랜잭션 처리를 취소(Undo)하는 연산이다.

 

 

 

(3)

반응형

댓글