본문 바로가기
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 값을 허용하는 키.

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

728x90