오늘 뭐했냐/개발에 대한 주저리

23.07.30 기본키(Primary Key)와 외래키(Foregin Key)

스스로에게 2023. 8. 1. 01:24

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

 

이 때 기본키는 테이블의 각각의 데이터를 구분할 수 있는 유일한 값을 가지는 키이다. 때문에 기본키를 설정하면 다른 테이블의 외래키와 관계를 맺고 상호작용 할 수 있다. 유일성과 최소성을 가지며 이를 풀어 설명하면 아래와 같다.

  • 테이블 내 데이터을 식별할 수 있는 고유한 값을 가져야한다
  • NULL 값은 허용하지 않는다(중복값이 있으면 안되는 특성상 이는 자연스럽다)
  • 키 값이 변하지 않아야 한다
  • 최대한 적은 수의 속성을 가진 게 좋다

 

외래키는 다른 테이블의 기본키 혹은 기본키 역할을 할  수 있는 유일한 값을 통해서 관계를 설정해주는 속성입니다. 하지만 사실 외래키를 사용하는 가장 큰 목적은 무결성을 위해서이다. 외래키를 지정하지 않아도 테이블 간의 암시적 관계를 지원하는 DB도 있다. 하지만 이는 명확하지 않을 수 있으므로 내가 원하는 결과가 나오지 않을 수 있다. 그래서 이러한 문제로 인해 외래키를 사용하여 무결성을 유지하려고 한다.

 

 핵심은 기본키는 테이블의 데이터를 구분할 수 있는 유일한 값이고 외래키는 다른 테이블의 기본키 혹은 그 역할을 할 수 있는 유일한 키로 관계를 설정해주는 키이다. 

'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글

23.08.01 CORS  (0) 2023.08.02
23.07.31 HTTP 메서드  (0) 2023.08.01
23.07.29 RDBMS의 정규화  (0) 2023.08.01
23.07.28 MVC 패턴  (0) 2023.07.31
23.07.27 ORM( 그 중에서 Sequelize)  (0) 2023.07.30