무결성이란, 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 얼만큼 일치 하는 지에 대한 정도를 의미한다.

image-20201128215300010

무결성의 종류에는 여섯가지가 존재한다.

  1. NULL 무결성

    • relation 의 특정 속성 값이 NULL 이 될 수 없도록 하는 규정
    • 예) 학생 릴레이션에서 성별 속성에 NULL 값이 올 수 없도록 제한했다면, 성별에는 NULL 이 존재해서는 안됨
  2. 고유 무결성

    • relation 의 특정 속성에 대해서 unique 한 값을 가지도록 조건이 주어진 경우, 그 속성값은 모두 달라야 한다는 규정
    • 예) 학생 릴레이션에서 학번 속성에 중복된 값이 없도록 제한
  3. 개체 무결성

    • 릴레이션에서 기본키를 구성하는 속성은 NULL 값이나 중복값을 가질 수 없다는 규정
      • 기본키: 테이블의 각 레코드를 고유하게 식별해주는 역할을 하는 키
    • 예) 학생 릴레이션에서 학번 속성이 기본키로 정의되면 레코드 입력 시 반드시 학번 속성은 포함해야 함. 또한, 기본키 속성은 중복을 허용하지 않음
  4. 참조 무결성

    • 외래키 값은 NULL 이거나 참조 릴레이션 (부모 테이블) 의 기본키 값과 동일해야 한다는 규정
      • 외래키: 두 테이블을 연결하는데 사용되는 키
      • 외래키를 포함하는 테이블을 자식 테이블이라 하고, 자식 테이블이 참조하는 테이블을 부모 테이블이라 함
    • 예) 수강 신청 테이블의 학번 속성은 학생 테이블의 학번 속성을 참조하는 외래키일 경우, 학생.학번 에 없는 속성 값을 수강 신청.학번 에 입력할 수 없음
  5. 도메인 무결성

    • 특정 속성의 값이 그 속성에 정의된 도메인에 속한 값이어야 한다는 규정
    • 예) 고등학생 테이블에서 학년에 대한 도메인은 13 (1 학년 ~ 3 학년), 즉, 해당 속성의 값은 반드시 13 이여야 함
  6. 키 무결성

    • 하나의 릴레이션에는 최소 키가 하나 이상이여야 한다는 규정