무결성과 정합성이란 무엇인가?

양시준·2022년 2월 14일
2

TIL

목록 보기
5/21

데이터 무결성(Data Integrity)

개념

데이터 무결성이란 데이터 값이 정확한 상태를 의미한다.

무결성을 지키는 것이 데이터 모델링의 최고 목표이다.

Data Integrity가 주로 데이터 무결성으로 번역되나, 정확하다는 의미에서 데이터 완전성이나 정확성이라는 표현이 올바르다는 의견이 있다.

데이터 정합성(Data Consistency)

개념

어떤 데이터들이 값이 서로 일치하는 상태를 의미한다.

비정규형을 사용해 아노말리 (anomaly : 이상현상)가 발생하면 정합성이 지켜지지 않는다.

무결성과 정합성의 예시

정합성은 지켜지지만 무결성이 지켜지지 않는 경우가 있다.

예시

무결성 훼손 예시

주문정보 테이블에서 고객번호가 모두 -1으로 입력되어 있고,
고객정보 테이블에도 -1의 값을 갖는 고객이 존재한다. (데이터의 값이 일치한다.)

그러나 고객번호는 반드시 1 이상의 값을 가져야 한다. (데이터의 값이 정확하지 않다.)

이런 상황에는 데이터 정합성은 이상이 없으나, 데이터 무결성은 훼손되었다고 볼 수 있다.

정합성 훼손 예시

위 예시에서 주문정보 테이블의 고객번호를 -1에서 2로 변경했지만, 고객정보 테이블에는 고객번호가 변경되지 않았을 때, (데이터의 값이 서로 일치하지 않는다.)
데이터 정합성이 훼손되었다고 볼 수 있다.

실생활에서 예시를 들면 '술을 마시고 운전을 했지만 음주운전을 하지 않았다'가 정합성이 지켜지지 않은 것이다.

데이터 무결성의 종류

데이터 무결성은 실체 무결성, 영역 무결성, 참조 무결성, 사용자 정의 무결성이 있다.

엔티티 무결성(Entity Integrity)

  • 모든 인스턴스는 고유한 값 또는 NULL 값을 가지지 않는 속성이나 속성 그룹을 가져야 한다.
  • 엔터티 무결성은 식별자(Identifier)에 의해서 지켜질 수 있다.

도메인 무결성(Domain Integrity)

  • 엔터티의 특정 속성 값은 같은 데이터 타입과 길이, 같은 널 여부, 같은 기본 값, 같은 허용 값 등 동일한 범주의 값만이 존재해야 한다.
  • 도메인 무결성은 기본 값이나 널 여부, 체크 조건 등으로 지켜질 수 있다.

참조 무결성(Referential Integrity)

  • 엔터티의 외래 식별자 속성은 참조되는 엔터티의 주 식별자 값과 일치하거나 널(Null) 값이어야 한다.
  • 참조 무결성은 외래 키 제약조건(foreign key constraint)에 의해서 지켜진다.

업무 무결성(Business Integrity)

  • 기업에서 업무를 수행하는 방법이나 데이터를 처리하는 규칙을 의미한다.
  • 업무 무결성을 물리적으로 강제하는 대표적인 방법에 트리거(Trigger)가 존재한다.

데이터 무결성 요약

분류설명
엔티티 무결성(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

profile
야크 털 깎기와 러버덕 디버깅을 좋아하는 개발자

0개의 댓글