PracticeEveryday

Transaction 본문

DB

Transaction

kimddakki 2022. 5. 11. 12:39
Transaction : 거래

Transaction: 데이터베이스 내에서 수행되는 작업의 최소 단위

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

 => 이런 트랜잭션은 상황에 따라 여러 개가 만들어질 수 있다.

 => 데이터베이스의 무결성을 유지하며 DB의 상테를 변화하는 기능을 수행한다.

 => Transaction은 하나 이상의 Query문을 포함해야하며, ACID( 원자성, 일관성, 고립성, 지속성 ) 4가지 규칙을 만족해야 한다.

 

트랜잭션의 예시 

A => B에게 100만원 송금
A에서 100만원이 빠져 나갔지만 전산 오류로 인해 B에게 100만원이 입금 되지 않음
엄청난 오류

이런 예기치 않은 오류를 방지하게 위해 모든 입출금의 과정은 하나의 묶음의 형태로 저장되어야 한다.
한명에게 돈이 빠져나가면 무조건 상대방에 들어오게끔 말이다.
이런 두 행위(입, 출금)은 뗄레야 뗄 수 없는 사이가 된다.
분리 될 수 없는 하나의 거래로 처리 되어야 하는 단일 업무 인 것이다.
이런 업무의 최소 단위를 데이터 베이스에서는 Transaction이라고 한다.

Transaction의 특징

1. 원자성 ( Atomicity ) : 어떤 것이 더 이상 쪼개질 수 없는 성질을 말한다.

 - Transaction에 포함된 작업은 전부 수행되거나 전부 수행되지 말아야 한다. (ALL or Nothing)

 

2. 일관성 ( Consistency )

 - Transaction이 수행되고 나면 항상 언제나 일관성 있는 데이터 베이스 상태로 유지하는 것

 - 작업 처리 결과가 항상 일관적이다.

// 즉, 데이터 타입이 반환 후와 전이 항상 동일해야 한다.

 

3. 고립성 ( Isolation ) 

 - 여러 Transaction은 동시에 수행 될 수 있다. 이 때 각각의 Transaction은 다른 Transaction의 연산 작업에 끼어들지 못하게 보장하여 독립적으로 작업을 수행되게 해야 한다.

※ 동시성 제어 ( concurrency control )

더보기

다중 사용자 환경을 지원하는 데이터베이스 시스템에서 동시에 실행되는 여러 트랜잭션 간의 간섭으로 문제가 발생하지 않도록 트랜잭션의 실행 순서를 제어하는 기법이다.

 

4. 지속성 ( Durability : 내구성 )

 - 성공적으로 수행된 Transaction은 데이터 베이스에 영원히 반영되어야 함. 

 - Transaction이 완료되면 저장 후에 생기는 이슈에 영향을 받지 않아야 함.

 - 보통 commit 이 된다면 지속성은 만족할 수 있다.


Commit 과 Rollback

 

COMMIT: 저지르다 범하다 과 ROLLBACK :이전상태로 되돌리다

데이터베이스는 COMMITROLLBACK을 통해 데이터 무결성을 보장하는 수단이ㄷ. COMMIT이란 Transaction작업을 완료했다고 확정하는 명령어입니다.

COMMIT을 통해 Transaction작업 내용을 실제 DB에 저장하고 DB가 변경됩니다. ROLLBACK은 작업 중 문제가 발생했을 때, Transaction 처리 과정에서 발생한 변경 사항을 취소하고 이전 COMMIT의 상태로 되돌리는 역할을 한다.


Transaction의 상태

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

Active : 트랜잭션이 현재 실행 중인 상태
Failed : 트랜잭션이 실행되다 오류가 발생해서 중단된 상태
Aborted : 브랜잭션이 비정상 종료되어 Rollback 이 수행된 상태
Partially Committed : 트랜잭션의 연산이 마지막까지 실행되고 Commit이 되기 직전 상태
Committed : 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태​

 

 

[데이터베이스] Transaction, 트랜잭션이란?

Transaction, 트랜잭션 트랜잭션(Transaction) 이란, 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. 데이터베이스의 상태를 변경시킨다는 이야기는 SELECT, UPDATE, INSERT, DELETE 와 같은

wonit.tistory.com

 

'DB' 카테고리의 다른 글

RDB Modeling  (0) 2022.08.08
Key  (0) 2022.05.13
DBMS  (0) 2022.04.22
DB  (0) 2022.04.21
파일(File)  (0) 2022.04.20
Comments