핵심 인사이트 (3줄 요약)

  1. 본질: 식별자 (Identifier)는 ER (Entity-Relationship) 모델에서 특정 개체 (Entity) 인스턴스를 유일하게 구별해내는 논리적 속성 또는 속성의 집합이다.
  2. 가치: 불변성과 유일성을 가진 식별자를 잘 정의하면, 데이터의 무결성을 보장하고 관계 (Relationship)를 맺을 때 명확한 연결 고리를 제공할 수 있다.
  3. 판단 포인트: 업무적 의미를 가진 자연 식별자 (Natural Identifier)를 쓸지, 무의미한 일련번호인 인조 식별자 (Surrogate Identifier)를 쓸지는 데이터의 생명주기와 변경 가능성을 고려하여 결정해야 한다.

Ⅰ. 개요 및 필요성

식별자 (Identifier)는 개념적 데이터 모델링 단계에서 엔터티 내의 각 인스턴스를 식별할 수 있는 핵심 속성이다. 이후 논리/물리 설계 단계를 거치면서 RDBMS (Relational Database Management System)의 기본 키 (PK, Primary Key)로 매핑된다. 즉, 식별자는 논리적 개념이고, 기본 키는 물리적 구현체다.

데이터베이스 시스템에서 동일한 형태의 데이터가 수만 건 쌓일 때, "이 데이터가 저 데이터와 같은가?"를 판단하는 기준이 없으면 데이터 갱신과 참조가 불가능해진다. 비즈니스 규칙이 복잡해질수록 속성 값은 자주 변하지만, 그 개체가 누구인지를 증명하는 '신분증' 역할이 바로 식별자다.

  • 📢 섹션 요약 비유: 식별자는 학생의 '학번'과 같다. 이름이나 학년은 바뀔 수 있어도, 그 학생이 누구인지 증명하는 고유한 번호가 있어야 성적과 출결을 정확히 기록할 수 있다.

Ⅱ. 아키텍처 및 핵심 원리

식별자가 되기 위해서는 반드시 4가지 핵심 요건을 만족해야 한다. 이를 하나라도 위반하면 데이터 정합성이 깨지거나 외래 키 (FK, Foreign Key) 참조 시 오류가 발생한다.

조건의미설계 관점
유일성 (Uniqueness)모든 인스턴스는 고유한 값을 가져야 함동명이인 방지
최소성 (Minimality)유일성을 보장하는 최소한의 속성으로 구성복합 식별자 남용 방지
불변성 (Immutability)한 번 지정된 식별자 값은 변하지 않아야 함PK 변경 시 FK 연쇄 갱신 방지
존재성 (Existence)식별자 값은 NULL일 수 없음개체의 존재 자체를 증명해야 함
┌──────────────────────────────────────────────────────────────┐
│                  식별자 선택의 단계적 필터링               │
├──────────────────────────────────────────────────────────────┤
│ 1. 속성 수집: [사번, 주민번호, 이름, 부서명, 이메일, 입사일] │
│      │                                                       │
│ 2. 유일성/존재성 확인 ─▶ (이름, 부서명, 입사일 탈락)      │
│      │                                                       │
│ 3. 후보 식별자(Candidate Identifier) 도출: {사번}, {주민번호}, {이메일} │
│      │                                                       │
│ 4. 불변성/보안성 검토 ─▶ 주 식별자(Primary Identifier) 선정: {사번}    │
│                         (주민번호는 보안, 이메일은 변경 가능성으로 탈락) │
└──────────────────────────────────────────────────────────────┘

이 흐름에서 도출된 다양한 후보 식별자 중에서 비즈니스 목적에 가장 부합하는 단 하나를 주 식별자로 선택하고, 나머지는 보조 식별자 (Alternate Identifier)가 된다.

  • 📢 섹션 요약 비유: 오디션에서 유일하게 춤과 노래를 모두 소화하는 사람을 뽑는 과정과 같다. 후보는 많지만, 결선(주 식별자)에 오르는 기준은 '결코 변하지 않는 실력(불변성)'이다.

Ⅲ. 비교 및 연결

식별자를 설계할 때 가장 많이 부딪히는 딜레마는 본질 식별자 (자연 식별자)인조 식별자 사이의 선택이다.

항목본질 식별자 (Natural Identifier)인조 식별자 (Surrogate Identifier)
개념업무에서 이미 사용 중인 의미 있는 속성시스템이 인위적으로 부여한 일련번호 (Sequence)
예시계좌번호, 이메일, 주민등록번호주문번호 (ORD_001), 고객ID (USR_109)
장점비즈니스 규칙과 직접 연결됨, 추가 컬럼 불필요불변성 보장, 조인 (Join) 속도 빠름, 보안 위험 낮음
단점업무 규칙 변경 시 식별자 값이 변할 위험 존재데이터 의미 파악 어려움, 인위적 매핑 관리 필요

본질 식별자가 2개 이상의 속성으로 묶이는 복합 식별자 (Composite Identifier) 의 경우, 자식 엔터티로 갈수록 PK의 크기가 커져 인덱스(Index) 비효율과 조인 성능 저하를 유발한다. 이 경우 인조 식별자 체계로 전환하는 것이 RDBMS 성능 튜닝의 기본기다.

  • 📢 섹션 요약 비유: 본질 식별자는 '여권번호(국가가 발급한 진짜 신분)'이고, 인조 식별자는 놀이공원 '입장 팔찌(시스템 안에서만 쓰는 편한 번호)'다. 복잡하게 놀이기구를 탈 때는 팔찌가 편하다.

Ⅳ. 실무 적용 및 기술사 판단

실무 데이터 모델링에서 식별자를 선정할 때는 철저히 미래의 변경 가능성을 의심해야 한다.

설계 판단 체크리스트

  1. 이메일이나 휴대폰 번호를 식별자로 썼는가?
    • 회피: 이메일은 계정 통합이나 변경 시 업데이트되어야 하므로 불변성을 위반한다. 반드시 인조 식별자를 내부 키로 두어야 한다.
  2. 복합 식별자의 속성이 3개를 넘어가는가?
    • 회피: 조인 조건이 복잡해지고 인덱스 트리가 비대해진다. 무의미한 인조 식별자(일련번호)로 대체하고, 기존 속성은 UNIQUE 제약 조건으로 관리해야 한다.
  3. 주민등록번호 같은 민감 정보가 포함되어 있는가?
    • 회피: DB 암호화 시 인덱싱 및 조인이 불가능해진다. 절대 주 식별자로 사용해서는 안 된다.

안티패턴

  • "부서명+직급+이름"으로 사원 테이블의 주 식별자를 구성하는 행위. 이 중 하나라도 바뀌면 사원 개체의 정체성이 흔들리며 연관된 모든 FK를 연쇄 수정(ON UPDATE CASCADE)해야 한다.

  • 📢 섹션 요약 비유: 바뀌는 주소를 집의 고유 번호표로 쓰면, 이사 갈 때마다 동네 지도를 다 다시 그려야 한다. 변하지 않는 토지 지번(인조 식별자)이 필요한 이유다.


Ⅴ. 기대효과 및 결론

견고하게 설계된 식별자는 데이터베이스 전체의 정합성을 수호하는 뼈대가 된다. 튼튼한 식별자는 시스템 런타임에 불필요한 연쇄 갱신을 막고 조인 성능을 최적화하며, 무엇보다 개발자가 비즈니스 로직에만 집중할 수 있게 해준다.

반면, 식별자의 불변성을 가볍게 여겨 변경 가능한 속성을 주 식별자로 삼으면, 향후 마이그레이션이나 시스템 통합 시 막대한 데이터 클렌징 비용을 치르게 된다.

결론적으로 식별자는 ER 모델에서 가장 무거운 책임을 지는 속성이며, 단순한 '고유 값'이 아니라 데이터 생명주기 전체를 관통하는 시스템의 식별 체계로 인식해야 한다.

  • 📢 섹션 요약 비유: 건물의 철골 구조(식별자)를 처음부터 단단히 세워두면 나중에 벽지(속성)를 몇 번을 바꿔도 건물은 무너지지 않는다.

📌 관련 개념 맵

개념연결 포인트
기본 키 (PK)ER 모델의 식별자가 RDBMS 물리 스키마로 구현된 형태
정규화 (Normalization)식별자(함수자)를 기준으로 속성 간의 함수적 종속성을 제거해 테이블을 분리하는 과정
외래 키 (FK)부모 엔터티의 주 식별자를 자식 엔터티가 상속받아 관계를 형성하는 매개체
식별/비식별 관계부모의 식별자를 자식이 식별자(PK)로 쓰는지, 일반 속성(FK)으로 쓰는지의 차이

📈 관련 키워드 및 발전 흐름도

개체와 속성 정의 (Entity & Attribute)
    │
    ▼
후보 식별자 도출 (Candidate Identifier)
    │
    ▼
주 식별자 선정 (Primary Identifier) · 4가지 요건 검증
    │
    ▼
인조 식별자 (Surrogate) 도입 판단 및 복합 키 해소
    │
    ▼
물리 모델링 매핑: 기본 키 (PK) 및 참조 무결성 (FK) 정의

👶 어린이를 위한 3줄 비유 설명

  1. 도서관에 같은 이름의 책이 여러 권 있으면 찾기 힘들겠죠?
  2. 그래서 책마다 바코드가 그려진 '고유 번호표'를 붙여둬요.
  3. 식별자는 수많은 데이터 중에서 "바로 이거야!"라고 딱 집어낼 수 있게 해주는 마법의 번호랍니다.