본문 바로가기
CS/DB

[DB] 테이블 키의 5가지 종류와 무결성 제약 3가지 종류

by jangThang 2023. 4. 23.
반응형

  DB 테이블 키에는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있습니다. 그리고 무결성 제약에는 개체 무결성, 참조 무결성, 도메인 무결성이 있습니다. 이들에 대해 자세히 알아보겠습니다.

 

[ Contents ]

     

     

    1. 테이블 키의 종류

    - 후보키(Candidate Key): 최소 조합으로 만든 유일한 키
    - 기본키(Primary Key): 선정된 후보키
    - 대체키(Alternate Key): 후보키 중 기본키를 제외한 나머지 키
    - 슈퍼키(Super Key): 최소 조합이지만 유일하지는 않은 키
    - 외래키(Foreign Key): 다른 테이블에서 해당 테이블을 참조할 때 쓰는 기본키

     

     테이블 키에는 위와 같이 5가지 종류가 있습니다. 후보키, 기본키, 대체키, 슈퍼키, 외래키입니다.

     테이블 키는 특정 속성(칼럼)의 조합을 뜻합니다. 보통 2개 이상의 속성을 조합해서 키를 만듭니다.

     (물론 순번과 같이 임의로 만든 단일 키도 있습니다. ex 학생번호, 사원번호 등)

     

     실무에서는 PK(기본키), FK(외래키)만 활용하지만, 나머지도 알아두셔야 어떻게 PK와 FK가 선정되는지 이해하기 쉽습니다. 또 PK를 선정할 때도 도움이 되죠.

     

     

     

    2. 무결성 제약조건

    1) 개체 무결성

     개체 무결성: 기본키는 후보키 중에서 선정한 키로서, NULL일 수 없다.

     

     기본키(PK)는 N.N(Not NULL) 조건을 갖습니다. 반드시 입력해야 하며, 중복값을 가질 수 없습니다.

     예를 들어, PK로 주민번호를 설정할 수 있죠. 왜냐하면 시민들은 모두 고유한 주민번호를 갖고 있으니까요. 하지만 휴대폰 번호로 하기에는 문제가 있습니다. 아직 휴대폰 번호가 없는 사람이 있을 수 있기 때문에, PK로 선정할 수 없습니다.

     

     

     

    2) 참조 무결성

    참조 무결성: 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다.

     

     기본키(PK)는 개체 무결성 원칙에 따라, NULL일 수 없습니다. 타 테이블의 기본키를 참조하는 외래키의 값도 당연히 NULL일 수 없을 거 같으나... 외래키는 NULL이 가능합니다. 타 테이블에는 참조할 기본키가 없을 수도 있거든요.

     다만, 참조할 키가 있다면 반드시 기본키 값과 동일해야 합니다.

     

     예를 들어 [지원서 테이블]에 '첨부파일' 칼럼이 있고, [파일 테이블]에 첨부파일 정보가 있다고 합시다. 그런데 아직 지원자가 첨부파일을 첨부하지 않았을 수 있죠. 이럴 때에는 NULL로 첨부파일 칼럼을 설정해도 됩니다.

     

     

     

    3) 도메인 무결성

    도메인 무결성: 특정 속성(칼럼)의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다.

     

     성별이나 지역 등 특정 칼럼에 들어가야 할 값이 정해진 경우가 있습니다. 이런 경우, 보통 별도의 코드 테이블로 칼럼에 들어갈 수 있는 값을 제한합니다.

     사용자는 보통 콤보박스 형태의 값 중에서 선택해서 입력하죠. 이를 도메인 무결성이라고 합니다.

     성별에는 '남'과 '여' (그리고 둘 다 아님...) 만 선택할 수 있는 것처럼 말이죠.

     

     

    star가 되고나서 Tistory

    반응형

    댓글