Integrity Constraint   무결성 제약조건

(2020-09-01)

도메인 무결성, 개체 무결성, 참조 무결성

1. 데이터 무결성 제약조건 이란?데이터베이스 테이블에 신뢰할 수 없는 데이터 입력을 못하도록 하는 제약조건
     - 즉, 데이타베이스데이터무결성(일관성,신뢰보장)을 위해,
     - DBMS 기능을 통해 정의,유지,감시코자 데이터들에게 부과하는 조건들

  ㅇ 실세계적인 관점에서는, 이를 업무 규칙(Business Rule) 이라고도 함


2. 데이터 무결성의 구분도메인 무결성 (SQL 구현 : CHECK,DEFAULT,NOT NULL 등)
     - 열(列)의 값들은, 일관성을 가져야 하며, 업무 규칙에 부합되어야 함
        . 특정 열의 속성별 범위 값 제한 규정 
        . (例, 남/여,true/false 등 만 가능, NULL 허용 여부)
     * 즉, 자료형,값 범위 등을 제한

  ㅇ 개체 무결성 (SQL 구현 : 기본키,UNIQUE)
     - 기본키에는, 중복이 없으며 널값을 허용 안함
        . (例, 단일 테이블 내 중복 레코드가 존재 않도록 하는 것 등 즉, 주민등록번호 등)
     * 즉, 유일한 식별자를 가질 것을 요구

  ㅇ 참조 무결성 (SQL 구현 : 외래키)
     - 타 테이블과 연관된 데이터가, 입력,수정,삭제 시에도 데이터 간에 정확한 참조관계를 유지시킴
        . (例, 존재 않는 값에 대한 참조를 허용하지 않는 등)
     * 즉, 기본 키외래 키 간의 관계가 항상 정확하게 유지됨을 보장


3. 데이터 무결성의 적용 방법선언적 방법 (Declarative)
     - 테이블과 컬럼 등을 정의할때, 데이터 무결성 조건을 함께 선언하여 정의하는 방법

  ㅇ 서술적 방법 (Descriptive)
     - 선언적 방법으로 구현하기	어려운 복잡한 업무 규칙을 적용할 때 사용 
     - 주로, 트리거스토어드 프로시저와 같은 스크립트 형태로 정의함
 

4. 데이터 무결성의 적용 형태도메인 무결성 (Domain Integrity) 제약조건
     - CHECK
        . 열의 값이 일정 범위 값으로 제한 (例, 남/여,true/false 등 만 가능)
     - DEFAULT
        . 테이블 열에 기본값을 지정해 둠
     - NOT NULL
        . 반드시 값이 입력되어야 함

  ㅇ 개체 무결성(Entity Integrity) 제약조건
     - PRIMARY KEY (기본키)
        . 기본키 열의 값이 중복이 없어야 하고, NULL 값을 허용 안함
     - UNIQUE
        . 테이블 열의 값을 항상 고유하게(중복 없도록) 함

  ㅇ 참조 무결성 (Referential Integrity) 제약조건
     - FOREIGN KEY (외래키)
        . 외래키는 참조 릴레이션기본키 값이거나 널 값 만 가능


5. 제약 조건 적용 例) (MySQL 경우)

  ㅇ 제약조건 확인 
     - DESC (데이터베이스명).(테이블 명);

  ㅇ 제약조건 추가 
     - 기본키 (개체무결성)
        . ALTER TABLE (부모테이블명) ADD CONSTRAINT (제약조건명) PRIMARY KEY (컬럼명);
     - 외래키 (참조무결성)
        . ALTER TABLE (자식테이블명) ADD CONSTRAINT (제약조건명) FOREIGN KEY (컬럼명)
          REFERENCES (부모테이블명) (PK 컬럼명) [ON DELETE CASCADE / ON UPDATE CASCADE];
           .. ON DELETE CASCADE : 부모테이블의 기본키 삭제시, 자식테이블에서도 같이 삭제
           .. ON UPDATE CASCADE : 부모테이블의 기본키 업데이트시, 자식테이블에서도 같이 업데이트

     - (NOT NULL)
        . ALTER TABLE (테이블명) MODIFY (컬럼명) (데이터타입) CONSTRAINT (제약조건명) NOT NULL;

  ㅇ 제약조건 삭제 
     - 제약조건명 있으면, 해당 제약조건 삭제 
        . ALTER TABLE (부모테이블명) DROP CONSTRAINT (제약조건명);
     - FOREIGN KEY 삭제
        . ALTER TABLE (자식테이블명) DROP FOREIGN KEY (제약조건명);


[데이터베이스 기초] 1. DBA 2. DBMS 3. 데이터 무결성 4. 데이터 무결성 제약조건 5. 스냅샷 6. 테이블스페이스 7. 데이터베이스 모델

 
        최근수정     요약목록     참고문헌