Integrity Constraint   무결성 제약조건

(2023-07-27)

Constraint , 제약조건 , 도메인 무결성, 개체 무결성, 참조 무결성


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 (기본키)
        . 기본키로 지정한 열의 값이, 중복이 없어야 하고(즉,유일성,unique), 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. 데이터베이스 모델  
SQL
   1. SQL   2. SQL 쿼리 (SELECT 구문)   3. SQL 활용   4. SQL 조인   5. SQL 함수   6. DDL (데이터 조작:테이블 생성/변경)   7. 제약조건   8. SQL 용어  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"