[DB] 키

NORMAN·2023년 10월 24일
0

DB

목록 보기
3/6

여러가지 키

  • 키(key)는 DB에서 조건을 만족하는 레코드를 찾거나 순서대로 정렬할 때 레코드를 서로 구분할 수 있는 기준이 되는 속성

키의 종류

  • Super key (수퍼키)
  • Candidate key (후보키)
  • Primary key (기본키)
  • Alternate key (대체키)
  • Foreign key (외래키)
  • Composite key (복합키)

추가로 알아야 하는 개념
유일성 : 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질 (중복 X)
최소성 : 키를 구성하는 속성들 중 꼭 필요한 최소한의 속성들로만 키를 구성하는 성질

  • 특정 학교 학생을 구별할 때, 세가지 구별자 [면접번호, 이름, 성별] 가있다면 이는 유일성은 만족하지만 최소성은 만족하지 않는다.
  • 이름과 성별을 제외한 학생번호 만으로 학생을 구별할 수 있으며, 학생번호는 최소성을 만족한다.

Super Key (수퍼키)

  • 유일성 O, 최소성 X
  • 유일성의 특성을 만족하는 속성들의 집합, 중복 X -> 서로 구분 가능하면 수퍼키

    [면접번호] 의 경우 중복되는 경우가 없음 -> 수퍼키 O
    [이름, 나이, 성별] 의 경우 중복되는 경우가 있을 수 있음 -> 수퍼키 X

Candidate Key (후보키)

  • 유일성 O, 최소성 O
  • 수퍼키 중에서 최소성을 만족하는 키
  • [면접번호, 이름, 나이] 의 경우 수퍼키지만, 이름, 나이는 특정 학생을 구별할 때 필요없다.
  • [면접번호] 는 최소성도 만족한다.

Primary Key (기본키)

  • 주 키, 프라이머리 키, PK 등으로 불림
  • 후보키들 중 메인으로 선정되는 키, 후보키의 성질 갖음
  • 유일성 O, 최소성 O (후보키), 레코드를 식별할 때 반드시 필요한 키
  • 값의 변동이 잦은 후보키는 기본키로 부적절
  • NULL 값을 가질 수 있는 속성이 포함된 후보키는 부적절
  • 후보키 중 단순한 키를 기본키로 선택
  • 하나의 테이블에 반드시 하나의 기본키만 존재

Foreign Key (외래키)

  • 테이블의 관계를 나타낼 때 사용, 다른 테이블의 기본키를 참조하여 사용
    • 즉, 한 테이블의 외래키는 연결되어있는 다른 테이블의 기본키
    • 위 그림의 왼쪽 테이블에서 student_id는 기본키, 오른쪽에서는 외래키
      • 학생 목록을 나타내는 왼쪽 테이블에 1 ~ 4의 학생이 있으며, 오른쪽 테이블에서 외래키로 사용되는 student_id는 그 외의 값이 나타날 수 없다.
  • 외래키 설정 따로 하지 않아도 데이터 조회 가능 -> 데이터 무결성을 위해 함
    • 무결성 : 데이터가 항상 정확한 값을 유지하려는 성질
  • 위에서 왼쪽 테이블의 student_id가 변경되었는데 오른쪽은 변경되지 않으면 문제가 생김 -> 이러한 상황 예방을 위해 외래키 사용

Composite Key (복합키)

  • 두개 이상의 칼럼을 묶어서 하나의 키본키로 지정하는 것
  • 기본키는 하나의 테이블에 하나만 존재 가능, 또한 하나 이상의 칼럼으로 구성됨
    • 기본키가 복합키면, 복합키도 유일성, 최소성 만족해야 함

Alternate Key (대체키)

  • 기본키를 제외한 나머지 후보키들

Reference

권오남님의 벨로그

profile
백엔드 개발자 노먼입니다.

0개의 댓글