[weekly] [nb] Primary Key 와 Foreign Key 의 차이점
Primary Key와 Foreign Key에 대해 설명해 주세요.
항목 | Primary Key(기본키) | Foregin Key(외래키) |
---|---|---|
역할 | 테이블에서 각 행을 유일하게 식별 | 다른 테이블의 행과 연결(참조) |
중복 허용 | 중복 불가 | 중복 가능 |
null 허용 | null 불가 | null 가능 |
데이터 소속 | 본인 테이블에 소속 | 다른 테이블을 참조 |
기본 목적 | 유일성 보장 | 관계 표현(연결) |
빵집 비유
Primary Key: 제품 바코드
- 제빵소에서 만든 각 빵에 붙는 바코드
- 같은 종류의 빵이라도 모든 빵에는 고유 바코드 가 있어야 함
- 중복되면 안 되고, 무조건 있어야 함
- 이걸 보면 “이 빵은 어느 날 누구에 의해 만든 어떤 빵이다”를 정확히 알 수 있음
Foregin Key: 영수증에 적힌 바코드
- 어떤 빵이 어느 주문에 포함되었는지 알려주는 표식
- 바코드(=Primary Key)를 보고, “이 빵은 이 주문과 연결되어 있다”고 알 수 있음
- 외래 키는 영수증 쪽에 있는 정보 이고, 본 제품(빵)은 외부에 있음
- 바코드가 유효해야 연결이 성립됨 (= 참조 무결성)
결론
Primary Key는 ‘고유한 ID’, 테이블 그 자체의 이름표고,
Foreign Key는 ‘참조용 링크’, 다른 테이블을 가리키는 주소값이다.
Primary는 자기 고유성 보장,
Foreign은 다른 테이블과 관계 형성이 핵심