데이터 무결성이란 데이터 값이 정확한 상태를 의미한다.
무결성을 지키는 것이 데이터 모델링의 최고 목표이다.
Data Integrity가 주로 데이터 무결성으로 번역되나, 정확하다는 의미에서 데이터 완전성이나 정확성이라는 표현이 올바르다는 의견이 있다.
어떤 데이터들이 값이 서로 일치하는 상태를 의미한다.
비정규형을 사용해 아노말리 (anomaly : 이상현상)가 발생하면 정합성이 지켜지지 않는다.
정합성은 지켜지지만 무결성이 지켜지지 않는 경우가 있다.
주문정보 테이블에서 고객번호가 모두 -1으로 입력되어 있고,
고객정보 테이블에도 -1의 값을 갖는 고객이 존재한다. (데이터의 값이 일치한다.)
그러나 고객번호는 반드시 1 이상의 값을 가져야 한다. (데이터의 값이 정확하지 않다.)
이런 상황에는 데이터 정합성은 이상이 없으나, 데이터 무결성은 훼손되었다고 볼 수 있다.
위 예시에서 주문정보 테이블의 고객번호를 -1에서 2로 변경했지만, 고객정보 테이블에는 고객번호가 변경되지 않았을 때, (데이터의 값이 서로 일치하지 않는다.)
데이터 정합성이 훼손되었다고 볼 수 있다.
실생활에서 예시를 들면 '술을 마시고 운전을 했지만 음주운전을 하지 않았다'가 정합성이 지켜지지 않은 것이다.
데이터 무결성은 실체 무결성, 영역 무결성, 참조 무결성, 사용자 정의 무결성이 있다.
분류 | 설명 |
---|---|
엔티티 무결성(Entity Integrity) | 엔티티는 각 인스턴스를 유일하게 식별할 수 있는 속성이나 속성 그룹을 가져야 한다. |
도메인 무결성(Domain Integrity) | 칼럼 데이터 타입, 길이, 유효 값이 일관되게 유지되어야 한다. |
참조 무결성(Referential Integrity) | 데이터 모델에서 정의된 실체 간의 관계 조건을 유지하는 것이다. |
업무 무결성(Business Integrity) | 다양하게 정의될 수 있는 비즈니스 규칙이 데이터적으로 일관성을 유지하는 것이다. |
출저
DATA ON-AIR https://dataonair.or.kr/db-tech-reference/d-guide/da-guide/?mod=document&uid=296
구루비 커뮤니티 http://www.gurubee.net/lecture/3583
네이버 블로그 https://blog.naver.com/PostView.naver?blogId=remocon33&logNo=222479119313&parentCategoryNo=53&categoryNo=&viewDate=&isShowPopularPosts=true&from=search