[DB] 키

do_it·2025년 10월 31일

database

목록 보기
2/11

DB에서 키는 테이블에서 각 레코드를 고유하게 식별하거나, 데이터 무결성을 유지하는데 중요한 역할능 함 (키 - DB의 정합성, 무결성 성능)

분류 기준키(Key) 종류정의 (간단하게)
행 식별 (유일성)슈퍼키 (Super Key)행을 식별할 수 있는 모든 열의 조합 (최소성 X)
후보 키 (Candidate Key)행을 식별할 수 있는 최소한의 열 조합 (PK 후보)
기본 키 (Primary Key, PK)후보 키 중 대표로 선택된 단 하나의 키 (NOT NULL, 중복 X)
대체 키 (Alternate Key)기본 키로 선택되지 않은 나머지 후보 키
테이블 관계외래 키 (Foreign Key, FK)다른 테이블의 기본 키(PK)를 참조하는 키 (테이블 연결)

1. 기본키 (Primary Key)

후보 키 중에서 데이터베이스 설계자가 대표로 선택한 단 하나의 키

  • 유일성 (Unique): 중복 X
  • NOT NULL
  • 기본 키 칼럼은 레코드를 고유하게 식별 → 데이터 무결성 유지의 중요 요소

2. 외래키 (Foreign Key)

다른 테이블의 기본 키를 참조 하는 키

  • 두 테이블 간의 관계를 정의
  • 외래키를 사용하면 참조 무결성을 유지할 수 있으며,
    외래키는 참조하는 테이블의 기본 키나 고유 키와 연결됨
  • 외래 키가 참조하는 값은 참조되는 테이블에서 존재하는 값이어야 함 (참조 무결성 보장)
  • 외래 키 칼럼은 중복 허용
  • Null 값 허용 X

3. 후보 키 (Candidate Key)

테이블에서 레코드를 유일하게 식별할 수 있는 키

  • 유일성 & 최소성을 만족하는 키 → Null 값 허용 X
  • 기본 키는 후보 키 중 하나를 선택한 것
    후보 키는 기본 키가 될 수 있는 모든 후보임 (여러 개 일 수 있음)

4. 대체 키 (Alternate Key)

후보 키 중에서 기본 키로 선택되지 않은 나머지 키

  • 기본키 외에 레코드를 유일하게 식별할 수 있는 다른 후보 키들
  • 대체키도 유일성을 보장하고, Null값 허용 X

5. 슈퍼 키 (Super Key)

테이블의 각 행을 유일하게 식별할 수 있는 하나 이상의 열(Column) 집합

  • 슈퍼키는 기본키, 후보키, 대체키 등을 포함한 더 넓은 범위의 키
  • 유일성만 만족하면 됨 → 불필요한 열이 포함될 수 있음
  • e.g. 학생 테이블
    학번 - 주민번호 - 이름
    학번 : 슈퍼키
    주민번호: 슈퍼키
    학번, 이름: 슈퍼키
    주민번호, 이름, 학번: 슈퍼키

6. 고유 키 (Unique Key)

테이블의 특정 칼럼이나 칼럼 조합에 대해 중복을 허용하지 않도록 하는 키

  • 중복 값을 허용하지 않음
  • 하나의 테이블에 여러 개의 고유 키 설정할 수 있음
  • Null 값 허용 (기본키와 차이점)

0개의 댓글