1-1-6. 식별자

박은서's avatar
Feb 25, 2026
1-1-6. 식별자

1. 식별자의 개념과 특징

1️⃣ 식별자(Identifier)의 개념

  • 여러 인스턴스 중에서 특정 인스턴스를 구분할 수 있는 일종의 구분자
  • 엔터티를 대표하는 속성
  • 하나의 엔터티에는 반드시 하나의 유일한 식별자가 존재해야 함
  • 식별자 = 키(Key)
    • 논리 모델링에서는 식별자, 물리 모델링에서는 키(Key)라고 함

2️⃣ 식별자의 특징

1) 유일성

  • 주식별자는 엔터티 내 모든 인스턴스를 유일하게 구분함
  • 예) 사원번호

2) 최소성

  • 주식별자를 구성하는 속성 수는 유일성을 만족하는 최소한의 수여야 함
  • 예) 사원번호 + 부서번호로 이루어진 주식별자
    • → 최소성 위배
      → 사원번호가 유일하다면 부서번호와의 조합은 불필요

3) 불변성

  • 주식별자가 한 번 지정되면 그 식별자의 값은 변하지 않아야 함
  • 예) 사번 변경
    • → 실제 사번 변경 X
      → 이전 사번 말소, 새로운 사번 생성 O

4) 존재성

  • 주식별자가 지정되면 반드시 값이 존재해야 하며, NULL 값을 가질 수 없음
  • 예) 사번이 부여되면 해당 사번을 가진 직원이 반드시 존재해야 함

2. 식별자의 분류 및 도출 기준

1️⃣ 식별자의 분류 ⭐

💡
분류 기준을 제시하고 주식별자의 명칭을 묻는 문제 유형
주식별자 명칭과 설명을 바탕으로 해당 식별자를 구분하느 문제 자주 출제

1) 대표성 여부에 따른 분류

  1. 주식별자
  • 엔터티 내에서 각 행을 구분할 수 있는 대표 식별자
  • 다른 엔터티와 참조 관계를 연결할 수 있음
  • 예) 사원번호, 고객번호

  1. 보조식별자
  • 각 행을 구분할 수 있으나, 대표성이 없어 참조 관계 연결이 불가능한 식별자
  • 예) 주민등록번호

2) 스스로 생성 여부에 따른 분류

  1. 내부식별자
  • 엔터티 내부에서 스스로 생성되는 식별자
  • 예) 고객번호

  1. 외부식별자
  • 다른 엔터티와의 관계를 통해 외부 엔터티로부터 받아오는 식별자
  • 예) 주문 엔터티의 고객번호

3) 속성의 수에 따른 분류

  1. 단일식별자
  • 하나의 속성으로 구성된 식별자
  • 예) 고객 엔터티의 고객번호

  1. 복합식별자
  • 둘 이상의 속성으로 구성된 식별자
  • 예) 주문상세 엔터티의 주문번호+상세순번

4) 대체 여부에 따른 분류

  1. 본질식별자
  • 업무적으로 자연스럽게 생성되는 식별자
  • 예) 고객번호

  1. 인조식별자
  • 복잡한 원조 식별자를 대체하기 위해 인위적으로 만든 식별자
  • 예) 주문엔터티의 주문번호(고객번호+주문번호+순번)

2️⃣ 식별자의 도출 기준

  • 주식별자는 해당 업무에서 자주 사용되는 속성으로 성정
    • 예 ) 학생의 경우 → 학번을 주식별자, 주민등록번호는 보조식별자로 지정
  • 명칭, 내역과 같이 이름으로 기술되는 것들은 주식별자로 지정하지 않음
    • 이름을 구분자로 사용해야 한다면 코드화하여 사용
  • 복합 식별자를 사용할 경우 속성의 수를 최소화

3. 식별자 관계와 비식별자 관계

1️⃣ 주식별자 관계 (Identifying Relationship)

  • 부모 엔터티의 주식별자가 자식 엔터티에 상속되어 자식 엔터티의 주식별자로 사용되는 경우
  • 자식 엔터티의 주식별자에 NULL 값이 올 수 없으며, 반드시 부모 엔터티가 생성된 후에 자식 엔터티가 생성됨
  • 주식별자는 데이터베이스 생성 시 PK(Primary Key) 역할을 함

2️⃣ 비식별자 관계 (Non-Identifying Relationship)

  • 부모 엔터티의 주식별자가 자식 엔터티에 상속됐지만, 자식 엔터티의 주식별자로 사용되지 않고 단순히 연결 속성으로만 활용되는 경우
  • 부모 엔터티로부터 생성된 속성은 외부식별자라고 하며, 데이터베이스 생성 시 FK(Foreign Key) 역할을
Share article