728x90
반응형
ACID 중, Consistency는 정합성에 해당한다. 이 정합성과 무결성이 헷갈리는 거 같아서 간단하게 이를 정리하고자 블로그에 작성했다.
정합성
데이터들의 값이 서로 일치하는 상태
정합성 훼손 예시
Before
주문 정보 테이블
고객 번호 | 주문 번호 | 주문 금액 | .... |
1 | 1 | 2000 | |
1 | 2 | 3000 |
고객 정보 테이블
고객번호 | 고객 이름 | .... |
1 | 대우니 |
After
주문 정보 테이블
고객 번호 | 주문 번호 | 주문 금액 | .... |
1 | 1 | 2000 | |
1 | 2 | 3000 |
고객 정보 테이블
고객번호 | 고객 이름 | .... |
2 | 대우니 |
고객 정보 테이블의 고객번호를 1에서 2로 변경했지만, 주문 정보 테이블에는 고객번호가 변경되지 않았을 때, (데이터의 값이 서로 일치하지 않는다.)
데이터 정합성이 훼손되었다고 볼 수 있다.
무결성
데이터 값이 컬럼 저장 조건에 알맞게 정확한 상태
Before
주문 정보 테이블
고객 번호 | 주문 번호 | 주문 금액 | .... |
1 | 1 | 2000 | |
1 | 2 | 3000 |
고객 정보 테이블
고객번호 | 고객 이름 | .... |
1 | 대우니 |
After
주문 정보 테이블
고객 번호 | 주문 번호 | 주문 금액 | .... |
-1 | 1 | 2000 | |
-1 | 2 | 3000 |
고객 정보 테이블
고객번호 | 고객 이름 | .... |
-1 | 대우니 |
무결성 훼손 예시
고객 정보 테이블의 고객번호를 1에서 -1로 변경했으며, 주문정보 테이블에서 고객번호가 모두 -1로 반영되었다. (데이터의 값이 일치한다.)
그러나 고객번호는 반드시 1 이상의 값을 가져야 한다. (데이터의 값이 정확하지 않다.)
이런 상황에는 데이터 정합성은 이상이 없으나, 데이터 무결성은 훼손되었다고 볼 수 있다.
반응형
'DB' 카테고리의 다른 글
[트랜잭션] 정의 및 ACID (6) | 2024.09.16 |
---|