본문 바로가기
Learning/DB SQL 가이드

DB 모델링 - 1. 데이터 모델링 기본 개념 : 1.2 무결성

by Pronician 2015. 10. 21.
반응형

1.2 무결성

 

무결성이란?

   ▶ 무결성(Integrity)은 흠이 없이 온전함을 의미

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

 

정합성이란?

   ▶ 어떤 데이터들의 값이 서로 일치하는 상황

   " 정합성은 데이터가 서로 모순이 없이 일관되게 일치해야 한다는 의미, 무결성은 데이터가 정확하고 완전해야 한다는 의미 "

 

무결성의 종류

   1) 엔터티 무결성(Entity Integrity)

   ▶ 엔터티에 존재하는 모든 인스턴스는 고유해야 하며 널(Null)값을 가지면 안됨

   ▶ 한 엔터티에는 동일한 주식별자가 존재할 수 없으며 주식별자 속성은 널(Null)값 허용 불가

   ▶ 엔터티 무결성은 식별자(Identifier)에 의해서 지켜질 수 있다.

 

   2) 참조 무결성(Referential Integrity)

   ▶ 엔터티의 외래식별자 속성은 참조되는 엔터티의 주식별자가 값과 일치하거나 널(Null) 값이어야 함

   ▶ 외래식별자 속성 값은 상위 엔터티의 인스턴스에 반드시 존재하거나 널(Null)이어야 함

   ▶ 참조 무결성은 FK(Foreign Key)제약에 의해서 지켜진다.

 

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

   ▶ 엔터티의 특정 속성 값은 데이터 타입과 길이, 같은 널 여부, 같은 기본 값, 같은 허용 값 등 동일한 범주의 값만이 존재해야 한다.

   ▶ 도메인 무결성은 기본 값이나 널 여부, 체크 조건 등으로 지켜질 수 있다.

 

   4) 업무 무결성(Business IntegritY)

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

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

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

 

참조/업무 무결성을 지키기 위한 다양한 규칙

   1) 입력 규칙

   ▶ Dependent 입력 규칙 : 상위(부모) 엔터티에 해당하는 주식별자 값이 존재할 때만 하위(자식) 엔터티의 외래 식별자에 입력 가능

   ▶ Automatic 입력 규칙 : 상위(부모) 엔터티에 해당하는 주식별자 값이 없을 때 상위(부모) 엔터티에 주식별자를 생성

   ▶ Default 입력 규칙 : 상위(부모) 엔터티에 해당하는 주식별자 값이 없을 때 하위(자식) 엔터티의 외래 식별자에 기본 값으로 입력

                                 외래 식별자에 기본 값이 설정돼 있어야 함

   ▶ Nullify 입력 규칙 : 상위(부모) 엔터티에 해당하는 주식별자 값이 없을 때 하위(자식) 엔터티의 외래식별자에 널(Null) 값으로 입력

                                외래 식별자는 널(Null) 허용으로 설정해야 함

 

   2) 삭제 규칙

   ▶ Restrict 삭제 규칙 : 상위(부모) 엔터티의 주식별자를 삭제할 때, 같은 값이 하위(자식) 엔터티의 외래식별자에 없을 때만 상위(부모) 엔터티의  

                                  주식별자 삭제를 허용

   ▶ Cascade 삭제 규칙 : 상위(부모) 엔터티의 주식별자를 삭제할 때, 같은 값이 하위(자식) 엔터티의 외래식별자에 존재하면 해당 값을 모두 삭제

                                     하고 나서 상위(부모) 엔터티의 주식별자 삭제

   ▶ Default 삭제 규칙 : 상위(부모) 엔터티의 주식별자를 삭제할 때, 같은 값이 하위(자식) 엔터티의 외래식별자에 존재하면 해당 값을 모두 기본 값

                                 으로 수정하고 나서 상위(부모) 엔터티의 주식별자 삭제

   ▶ Nullify 삭제 규칙 : 상위(부모) 엔터티의 주식별자를 삭제할 때, 같은 값이 하위(자식) 엔터티의 외래식별자에 존재하면 해당 값을 모두 널(Null)

                                값으로 수정하고 나서 상위(부모) 엔터티의 주식별자 삭제

 

   3) 수정 규칙

   ▶ Restrict 수정 규칙 : 상위(부모) 엔터티의 주식별자를 업데이트 할 때, 같은 값이 하위(자식) 엔터티의 외래식별자에 없을 때만 상위(부모) 엔터

                                   티의 주식별자를 수정

   ▶ Cascade 수정 규칙 : 상위(부모) 엔터티의 주식별자를 업데이트 할 때, 같은 값이 하위(자식) 엔터티의 외래식별자에 존재하면 해당 값을 모두

                                     업데이트한 후에 상위(부모) 엔터티의 주식별자를 수정

 

DBMS 제약

 제약

 특징

 주요무결성

 Primary Key

 ▶ 엔터티에서 PK로 지정된 속성에는 동일한 값을 가질 수 없다.

 ▶ PK로 지정된 속성에는 널(Null) 값을 가지면 안된다.

 엔터티 무결성

 Unique

 ▶ 엔터티에서 Unique로 지정된 속성에는 동일한 값을 가질 수 없다.

 ▶ Unique로 지정된 속성에는 널(Null) 값을 가질 수 있다.

 ▶ 엔터티에 여러개의 Unique 속성이 지정될 수 있다.

 엔터티 무결성

 Foreign Key

 ▶ 관계 속성의 FK값은 참조 엔터티의 PK 속성에 존재하거나 널(Null)이어야 한다.

 참조 무결성

 Check

 ▶ 속성 값에는 특정한 범위의 값이나 특정 규칙을 따르는 값만이 존재할 수 있다.

 ▶ 데이터를 추가할 때마다 해당 값이 해당 컬럼들에 지정된 Check 제약을 위배하는지 검사함으로써 무결성 유지

 도메인 무결성

 Default

 ▶ 특정 컬럼에 대해 명시적으로 값을 입력하지 않은 경우에 자동적으로 지정된 값을 삽일할 수 있도록 함으로써

     무결성 유지

 도메인 무결성

 Data Type

 ▶ 속성에 데이터 타입을 지정해 특정 형식을 유지할 수 있다.

 도메인 무결성

 Null/Not Null

 ▶ 속성 값이 널(Null) 일 수 있는지, 값이 반드시 존재해야 하는지를 지정한다.

 도메인 무결성

 Trigger

 ▶ 속성 값이 입력되거나 수정, 삭제 될 때 자동적으로 데이터를 처리할 수 있도록 지정

 업무 무결성

 

 [관련 keyword]

   ▶ 참조무결성을 이해하고 있다.

   ▶ 데이터의 무결성을 이해하고 있다.

   ▶ PK와 Unique Index의 차이점을 이해하고 있다.

   ▶ 체크 Constraints와 Default의 차이점을 이해하고 있다.

   ▶ 외래키의 특징을 이해하고 있다.

반응형

댓글