정합성

데이터가 서로 모순 없이 일치하는 상태입니다.


예시: 정합성이 깨진 상태

계좌 이체: A → B로 10만원

A 잔액: 100,000 → 0       (출금 완료)
B 잔액: 0 → 0             (입금 안 됨)

총합이 100,000 → 0으로 줄어듦 → 정합성 깨짐

예시: 정합성이 유지된 상태

A 잔액: 100,000 → 0       (출금)
B 잔액: 0 → 100,000       (입금)

총합이 100,000 → 100,000으로 동일 → 정합성 유지

정합성이 깨지는 경우

상황예시
중복 데이터 불일치주문 테이블엔 "배송중", 배송 테이블엔 "배송완료"
참조 무결성 위반삭제된 유저의 주문이 남아있음
계산 불일치주문 총액과 상품 합계가 다름
동시성 문제재고 10개인데 동시에 15개 판매됨

ACID와의 관계

Consistency(일관성) = 데이터 정합성을 보장하는 것

트랜잭션 실행 전: 정합성 O
트랜잭션 실행 후: 정합성 O (보장)

정합성 vs 무결성

용어의미
무결성 (Integrity)데이터가 규칙을 만족 (NOT NULL, FK 등)
정합성 (Consistency)데이터끼리 서로 일치
-- 무결성: age가 음수면 안 됨
CHECK (age >= 0)

-- 정합성: 주문 총액 = 상품 가격 합계
orders.total = SUM(order_items.price)

비슷하게 쓰이지만, 정합성은 데이터 간의 일치에 초점이 있습니다.

CSLOG에서 보기