데이터베이스 무결성

강준우·2023년 2월 11일

데이터 무결성


데이터의 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것.

정확성은 중복이나 누락이 없는 상태, 일관성은 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태를 뜻한다. DBMS에서는 무결성을 지킬 수 있도록 연산에 제한을 둔다.

데이터 무결성 제약조건


  • 개체 무결성
    각 릴레이션의 기본키를 구성하는 속성은 Null값 또는 중복된 값을 가질 수 없다.

    [학생] 릴레이션에서 ‘학번’을 기본키로 지정했다면 ‘학번’ 속성은 NULL이 되어서는 안된다.

  • 참조 무결성
    외래키 값은 Null이거나 참조하는 릴레이션의 기본키 값과 동일해야 한다. 즉, 외래 키 속성 값이 상위 테이블의 인스턴스에 반드시 존재하거나 Null이어야 한다.
    외래 키는 참조 무결성을 지키기 위해 RESTRICTED와 CASCADE, SET NULL이라는 개념을 외래 키에 적용할 수 있도록 기능을 제공한다.

    [수강] 릴레이션에서 ‘학번’ 속성에는 [학생] 릴레이션의 ‘학번’ 속성에 없는 값은 입력할 수 없다.

  • 도메인 무결성
    속성들의 값은 정의된 도메인에 속한 값이어야 한다.

    ‘성별’이라는 속성에서 ‘남’, ‘여’를 제외한 데이터는 제한되어야 한다.

  • 고유 무결성
    특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 릴레이션의 각 튜플이 가지는 속성 값들은 서로 달라야 한다.

    [학생] 릴레이션에서 ‘이름’, ‘나이’는 서로 같은 값을 가질 수 있지만 ‘학번’의 경우, 각 튜플은 서로 다른 값을 가져야 한다.

  • NULL 무결성
    릴레이션의 특정 속성 값은 Null이 될 수 없다.

    [학생] 릴레이션 정의 시 ‘과목’ 속성에 NULL 값이 올 수 없도록 제한했다면 ‘과목’ 속성에 NULL이 있어서는 안된다.

  • 키 무결성
    각 릴레이션은 최소 한 개 이상의 키가 존재해야 한다.

profile
강준우

0개의 댓글