반응형

데이터베이스 설계 과정에서 테이블의 행(row)을 고유하게 식별하는 방법으로는 크게 본질식별자인조식별자가 있습니다. 각각의 식별자는 특징과 용도에 따라 적절히 활용됩니다. 오늘은 이 두 가지 식별자에 대해 알아보겠습니다.


1️⃣ 본질식별자

본질식별자는 테이블에 저장되는 데이터의 본질적인 특성을 기반으로 하여 정의되는 식별자입니다. 쉽게 말해, 업무적으로 자연스럽게 만들어지는 식별자입니다.

📌 특징

  • 업무 프로세스에서 자연스럽게 생성됩니다.
  • 테이블의 데이터 자체가 본질식별자를 포함하고 있습니다.
  • 데이터의 의미를 직접적으로 나타내는 경우가 많습니다.

📖 예시

  • 학번: 학생이 학교에 입학할 때 부여되는 번호로, 각 학생을 명확히 구별할 수 있습니다. 학번 자체만으로도 학생이라는 데이터의 본질적 특성을 반영하고 있습니다.
  • 고객번호: 고객을 고유하게 구분하기 위해 업무적으로 생성되는 번호입니다.

2️⃣ 인조식별자

인조식별자는 데이터베이스 내에서 데이터를 쉽게 관리하기 위해 인위적으로 만들어진 식별자입니다. 업무 프로세스와 직접적으로 관련되지 않으며, 주로 데이터의 본질식별자가 복잡할 때 사용됩니다.

📌 특징

  • 데이터베이스 시스템에서 자동으로 생성됩니다.
  • 본질적인 데이터 특성과는 무관하게 운영됩니다.
  • 일반적으로 순차적인 숫자나 UUID 등의 형태로 만들어집니다.

📖 예시

  • 등록ID: 수강 기록 데이터를 관리할 때 시스템이 자동으로 1, 2, 3...과 같은 순차적인 번호를 부여합니다.
  • 주문번호: 주문 엔티티가 고객번호+주문날짜+순번과 같이 복잡한 구성을 가지고 있을 때, 이를 간략화하고 쉽게 관리하기 위해 인조식별자로 단순화된 번호를 사용합니다.

인조식별자만으로는 데이터의 구체적인 내용을 알기 어렵습니다. 예를 들어, 등록ID만으로 특정 학생이 언제 어떤 과목을 수강했는지를 알 수 없으며, 반드시 학번, 학기, 과목코드 등의 다른 정보를 함께 사용해야 정확한 의미를 알 수 있습니다.


🔍 요약 정리

구분 본질식별자(Natural Key) 인조식별자(Surrogate Key)
정의 업무에서 자연스럽게 생성되는 키 시스템에서 인위적으로 생성하는 키
예시 학번, 고객번호 등록ID, 주문번호
특징 데이터의 본질적 의미 반영 데이터 관리 편의를 위한 임의적 생성
반응형

+ Recent posts