컴퓨터 이론/데이터베이스

[Database] Transaction과 ACID에 대해서 알아보자.

빙기때침식곡 2021. 10. 12. 17:32
반응형

 

이번 시간에는 Database에서 Transaction과 ACID에 대해서 알아보는 시간을 갖도록 하겠다.

 

ACID의 개념을 이해하기 전에 우선 Transaction의 개념을 알아야한다.

 

 

이미지 출처 https://chrisjune-13837.medium.com/

 

 

데이터베이스에서는 데이터에 대한 하나의 논리적 실행단계를 트랜잭션(Transaction)이라 한다.

쉽게 말해서 여러 작업들을 하나로 묶은 단위이다.

예를 들어, 은행에서 계좌이체를 트랜잭션이라고 할 수 있는데, 계좌이체 자체의 구현은 내부적으로 여러 단계로 이루어질 수 있지만 전체적으로는 '송신자 계좌의 금액 감소', '수신자 계좌의 금액 증가'가 한 동작으로 이루어져야 하는 것을 의미한다. 이 한 덩어리의 작업들은 모두 실행되거나, 실행되지 않는다. (all-or-nothing)

 

 

ACID는 데이터베이스 트랙잭션이 안전하게 수행되는 것을 보장하기 위한 성질을 가리킨다.

 

 

Atomicity (원자성)

 - 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. 

 - 즉, all-or-nothing의 개념으로서 작업 단위를 일부분만 실행하지 않는다는 것을 의미한다.

 

 

Consistency (일관성)

 - 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.

 - 예를들면 데이터 타입이 정수형인데, 갑자기 문자열이 되지 않는 것을 말한다.

 - 즉, 송금 전후 모두 금액의 데이터 타입은 정수형이어야 한다.

 

 

Isolation (독립성)

 - 트랜잭션 수행시 다른 트랜잭션의 작업이 끼어들지 못하도록 보장하는 것을 말한다.

 - 즉, 트랜잭션끼리는 서로를 간섭할 수 없다.

 

 

Durability (지속성)

 - 성공적으로 수행된 트랜잭션은 영원히 반영이 되는 것을 말한다.

 - commit을 하면 현재 상태는 영원히 보장됩니다.

 

 

 

 

References

 

[DB] Transaction 과 ACID란?

DB의 기초개념인 트랜젝션과 ACID에 대해서 알아봅니다.

chrisjune-13837.medium.com

 

 

ACID - 위키백과, 우리 모두의 백과사전

다른 뜻에 대해서는 애시드 문서를 참고하십시오. ACID(원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어이다. 짐 그

ko.wikipedia.org

 

 

[DB이론] 트랜잭션(transaction)과 ACID 특성을 보장하는 방법

1. 트랜잭션( transaction ) 트랜잭션이란 질의(query)를 하나의 묶음 처리해서 만약 중간에 실행이 중단됐을 경우, 처음부터 다시 실행하는 Rollback을 수행하고, 오류없이 실행을 마치면 commit을 하는

victorydntmd.tistory.com

 

반응형