24.12.16 TIL Primary Key, Foreign Key

신성훈·2024년 12월 16일

TIL

목록 보기
100/162

Primary Key와 Foreign Key

1. Primary Key (기본 키)

Primary Key는 데이터베이스 테이블에서 각 행(Row)을 고유하게 식별하기 위한 키입니다.

  • 특징:

    1. 유일성(Unique): 모든 행이 고유한 값을 가져야 함
    2. NULL 불가: 값이 반드시 존재해야 함
    3. 단일 또는 복합 키: 한 개의 컬럼 또는 여러 컬럼을 조합하여 설정 가능
  • 예시
    학생 테이블의 Primary Key:

    학생ID (Primary Key) | 이름   | 나이  
    ------------------------------
    101                 | Alice  | 20  
    102                 | Bob    | 22  

    여기서 학생ID는 각 학생을 유일하게 식별하는 Primary Key


2. Foreign Key (외래 키)

Foreign Key는 한 테이블에서 다른 테이블의 Primary Key를 참조하는 컬럼입니다

  • 역할:

    1. 테이블 간의 관계 정의: 부모-자식 관계 형성
    2. 데이터 무결성 보장: 참조된 데이터가 삭제되거나 수정되지 않도록 제한 가능
  • 특징:

    • 외래 키는 부모 테이블의 Primary Key를 참조
    • NULL 값을 가질 수 있음 (옵션에 따라)
    • 데이터 삭제 및 수정 시 제약 조건 설정 가능
      • CASCADE: 부모 데이터가 삭제되면 자식 데이터도 삭제
      • SET NULL: 부모 데이터 삭제 시 자식 데이터의 외래 키를 NULL로 설정
  • 예시
    학생 테이블과 수강 테이블 간의 관계:

    학생 테이블  
    학생ID (Primary Key) | 이름   | 나이  
    ------------------------------
    101                 | Alice  | 20  
    102                 | Bob    | 22  
    
    수강 테이블  
    수강ID | 학생ID (Foreign Key) | 과목명  
    ----------------------------------
    1      | 101                 | 수학  
    2      | 102                 | 영어  
    3      | 101                 | 과학  

    여기서 학생ID는 학생 테이블의 Primary Key를 참조하는 Foreign Key


3. Primary Key와 Foreign Key의 관계

  • Primary Key는 데이터의 유일한 식별자를 제공하고,
  • Foreign Key는 다른 테이블과 연결을 통해 데이터 간의 관계를 정의합니다.

4. 마무리

  • Primary Key와 Foreign Key는 데이터베이스의 핵심 개념으로, 이를 통해 테이블 간의 관계를 체계적으로 설계할 수 있습니다.
  • 처음에는 Foreign Key로 인해 데이터 삽입/삭제 제약이 어렵게 느껴졌지만, 무결성을 보장하는 데 중요한 역할을 한다는 것을 배웠습니다.
  • 실무에서 테이블 관계를 설정할 때 Foreign Key의 제약 조건을 적절히 활용해야 함을 깨달았습니다.
profile
조급해하지 말고, 흐름을 만들고, 기록하면서 쌓아가자.

0개의 댓글