다섯 살도 알 수 있게 · DB/데이터

트랜잭션과 ACID가 뭐예요?

트랜잭션과 ACID를, 출납 전표가 반드시 지키는 네 가지 약속 이야기로 풀어봤어요.

상자 꺼냄 ✓, 장부 기록 ✗정전이 나서 전표 작업이 절반만 처리됐어요상자는 없어졌는데 장부엔 그대로예요

정전이 나서 전표 작업이 절반만 처리됐어요.상자는 없어졌는데 장부엔 그대로예요.

반쪽짜리 전표장부와 실제 상자 수가 달라서 다음 사람도 장부를 못 믿어요

반쪽짜리 작업이 남으면 장부를 믿을 수 없어요.장부와 실제 상자 수가 달라서 다음 사람도 장부를 못 믿어요.

ACID = 출납 전표가 반드시 지키는 네 가지 약속네 가지를 다 지켜야 진짜 믿을 수 있는 전표예요

ACID = 출납 전표가 반드시 지키는 네 가지 약속이에요.네 가지를 다 지켜야 진짜 믿을 수 있는 전표예요.

Atomicity전표 작업이 전부 되거나 전부 취소돼요
Consistency장부 규칙을 어기지 않아요
Isolation남의 작업에 섞이지 않아요
Durability도장 찍히면 사라지지 않아요
A-C-I-D 네 글자Atomicity — 전부 되거나 전부 취소반쪽짜리 없음Consistency — 장부 규칙을 안 어김규칙 위반 시 되돌림Isolation — 남의 작업에 영향 안 줌격리 수준으로 조절Durability — 도장 찍히면 안 사라짐정전에도 보존

ACID의 네 글자는 약속을 하나씩 뜻해요.Isolation은 격리 수준으로 세밀하게 조절해요.

ACID를 다 지키면 장부를 믿을 수 있어요대신 특급 출고대(인메모리 DB)보다 느릴 수 있어요장부 안전과 처리 속도는 종종 맞바꿔야 해요

ACID를 다 지키면 장부를 믿을 수 있지만, 전표 처리는 느려질 수 있어요.장부 안전과 처리 속도는 종종 맞바꿔야 해요.

한 줄로

ACID = 출납 전표(트랜잭션)가 지켜야 할 원자성·일관성·고립성·지속성 네 가지 약속.

트랜잭션은 데이터베이스에서 더 이상 나눌 수 없는 작업 단위이고, ACID는 그 트랜잭션이 안전하게 처리되기 위한 네 가지 성질이에요. Atomicity(전부 성공 또는 전부 실패), Consistency(제약조건 유지), Isolation(동시 트랜잭션 간 간섭 차단), Durability(커밋 후 영구 반영)로, Isolation은 격리 수준으로 강도를 조절해요.

어른들은 이렇게 불러요

트랜잭션
Transaction
전표 한 장의 작업 단위. 더는 쪼갤 수 없는 최소 단위예요.
원자성(Atomicity)
Atomicity
전부 되거나 전부 취소. 중간에 멈추는 상태가 없어요.
일관성(Consistency)
Consistency
장부 규칙을 어기지 않는 것. 제약조건을 항상 지켜요.
고립성(Isolation)
Isolation
남의 작업에 섞이지 않는 것. 격리 수준으로 세밀하게 조절해요. → 동시에 손댈 때 얼마나 가려 볼지
지속성(Durability)
Durability
도장 찍히면 사라지지 않는 것. 도장 찍힌 기록은 정전이 나도 장부에 남아요.
병행제어
Concurrency Control
동시에 손대도 안 부딪히게 막는 방법. ACID의 I(고립성)를 실제로 구현하는 방법이에요. → 동시에 안 부딪히는 규칙
인메모리 DB
In-Memory DB
디스크 대신 바로 꺼내는 출고대. 속도를 위해 지속성을 일부 타협하기도 해요. → 특급 출고대
NoSQL 모델링
NoSQL Modeling
상자 모양에 맞춰 선반을 바꾸는 창고. ACID를 관계형 창고만큼 엄격히 지키지 않는 제품이 많아요. → 자유로운 선반 창고
다음 이야기
동시에 손대도 안 부딪히게 막는 규칙 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →