[Database] 관계 데이터 모델의 제약 조건


데이터 무결성

  1. 데이터베이스의 장점
    • 데이터 공유 및 용이한 접근
    • 데이터 중복 최소화, 일관성, 무결성, 보안성 유지
    • 데이터의 표준화 가능
    • 데이터의 저장 공간 절약 및 집중화
  2. 데이터 무결성

    • 데이터베이스에 저장된 데이터의 일관성과 정확성을 유지하는 것
    • 일관성과 정확성이 없는 데이터베이스는 정보로서 부적격하다.
    • 유지 방법

      • 투플의 삽입, 삭제, 수정시 데이터의 제약 조건을 준수하는지 확인하여야 한다.
    • 예 : 쇼핑몰에서 회원이 탈퇴한 경우

      • 탈퇴한 회원 정보를 삭제하면, 회원이 구매한 정보에 문제가 발생
      • 구매내역까지 삭제하면, 쇼핑몰의 총 매출에 문제가 발생
  3. 데이터베이스 관리시스템의 데이터 무결성 유지

    • 무결성을 위반하는 데이터 저장 거절


무결성 제약 조건

  1. 도메인 무결성 제약 조건 (Domain Integrity Constraint)

    • 도메인 제약(Domain Constraint)
    • 릴레이션 내의 투플들이 각 속성의 도메인에 지정된 값만 가져야 한다는 조건
    • 예 : 주문 릴레이션의 주문일자 속성

      • 날짜 데이터만 사용하여야 함.
      • 문자 등의 다른 자료형을 사용하면 안됨
    • 구현 방법

    • SQL 문에서 데이터 형식(Type), 널(NULL / NOT NULL), 기본 값(Default), 체크(Check)등을 사용하여 지정 (일반 프로그래밍 언어에서 변수형 선언과 유사)
  2. 개체 무결성 제약조건 (Entity Integrity Constraint)

    • 기본키 제약 (Primary Key Constraint)라고도 함.
    • 기본키의 무결성을 위한 제약 조건
    • 기본키의 특징을 유지하기 위한 조건
      • NULL 값을 가져서는 안된다.
      • 릴레이션 내에 오직 하나의 값만 존재하여야 한다.
    • 관계 데이터 모델의 핵심 개념
    • 투플 삽입시 개체 무결성 제약 조건 수행



    • 투플 수정시 개체 무결성 제약 조건 수행

      • 삽입 연산과 동일하게 제약에 따라 처리된다.
      • 동일한 값으로 수정시 제약을 검색한 후 위배되면 수정이 거부된다.
    • 투플 삭제시 개체 무결성 제약 조건 수행

      • 특별한 확인이 필요하지 않으며 즉시 수행된다.
      • 단, 참조 무결성 제약 조건에 의하여 다른 릴레이션에서 기본키를 참조하고 있으면, 바로 삭제하지 않는다.
  3. 참조 무결성 제약조건 (Referential Integrity Constraint)

    • 외래키 제약 (Foreign Key Constraint) 라고도 함.
    • 릴레이션 간의 참조 관계를 선언하는 제약조건
    • 부모(Parent) 릴레이션과 자식(Child) 릴레이션 관계

      • 부모 릴레이션 : 참조를 제공하는 릴레이션 (기본키)
      • 자식 릴레이션 : 참조를 제공받는 릴레이션 (외래키)
    • 자식 릴레이션의 값은 부모 릴레이션의 제약을 받는다.

      • 자식 릴레이션의 값이 부모 릴레이션의 도메인과 다른 값으로 삽입, 수정될 경우 거부
      • 자식 릴레이션에서 참조하고 있는 값을 부모 릴레이션에서 삭제하거나 다른 값으로 변경할 경우 거부
    • 투플 삽입시 참조 무결성 제약 조건 수행



    • 투플 삭제시 참조 무결성 제약 조건 수행

      • 자식 릴레이션에서 투플이 삭제되는 경우 : 부모 릴레이션에는 영향이 없으므로 바로 삭제
      • 부모 릴레이션에서 투플이 삭제되는 경우 : 문제 발생되며 조치 방법

        (가) 즉시 작업 중지 (나) 자식 릴레이션의 관련 투플을 삭제 (다) 자식 릴레이션의 관련 투플을 설정된 다른 값으로 변경 (라) 자식 릴레이션의 관련 투플을 NULL 값으로 설정



    • 투플 수정시 참조 무결성 제약 조건 수행

      • 부모 릴레이션의 투플이 수정되는 경우

        (가) 삭제 옵션에 따라 처리 (나) 문제가 없으면 삽입 제약 조건에 따라 처리



  4. 기타 제약 조건

    (1) 고유성 제약조건 (Unique Constraint)

    • 키 제약(Key Constraint)라고도 함.
    • 키 속성을 유지하기 위한 제약

      • 키의 모든 값은 달라야 한다.
    • 단, NULL 값을 허용한다.

      • 키는 NULL 값을 허용하지 않는다.