티스토리 뷰

제약 조건의 정의

 제약 조건 : 데이터베이스에 저장되는 데이터의 정확성을 보장하기 위하여 키를 이용하여 입력되는 데이터에 제한으 주는 것

 개체 무결성 제약, 참고 무결성 제약 등이 해당됨



★★ 키(Key)의 개념 및 종류

 키는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플을 서로 구분할 수 있는 기준이 되는 애트리뷰트를 말함


 ★★ 후보키(Candidate Key)

  - 후보키는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분 집합, 즉 기본키로 사용할 수 있는 속성들을 말함

  - 하나의 릴레이션 내에서 중복된 튜플들이 있을 수 없으므로 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재함

  - 후보키는 릴레이션에 있는 모든 튜플에 대해서 유일성과 희소성을 만족시켜야 함

  - 유일성(Unique) : 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함

  - 최소성(Minimality) : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성으로만 구성되어야 함

  - 예) 학생 릴레이션에서 '학번'이나 '주민번호'는 다른 레코드를 유일하게 구별할 수 있는 기본키로 상요할 수 있으므로 후보키임


 ★★ 기본키(Primary Key)

  - 기본키는 후보키 중에서 선택한 주키(Main Key)임

  - 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성

  - Null 값을 가질 수 없음

  - 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없음

   * 학생 릴레이션에서는 '학번'이나 '주민 번호'가 기본키가 될 수 있고, 수강 릴레이션에서는 '학번' + '과목명'으로 조합해야 기본키가 만들어진다

   * '학번'이 학생 릴레이션의 기본키로 정의되면 이미 입력된 '1001'은 다른 튜플의 '학번' 속성의 값으로 입력할 수 없음

  ※ 널 값(Null Value) : 데이터베이스에서 아직 알려지지않거나 모르는 값으로서 '해당 없음' 등의 이유로 정보 부재를 나타내기 위해 사용하는, 이론적으로 아무것도 없는 특수한 데이터를 말한다


 대체키(Alternate Key)

  - 후보키가 둘 이상일 때 기본키를 제외한 나머지 호부키들을 말함

  - 보조키라고도 함

  - 예) 학생 릴레이션에서 '학번'을 기본키로 정의하면 '주민번호'는 대체키가 됨


 슈퍼키(Super Key)

  - 슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않음

  - 슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 희소성은 만족시키지 못함

  - 에) 학생 릴레이션에서는 '학번', '주민번호', '학번'+'주민번호', '주민번호'+'성명', '학번'+'주민번호'+'성명 등으로 슈퍼키를 구성할 수 있음

  ※ 최소성 : 학번'+'주민번호'를 사용하여 슈퍼키를 만들면 다른 튜플들과 구분할 수 있는 유일성은 만족하지만, '학번'이나 '주민번호' 하나만 가직도 다른 튜플들을 구분할 수 있으므로 최소성은 만족시키지 못한다


 ★★ 외래키(Foreign KEY)

  - 관계(Relationship)를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성을 이ㅗ래키라고 함

  - 외래키는 참조되는 릴레이션의 기본키와 대조되어 릴레이션 간에 참조 관계를 표현하는 데 중요한 도구임

  - 외래키로 지정되면 참조 릴레이션의 기본키게 없는 값은 입력할 수 없음

  - 예) 수강 릴레이션이 학생 릴레이션을 참조하고 있으므로 학생 릴레이션의 '학번'은 기본키이고, 수강 릴레이션의 '학번'은 외래키임

  - 예)수강 릴레이션의 '학번'에는 학생 릴레이션의 '학번'에 없는 값은 입력할 수 없음

  ※ 참조 릴레이션 : 외래키를 포함하는 릴레이션이 참조하는 릴레이션이고, 대응되는 기본키를 포함하는 릴레이션이 참조 릴레이션이다. 여기서는 수강 릴레이션이 참조하는 릴레이션이고, 학생 릴레이션이 참조 릴레이션이다.




★★ 무결성

 개체 무결성

  - 릴레이션에서 기본키를 구성하는 속성은 널(NULL) 값이나 중복 값을 가질 수 없음

  - 예) 학생 릴레이션에서 '학번'이 기본키로 정의되면 튜플을 추가할 때 '주민번호'나 '성명' 필드에는 값을 입력하지 않아도 되지만 '학번' 속성에는 반드시 값을 입력해야 하낟. 또한 '학번' 속성에는 이미 한 번 입력한 속성값을 등록하여 입력할 수 없음

 ★★ 참조 무결성

  - 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함. 즉 릴ㄹ이션은 참조할 수 없는 외래키 값을 가질 수 없음

  - 외래키와 참조하려는 테이블의 기본키는 도메인과 속성 개수가 같아야 함

  - 예) 수강 릴레이션의 '학번' 속성에는 학생 릴레이션의 '학번' 속성에 없는 값은 입력할 수 없음

  - 예) 수강 릴레이션의 '학번'과 학생 릴레이션의 '학번' 속성에는 같은 종류의 데이터가 입력되어 있어야 하며, 학생 릴레이션의 기본키가 '학번+이름' 이었다면 수강 릴레이션의 외래키도 '학번'+'이름'으로 구성되어져야 함


공지사항
최근에 올라온 글
Total
Today
Yesterday