본문 바로가기
카테고리 없음

트랜잭션(Transaction) 이란?

by Node.js 주니어 개발자 귤 2023. 6. 5.

트랜잭션(Transaction)은 데이터베이스에서 수행되는 논리적인 작업의 단위를 말한다.

트랜잭션은 데이터베이스의 일관성과 무결성을 유지하기 위해 사용된다.

일련의 데이터 조작 작업을 묶어서 하나의 작업으로 처리하고 작업이 모두 성공적으로 수행되거나 전혀 수행되지 않는 원자성(Atomicity)을 보장한다.

 

트랙잭션의 특징

 

1. 원자성(Atomicity) 

트랜잭션은 작업의 단위로서 작업들은 모두 성공적으로 완료되거나 아예 수행되지 않아야 한다.
즉, 트랜잭션 중간에 어떠한 작업도 완료되지 않은 상태로 남지 않아야 한다.

 

2. 일관성(Consistency)

트랜잭션이 수행되기 전과 수행된 후의 데이터베이스 상태는 일관성이 유지되어야 한다.
트랜잭션이 수행되는 동안에도 데이터의 무결성 조건이 항상 만족되어야 한다.

 

3. 고립성(Isolation)

트랜잭션은 다른 트랜잭션으로부터  독립적으로 수행되어야 한다.
한 트랜잭션이 실행 중일 때 다른 트랜잭션에서 해당 트랜잭션의 중간 결과를 볼 수 없으며 트랜잭션이 완료되기 전까지는 다른 트랜잭션에서 해당 트랜잭션에 대한 변경 사항알 알 수 없다.

 

4. 지속성(Durability)

트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 저장되어야 한다.
시스템 장애 또는 복구 작업이 발생하더라도 트랜잭션의 결과는 보존되어야 한다.

 

 

 

트랜잭션은 일반적으로 다음과 같은 방식으로 처리된다.

 

 

1. 시작(Begin) : 트랜잭션의 시작을 명시한다.
                          이 시점부터 데이터베이스 조작 작업이 트랜잭션의 범위에 포함된다.

 

2. 작업(Operations) : 트랜잭션에 속한 데이터베이스 작업(조회, 삽입, 수정, 삭제 등)이 수행된다

 

3. 완료(Commit) : 트랜잭션의 작업이 성공적으로 완료되었으며 모든 변경 내용이 데이터베이스에

                             영구적으로 반영될 것임을 명시한다.

 

4. 롤백(Rollback) : 트랜잭션 중에 문제가 발생하거나 트랜잭션을 명시적으로 취소해야 할 경우

                              모든 변경 내용이 롤백되어 트랜잭션이 이전 상태로 되돌려 진다

 

트랜잭션은 데이터베이스 시스템의 일관성, 무결성, 안정성을 보장하며 병행성 제어를 통해 여러개의 동시 트랜잭션이 안전하게 수행될 수 있도록 한다