JuBin's personal study blog

[DataBase] 트랜잭션의 특성(ACID) 본문

DataBase

[DataBase] 트랜잭션의 특성(ACID)

JuBin 2023. 5. 21. 22:38
반응형
ACID는 데이터베이스 트랜잭션의 특성을 설명하는 데 사용되는 용어입니다. ACID는 Atomicity(원자성), Consistency(일관성), Isolation(고립성), Durability(지속성)의 첫 글자를 따온 약어입니다. ACID 원칙은 데이터의 정확성과 무결성을 보장합니다.

 

Atomicity(원자성)

이 원칙은 트랜잭션이 데이터베이스에 모두 적용되거나, 전혀 적용되지 않아야 함을 의미합니다.(All or Nothingg) 즉, 트랜잭션의 모든 작업이 성공적으로 완료되거나, 아니면 어떠한 변화도 없어야 합니다. 예를 들면, 하나의 은행 계좌에서 다른 계좌로 돈을 이체하는 경우, 송금과 입금이 동시에 성공하거나 실패해야 합니다. 두 연산 중 하나만 성공하는 경우는 없어야 합니다.

 

Consistency(일관성)

이 원칙은 트랜잭션 시작 전과 후에 데이터베이스의 상태가 일관되어야 함을 의미합니다. 트랜잭션은 데이터베이스의 상태를 하나의 유효한 상태에서 다른 유효한 상태로 변환해야 합니다.

데이터베이스의 '일관성 있는 상태' 데이터베이스의 무결성 제약 조건을 충족하는 상태 의미합니다. 이러한 제약 조건에는 엔터티 무결성, 참조 무결성 등이 포함되며, 이는 데이터의 정확성을 보장하는 도움이 됩니다.

일관성 속성에 대한 예시로는 은행 계좌에서 금액을 인출할 때는 계좌의 잔고가 음수가 되어서는 안됩니다. 또는 숫자컬럼에 문자열값을 저장이 안되도록 보장해줍니다.

 

Isolation(고립성)

이 원칙은 각 트랜잭션이 독립적으로 실행되어야 함을 의미합니다. 동시에 실행되는 여러 트랜잭션이 서로에게 영향을 주어서는 안됩니다. 예를 들어, 두 사람이 동시에 같은 계좌에서 돈을 인출하려고 하는 경우, 두 트랜잭션은 서로에게 영향을 주지 않아야 합니다.

예시처럼 동시에 발생하는 여러 트랜잭션이 서로 간섭하지 않도록 보장하는 원칙입니다. 이것은 동시에 수행되는 여러 트랜잭션에도 불구하고 각 트랜잭션을 마치 독립적으로, 나아가 순차적으로 실행되는 것처럼 보이게 만듭니다.

고립 수준(Isolation Level)는 일반적으로 네가지로 분류됩니다.
https://jubin-developer.tistory.com/121

 

[DataBase] 트랜잭션 특성 중 고립 수준(Isolation Level)

Isolation(고립성)은 데이터베이스 트랜잭션에서 중요한 속성 중 하나로, 동시에 발생하는 여러 트랜잭션이 서로 간섭하지 않도록 보장하는 원칙입니다. 이것은 동시에 수행되는 여러 트랜잭션에

jubin-developer.tistory.com

 

Durability(지속성)

이 원칙은 일단 트랜잭션이 성공적으로 완료되면, 그 결과가 영구적으로 데이터베이스에 저장되어야 함을 의미합니다. 시스템이 장애가 나거나 재부팅되더라도 작업이 완료된 트랜잭션의 결과는 데이터베이스에 계속 유지되어야 합니다.

 

반응형