▶ 데이터 무결성(Data Integrity): 데이터 값이 정확한 상태
▶ 데이터 정합성(Data Consistency): 특정 데이터들의 값이 서로 일치한 상태.
- 중복 데이터를 많이 사용하면 데이터 간의 정합성을 맞추기 어렵다.
- 비정규형을 사용해 아노말리(Anomaly: 이상현상)가 발생하면 정합성이 깨진다.
- 저합성은 데이터가 서로 모순 없이 일관되게 일치해야 함을 의미한다.
정합성 오류 예시
: 고객정보 테이블에서 A 고객의 고객번호를 C001에서 E001로 수정하였으나, 주문정보 테이블의 고객번호는 C001로 변경되지 않았을 경우 데이터 정합성 훼손. (고객정보 테이블의 데이터와 주문정보 테이블의 데이터 값이 서로 일치하지 않음)
▶ 데이터의 정합성은 이상이 없으나 무결성이 훼손되는 경우 발생: 중복 데이터 값이 다 틀린 값으로 일치
정합성 O, 무결성 X 예시
: A 고객의 성별 정보가 고객정보 테이블에서도 P라고 입력되었고, 주문정보 테이블에서도 P라고 되어있다. 이 경우 데이터의 값이 일치하여 데이터 정합성은 이상이 없다. 그러나 고객의 성별 정보는 반드시 M 혹은 F라는 값을 가져야 한다. 즉, 데이터의 값이 정확하지 않아 데이터의 무결성은 훼손된 것이다.
⇒ 관계형 데이터베이스의 가장 큰 목표는 "데이터 무결성을 높이는 것"
▶ 데이터 무결성의 제약조건
1) 도메인 무결성(Domain Integrity)
- 릴레이션 내의 투플(≒ 레코드, 인스턴스)들이 각 속성의 도메인에 지정된 값만을 가져야 한다.
- 엔터티의 특정 속성값은 데이터 타입의 길이, 같은 널 여부, 같은 기본값, 같은 허용 값 등 동일한 범주의 값만이 존재.
- 속성값과 관련된 무결성. 데이터 형식(type). 널(null/not null), 기본값(default), 체크(check) 등을 사용하여 지정
2) 개체 무결성(Entity Integrity)
- 기본키 제약(primary key constraint)이라고도 한다.
- 모든 인스턴스는 Null 값을 가져서는 안 되며 릴레이션 내에 오직 하나의 값만 존재해야 한다. (고유한 값이어야 한다)
- 참조 무결성과 함께 관계 데이터 모델의 핵심 개념
3) 참조 무결성(Referential Integrity)
- 외래키 제약(foreign key constraint)이라고도 한다.
- 참조되는(제공하는) 릴레이션을 부모(parent), 참조하는(제공받는) 릴레이션을 자식(child)이라고 한다.
- 부모 릴레이션의 도메인과 다른 값으로 삽입 및 수정되거나, 자식 릴레이션에서 참조하고 있는 값을 부모 릴레이션에서 삭제하거나 다른 값으로 변경할 수 없다.
- 참조되는 엔터티의 주 식별자 값고 일치하거나 Null 값이어야 한다.
4) 업무 무결성(Business Integrity)
- 기업에서 업무를 수행하는 방법이나 데이터를 처리하는 규칙.
- 업무 무결성을 물리적으로 강제하는 대표적인 방법으로는 트리거(Trigger)가 존재한다.
- 다양하게 정의될 수 있는 비즈니스 규칙이 데이터적으로 일관성을 유지하는 것이다.
참고
- https://dbaguru.tistory.com/432
- SQL SERVER로 배우는 데이터베이스 개론과 실습
댓글