데이터베이스 무결성

From CS Wiki
권한 부여된 사용자들에 의해 야기될 수 있는 의미적 에러를 방지하고, 데이터베이스가 현실 세계의 올바른 데이터를 갖도록 보장하는 특성
구분 설명 예시
개체 무결성

(Entity Integrity)

  • 기본키는 반드시 값을 가짐(NOT NULL)
  • PK is not null
참조 무결성

(Referential Integrity)

  • 외래키는 참조되는 릴레이션의 PK거나 NULL이어야 함
  • Foreign Key
속성 무결성

(Attribute Integrity)

  • 속성은 지정된 형식에 맞는 값이어야 함
  • Data Type
  • Null/Not Null
키 무결성

(Key Integrity)

  • 한 릴레이션에 각 키는 유일해야 한다.
  • Primary Key
사용자정의 무결성

도메인 무결성

(Domain Integrity)

  • 속성은 업무적으로 정합한 값이어야 함
  • Check Constraint
  • SW Validation
  • 이에 대한 표준은 정해져 있지 않은 것으로 보인다[1]
    • 국내외 문서마다 분류 기준이 조금씩 다름
  • '제약조건'의 관점에서 보느냐 '무결성'의 관점에서 보느냐의 차이도 존재함
  • 초기 관계대수의 이론을 기준으로 보느냐, 현대 실무적 관점에서 보느냐의 차이도 존재함

참조 무결성 제약

Relational Integrity Constraint
기능 구분
Restrict
  • 부모 테이블의 참조 대상 키가 삭제 또는 변경되는 것을 불허
  • 자식 테이블의 참조값을 변경하는 경우, 부모 테이블에 있는 참조 대상 키가 있는 경우만 허용
Cascade 부모 테이블의 참조 대상 키가 삭제되면 자식 테이블의 참조 튜플 삭제
Nullify 부모 테이블의 참조 대상 키가 삭제되면 자식 테이블의 참조값을 Null로 변경
Default 부모 테이블의 참조 대상 키가 삭제되면 미리 정의한 Default 값으로 변경
  1. 확인 필요