ACID

Wonbin Lee·2022년 5월 2일
0

Database

목록 보기
2/4

ACID

ACID(에이씨아이디)란 Atomicity, Consistency, Isolation, Durability의 약자로서, 데이터베이스의 트랜잭션이 안전하게 수행되기 위한 4가지 필수적인 성질을 말한다.

👉   트랜잭션이란?

  • 트랜잭션(transaction)은 '쪼갤 수 없는 업무 처리의 최소 단위'를 말하며, 1초당 처리할 수 있는 트랜잭션의 개수를 TPS라고 한다.

  • 트랜잭션은 데이터베이스 서버에 여러 개의 클라이언트가 동시에 액세스 하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있는 경우 등 데이터 부정합을 방지하고자 할 때 사용한다.



ACID의 특징


Atomicity

  • 원자성(Atomicity)은 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다.

  • 모든 트랜잭션은 완전히 실행되거나, 아예 실행되지 않아야 한다. 트랜잭션은 가장 작은 업무의 단위이기 때문에, 진행되다 정지한 트랜잭션은 존재할 수 없다.

Consistency

  • 일관성(Consistency)은 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다. 따라서, 같은 DB에 트랜잭션을 실행한 결과는 언제나 같아야 한다.

  • 여러 트랜잭션을 순서대로 실행하는 것과 병렬적으로 실행하는 것이 같은 결과를 내야함을 강조할 때 주로 사용되는 속성이다.

Isolation

  • 독립성(Isolation)은 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다. 이것은 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다.

  • 공식적으로 고립성은 트랜잭션 실행내역은 연속적이어야 함을 의미한다. 성능관련 이유로 인해 이 특성은 가장 유연성 있는 제약 조건이다.

Durability

  • 지속성(Durability)은 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다. 이는 성공한 트랜잭션의 결과는 안정적으로 보존되어야 한다는 의미이다.

  • 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미한다. 전형적으로 모든 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌릴 수 있다.

profile
Developer who level up every day ✌️

0개의 댓글