다섯 살도 알 수 있게 · DB/데이터
트랜잭션과 ACID가 뭐예요?
트랜잭션과 ACID를, 출납 전표가 반드시 지키는 네 가지 약속 이야기로 풀어봤어요.
정전이 나서 전표 작업이 절반만 처리됐어요.상자는 없어졌는데 장부엔 그대로예요.
반쪽짜리 작업이 남으면 장부를 믿을 수 없어요.장부와 실제 상자 수가 달라서 다음 사람도 장부를 못 믿어요.
ACID = 출납 전표가 반드시 지키는 네 가지 약속이에요.네 가지를 다 지켜야 진짜 믿을 수 있는 전표예요.
Atomicity전표 작업이 전부 되거나 전부 취소돼요
Consistency장부 규칙을 어기지 않아요
Isolation남의 작업에 섞이지 않아요
Durability도장 찍히면 사라지지 않아요
ACID의 네 글자는 약속을 하나씩 뜻해요.Isolation은 격리 수준으로 세밀하게 조절해요.
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를 관계형 창고만큼 엄격히 지키지 않는 제품이 많아요. → 자유로운 선반 창고
다음 이야기
동시에 손대도 안 부딪히게 막는 규칙 →