프로그래밍/Node.js

[12] 트랜젝션의 정의/특성/연산 (DB기초)

제이스톨 2023. 7. 12. 15:33
728x90

1. 트랜젝션(Transaction) 이란..?

트랜잭션(Transaction) 이란,데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다.

※ 데이터베이스의 상태를 변경시킨다 = SELECT, UPDATE, INSERT, DELETE와 같은 행동을 의미..!

 

이런 트랜젝션은 상황에 따라 여러 개 만들어질 수 있다. 그 하나의 트랜젝션은 Commit(저장) 되거나 Rollback(철회) 될 수 있다.


2. 트랜젝션의 특징

- 원자성 (Atomicity) : 트랜젝션이 DB에 모두 반영되거나, 전혀 반영되지 않음을 뜻한다. (All or Nothing)

- 일관성 (Consistency) : 트랜젝션 작업 처리의 결과가 항상 일관되어야 함

- 독립성 (Isolation) : 하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로 독립적임 (트랜잭션은 독립적이다)

- 지속성 (Durability) : 트랜잭션이 성공적으로 완료되면 영구적으로 결과에 반영되어야 함


3. 트랜잭션 연산 및 상태

3-1. Commit 연산

: 하나의 트랜잭션이 성공적으로 끝나서 데이터베이스가 일관성이 있는 상태

 

3-2. Rollback 연산

: 트랜잭션의 원자성이 깨질 때의 상태를 의미한다. ( 하나의 트랜잭션 처리가 비정상적으로 종료됨 )

Rollback이 이뤄진다면 트랜잭션을 다시 실행하거나 부분적으로 변경된 결과를 취소할 수 있다.

 

3-3. 트랜젝션의 상태

 

트랜젝션은 논리적으로 5가지의 상태에 있을 수 있다.

 

활동(Active) : 트랜잭션이 실행중인 상태

실패(Failed) : 트랜잭션 실행에 오류가 발생하여 중단된 상태

철회(Aborted) : 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태

부분 완료(Partially Committed) : 트랜잭션의 마지막 연산까지 실행했지만, Commit 연산이 실행되기 직전의 상태

완료(Committed) : 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태

 


 DB기초 트랜젝션 끝~~

728x90