Skip to content

식별자의 종류: 주식별자, 보조식별자, 인조식별자 ​

식별자는 테이블의 한 행(인스턴스)을 유일하게 구분해주는 속성(또는 속성 묶음)입니다. 좋은 식별자는 아래 4가지를 만족해야 합니다.

  • 유일성: 중복되면 안 됨
  • 최소성: 꼭 필요한 속성만으로 구성 (쓸데없이 많이 묶지 않기)
  • 불변성: 한번 정해지면 값이 안 바뀜
  • 존재성: NULL(빈 값)이면 안 됨

이 식별자를 몇 가지 기준으로 나눠볼 수 있습니다.

대표로 뽑혔는가 ​

  • 주식별자(PK): 테이블당 딱 하나, 행을 대표해서 식별하는 속성. NULL 불가.
  • 보조식별자: 유일성은 있지만 대표로 뽑히지 못한 속성. 예: 사원번호가 PK일 때 주민등록번호는 보조식별자.

업무에서 자연스럽게 나왔는가, 인위적으로 만들었는가 ​

  • 본질식별자: 업무 과정에서 자연스럽게 생긴 속성 그대로 (예: 주문일자 + 상품코드)
  • 인조식별자(Surrogate Key): 본질식별자가 너무 복잡하거나 여러 속성으로 얽혀 있을 때, 관리 편의를 위해 인위적으로 새로 만든 식별자. 보통 자동 증가 번호나 UUID를 씁니다 (예: 주문일자+상품코드 대신 새로 만든 "주문번호").

속성 하나인가, 여러 개를 묶었는가 ​

  • 단일 식별자: 속성 1개로 유일성 확보
  • 복합 식별자: 여러 속성을 합쳐야 유일성이 나옴 (예: 학번+과목코드)

스스로 만들어졌는가, 남한테 물려받았는가 ​

  • 내부식별자: 자기 테이블 안에서 자체적으로 생성
  • 외부식별자: 다른 테이블과의 관계를 통해 물려받은 식별자, 즉 FK

참고: 개인 Notion 학습 노트