[Database] Primary Key (PK), Foreign Key(FK)

2025. 5. 1. 15:21·DataBase/Database Modeling
목차
  1. Primary Key(PK) -> 기본키
  2. 현업에선 이렇게 설정한다 카더라
  3. Foreign Key(FK) -> 외래키

패널티킥, 프리킥 아니다.. 진짜 뒤진다..

Primary Key(PK) -> 기본키

우리는 서로를 구분할 수 있도록 각자 고유의 주민 번호가 존재한다.

주체가 사람이 아닌 다른 객체일 때, 각 객체를 구분하기 위해서 주민등록번호와 같은 PK(기본키)를 사용한다.

기본키는 특정 데이터 값을 식별하기 위한 값으로, 반드시 다음과 같은 특성을 가진다

  • 기본키는 중복 되어선 안된다
  • 기본키의 값은 비어있으면 안된다

 

현업에선 이렇게 설정한다 카더라

~~ 카더라는 공부하며 얻은 지식들을 적어보는 코너이다ㅋㅋ
내가 아직 현직자가 아니므로 그냥 그렇다더라~ 하고 넘어가자

어느 회사에서 데이터베이스를 관리할 때, 주민번호나 이메일 등을 PK로 설정하는 것을 볼 수 있다.

하지만, 주민번호나 이메일은 상황에 따라 변동이 될 가능성이 있다. 즉, 위에서 언급한 기본키 특성에 위배 될 수 있다.

PK 가 변경되면 데이터를 식별하던 값이 바뀌어서 데이터 유지보수 / 사용에 큰 혼란이 생길 수 있다.

-> 즉 현업 종사 하시는 분들 께서는 데이터와 무관한 임의의 값 -> Auto Increment(i++) 방식이나 UUID(Random) 값을 설정하여 PK 로 관리한다

 


Foreign Key(FK) -> 외래키

예를 들어 사용자와 게시글 데이터를 저장한다고 가정한다.

데이터를 분리하여 저장하기 위해 사용자 / 게시글 테이블로 나누어 저장한다고 가정하자.

id 열은 기본키

이렇게 데이터를 구분하여 저장하면 누가 어떤 제목의 글을 작성했는지 확인할 수 없다. 이럴 때 사용하는 것이 FK 즉 외래키이다. 

다음은 외래키를 적용한 상태이다.

 

사용자 테이블의 id 열을 게시글 테이블의 FK로 사용하며 누가 어떤 글을 작성했는지 매핑되는 것을 볼 수 있다.

이처럼 적절히 FK를 설정한 상태에서 적절하지 않은 값(예시에선 20 번 id를 가진 사용자가 없다) 를 입력하면 DB에선 컴파일 오류를 내준다.

이처럼, 적절하지 않은 FK 데이터를 삽입하는 것을 방지하는 것을 참조 무결성 이라고 한다 !

'DataBase > Database Modeling' 카테고리의 다른 글

[Database] DB 설계시 필수 덕목 (이상현상 -> 정규화)  (0) 2025.05.01
[Database] 데이터 베이스 네이밍 규칙  (0) 2025.05.01
[Database] 데이터베이스 모델링 (Database Modeling)  (0) 2025.05.01
  1. Primary Key(PK) -> 기본키
  2. 현업에선 이렇게 설정한다 카더라
  3. Foreign Key(FK) -> 외래키
'DataBase/Database Modeling' 카테고리의 다른 글
  • [Database] DB 설계시 필수 덕목 (이상현상 -> 정규화)
  • [Database] 데이터 베이스 네이밍 규칙
  • [Database] 데이터베이스 모델링 (Database Modeling)
xuv2
xuv2
집에 가고 싶다
  • xuv2
    xuvlog
    xuv2
  • 전체
    오늘
    어제
    • 전체 글 모아보기 (171) N
      • 잡담 (9)
      • 도전 , 자격증 (2)
      • Error (5)
      • Java (23)
      • Spring (40) N
        • Core (10)
        • MVC (21) N
        • Thymeleaf (9)
      • DataBase (6)
        • Database Modeling (4)
        • SQL (2)
      • HTTP (11)
      • Network (17)
      • Software Engineering (3)
      • Operating System (3)
      • Algorithm (16)
      • Project (18)
        • Web (9)
        • iOS (8)
        • Python (1)
      • A.I (13)
      • Linux (5)
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
xuv2
[Database] Primary Key (PK), Foreign Key(FK)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.