기본 키(Primary key)와 외래 키(Foreign key), 후보키

so.oy·2022년 10월 23일
0

Database

목록 보기
4/4

저번 글에서는 데이터베이스에서 테이블간 '관계'와 그 관계에 따라 부모테이블과 자식테이블이 어떻게 정의되는지 정리하였다. 이번에는 기본 키(Primary key)와 외래 키(Foreign key)에 대해 정리해보자!


키(Key)

키는 무엇인가를 식별한다는 의미를 갖고 있다. 키란 데이터베이스의 관계에서 특정 튜플을 식별할 때 사용하는 속성 또는 속성의 집합을 말한다.

후보키(Candidate Key)

후보키는 기본키가 될 수 있는 후보가 될 수 있는 모든 키를 의미한다. 기본키도 후보키에 속한다. 후보키 중 기본키로 지정되지 않은 키를 보조키라고 한다.

기본 키(Primary key)와 외래 키(Foreign key)

기본 키(Primary key : PK)

관계형 데이터베이스에서 테이블 내의 식별자로 이용하기 가장 적합한 컬럼에 정의되는 키이다. 테이블에는 각 행을 고유하게 식별하는 값을 가진 열들이 있다. 이러한 열의 조합을 기본키(PK)라고 하며 테이블의 엔티티(Entity)의 무결성에 사용된다.
기본기 선정의 몇가지 조건은 다음과 같다.

  • 테이블은 오직 하나의 Primary key값을 가진다.
  • NULL값을 허용하지 않는다.
  • 값의 중복이 없어야 한다.
  • 키 값이 변하지 않아야 한다.
  • 최대한 적은 수의 속성을 가진 것이 좋다.

외래 키(Foreign key : FK)

외래 키는 두 테이블 간 연결을 설정한다. 즉, 어떤 테이블에 포함되어 있으면서, 다른 테이블에서 기본 키를 참조하여 두 테이블 간의 관계를 나타낸다.

  • 외래 키는 관계를 표현한다.
  • 외래 키는 기본 키와 다르게 하나의 테이블에 여러 개를 지정 할 수 있다.
  • 외래 키는 NULL값과 중복 값이 허용된다.
  • 참조되는 값이 변경되면 참조하는 값도 변경된다.
  • 외래 키는 기본 키의 일부가 될 수 있다.

관계형 데이터베이스에서 두 테이블 간 관계를 연결하는 방법은 부모테이블의 기본 키(Primary key)와 자식테이블의 외래 키(Foreign key)이다.

위의 테이블을 보면 수강 테이블의 외래 키(PK)가 학생테이블의 주 키(Primary key) '학번'에 참조 되어 있는 것을 볼 수 있다.
이것은 학생 테이블이 기본키인 학번이 수강 테이블의 외래키로 전이 되었다고 표현 할 수 있다.
학번은 각 학생의 고유한 값으로 중복 될 일이 없다. 만약 이름이 똑같은 학생이 있을 경우 유일성을 만족하지 못한다. 전공도 마찬가지로 중복의 가능성이 있으므로 Primary key의 조건에 위배된다.

profile
🌱 개발공부로그

1개의 댓글

comment-user-thumbnail
2024년 1월 3일

안녕하세요. 글 재밌게 봤습니다. 혹시 출처를 밝히고 내용을 인용해도 될까요~?

답글 달기