[Database] Transaction과 ACID에 대해서 알아보자.
이번 시간에는 Database에서 Transaction과 ACID에 대해서 알아보는 시간을 갖도록 하겠다.
ACID의 개념을 이해하기 전에 우선 Transaction의 개념을 알아야한다.
데이터베이스에서는 데이터에 대한 하나의 논리적 실행단계를 트랜잭션(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