[DB]Transaction & ACID

조영민·2023년 9월 5일

CS

목록 보기
9/14

ACID

ACID는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability) 가르키는 약어이다.

Transaction

트랜잭션이란 데이터베이스 내 하나의 논리적 기능을 수행하기 위해 행해지는 작업의 단위 또는 한번에 사용되는 하나 이상의 쿼리를 모아 놓은 쪼갤 수 없는 작업의 논리적인 단위를 뜻한다.

트랜잭션은 ACID를 만족해야한다.

원자성(Atomicity)

트랜잭션은 분해가 불가능한 최소의 단위인 하나의 원자처럼 동작한다는 의미. 트랜잭션 내의 모든 연산들은 반드시 전체가 한번에 정상적으로 수행이 완료되거나 어떠한 연산도 수행되지 않아야한다.

일관성(Consistency)

트랜잭션 작업이 성공했다면, 데이터베이스는 그 일관성을 유지해야 한다. 일관성은 특정한 조건을 두고, 그 조건을 만족하는지를 확인하는 방식으로 검사할 수 있다.

독립성(Isolation)

트랜잭션을 수행하는 도중에 다른 연산작업이 끼어들지 못하도록 한다. 임계영역을 두는 것으로 달성할 수 있다.

지속성(Durability)

성공적으로 트랜잭션이 수행되었다면 그 결과는 완전히 반영이 되어야 한다. 완전히 반영되면 로그를 남기게 되는데, 이 로그를 이용해서 트랜잭션 수행전 상태로 되돌릴 수 있어야한다. 때문에 트랜잭션은 로그저장이 완료된 시점에서 종료 되어야 한다.

profile
노젓는 개발자

0개의 댓글