본문 바로가기

관계형데이터모델링(김기창)

2.2 무결성(Integrity)

 

◈ 데이터 무결성(Data Integrity) : 데이터 값이 정확한 상태


◈ 데이터 정합성 : 어떤 데이터들이 값이 서로 일치함.

- 중복 데이터를 많이 사용하면 데이터끼리 정합성을 맞추기 어렵다.

- 비정규형을 사용해 아노말리(Anomaly : 이상현상)가 발생하면 정합성이 깨진다.

- 정합성은 데이터가 서로 모순 없이 일관되게 일치해야 함을 의미 

( cf : 무결성-데이터가 정확하고 완전해야 함을 의미)


◈ 어떤 데이터는 정합성은 이상이 없으나, 무결성이 훼손 : 중복 데이터가 다 틀린 값으로 일치(정합성 O, 무결성 X)

따라서 무결성의 정의가 더 광범위하고 무결성을 지키는 것이 데이터 모델링의 최고 목표.



◈ 관계형 데이터베이스의 가장 큰 목표는 "데이터 무결성을 높이는 것"

=무결성의 종류=

1) 엔터티 무결성(Entity Integrity) = 개체 무결성

: 모든 인스턴스는 고유한 값(=같은 값 존재 X)이거나, 널(Null) 값을 가지면 안 됨

2) 참조 무결성(Referential Integrity)

: 참조되는 엔터티의 주 식별자 값과 일치(=참조하는 기본키 값 중에 하나와 일치)하거나, 널(Null) 값이어야 함.

  참조 무결성은 FK(Foreign Key) 제약에 의해 지켜짐.

3) 도메인 무결성(Domain Integrity)

: 속성 값과 관련된 제약.

  같은 속성에 사용되느니 값들은 같은 성격의 값.

  기본 값이나 널 여부, 체크 조건 등으로 지켜질 수 있음.

4) 업무 무결성(Business Integrity)

: 기업에서 업무를 수행하는 방법이나 데이터를 처리하는 규칙을 의미

  넓게 보면 엔터티 무결성, 참조 무결성, 도메인 무결성도 업무 무결성에 포함될 수 있음.

  업무 무결성은 범위가 넓어 주로 프로그램에서 체크.

  업무 무결성을 물리적으로 강제하는 대표적인 방법으로는 트리거(Trigger)가 존재.

  ex) '주문 금액이 3만원 이상이면 배송비 무료', '초회(=첫회) 보험료를 입금하지 않은 보험계약은 효력 없음" 등.