본문 바로가기
Category/정보처리기사

데이터베이스 키(Key) 개념 정리

by Corinee 2024. 10. 12.
728x90
반응형

데이터베이스에서 키(Key)는 테이블 내의 튜플(행)을 식별하기 위해 사용하는 하나 이상의 속성(열)을 말합니다. 키는 데이터를 유일하게 식별하거나 참조 무결성을 유지하는 데 사용됩니다. 키의 종류와 그 특징을 정리해 보겠습니다.

1. 슈퍼키(Super Key)

  • 정의: 테이블 내에서 각 튜플을 유일하게 식별할 수 있는 하나 이상의 속성 집합.
  • 특징: 유일성은 보장되지만, 최소성을 요구하지는 않음. 여러 속성으로 이루어질 수 있음.
  • 예시: 주민등록번호, 학생ID + 이름, 학번 + 이메일 등.

2. 후보키(Candidate Key)

  • 정의: 슈퍼키 중에서 유일성최소성을 동시에 만족하는 속성 집합.
  • 특징:
    • 유일성: 테이블 내에서 각 튜플을 고유하게 식별할 수 있어야 함.
    • 최소성: 후보키는 최소한의 속성으로 구성되어야 하며, 더 이상 속성을 제거하면 유일성을 잃음.
  • 예시: 주민등록번호, 학번 (중복되지 않으며 최소한의 속성으로 구성된 키).

3. 기본키(Primary Key)

  • 정의: 후보키 중에서 테이블의 대표 키로 선정된 것. 기본키는 각 튜플을 고유하게 식별하는 역할을 함.
  • 특징:
    • 유일성최소성을 만족.
    • Null 값을 가질 수 없음.
    • 하나의 테이블에 하나의 기본키만 설정 가능.
  • 예시: 학생 테이블에서 학번, 사용자 테이블에서 사용자ID.

4. 대체키(Alternate Key)

  • 정의: 후보키 중에서 기본키로 선택되지 않은 나머지 키들.
  • 특징: 유일성과 최소성을 만족하지만, 기본키로 선택되지 않은 후보키.
  • 예시: 주민등록번호와 학번이 후보키일 때, 학번이 기본키로 선택되면 주민등록번호는 대체키가 됨.

5. 외래키(Foreign Key)

  • 정의: 다른 테이블의 기본키를 참조하는 속성. 두 테이블 간의 참조 무결성을 유지하는 데 사용됨.
  • 특징:
    • 외래키는 참조하는 테이블의 기본키 또는 후보키와 연결됨.
    • 참조된 값만을 가질 수 있으며, 참조된 테이블에서 존재하지 않는 값은 외래키로 설정할 수 없음.
  • 예시: 학생 테이블의 학과ID가 학과 테이블의 학과코드를 참조하는 경우, 학과ID는 외래키임.

6. 복합키(Composite Key)

  • 정의: 두 개 이상의 속성을 결합하여 만든 키.
  • 특징: 개별 속성만으로는 유일성을 만족하지 못하지만, 결합하면 유일성을 만족할 때 사용.
  • 예시: 학생ID + 강의ID와 같이 두 속성을 결합하여 하나의 키로 사용하는 경우.

7. 유일키(Unique Key)

  • 정의: 유일성을 가진 키로, 중복된 값을 가질 수 없음. 다만, NULL 값을 허용함(기본키와의 차이점).
  • 특징:
    • 하나의 테이블에 여러 개의 유일키를 설정할 수 있음.
    • NULL 값은 허용되지만 중복된 값은 허용되지 않음.
  • 예시: 이메일, 휴대전화번호 등이 유일키로 설정될 수 있음.

키의 역할과 중요성

  • 데이터 무결성 보장: 키를 통해 테이블의 데이터를 유일하게 식별할 수 있어 중복을 방지하고 데이터 무결성을 유지합니다.
  • 참조 무결성 유지: 외래키를 통해 테이블 간의 관계를 정의하고, 데이터가 일관되게 유지되도록 합니다.
  • 효율적인 데이터 검색: 기본키나 유일키는 데이터 검색 시 인덱스로 작동하여 효율적인 검색을 지원합니다.

요약

  1. 슈퍼키(Super Key): 유일성을 만족하는 속성 집합.
  2. 후보키(Candidate Key): 유일성과 최소성을 만족하는 속성 집합.
  3. 기본키(Primary Key): 후보키 중에서 선택된 대표 키, Null 불가.
  4. 대체키(Alternate Key): 기본키로 선택되지 않은 후보키.
  5. 외래키(Foreign Key): 다른 테이블의 기본키를 참조하는 속성.
  6. 복합키(Composite Key): 두 개 이상의 속성으로 구성된 키.
  7. 유일키(Unique Key): 유일성을 만족하지만, Null 값을 허용하는 키.

이 키 개념을 정확하게 이해하는 것은 데이터베이스의 설계와 데이터 무결성 유지에 매우 중요합니다.