핵심 인사이트 (3줄 요약)
- 본질: 식별자 (Identifier)는
ER (Entity-Relationship)모델에서 특정 개체 (Entity) 인스턴스를 유일하게 구별해내는 논리적 속성 또는 속성의 집합이다.- 가치: 불변성과 유일성을 가진 식별자를 잘 정의하면, 데이터의 무결성을 보장하고 관계 (Relationship)를 맺을 때 명확한 연결 고리를 제공할 수 있다.
- 판단 포인트: 업무적 의미를 가진 자연 식별자 (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 성능 튜닝의 기본기다.
- 📢 섹션 요약 비유: 본질 식별자는 '여권번호(국가가 발급한 진짜 신분)'이고, 인조 식별자는 놀이공원 '입장 팔찌(시스템 안에서만 쓰는 편한 번호)'다. 복잡하게 놀이기구를 탈 때는 팔찌가 편하다.
Ⅳ. 실무 적용 및 기술사 판단
실무 데이터 모델링에서 식별자를 선정할 때는 철저히 미래의 변경 가능성을 의심해야 한다.
설계 판단 체크리스트
- 이메일이나 휴대폰 번호를 식별자로 썼는가?
- 회피: 이메일은 계정 통합이나 변경 시 업데이트되어야 하므로 불변성을 위반한다. 반드시 인조 식별자를 내부 키로 두어야 한다.
- 복합 식별자의 속성이 3개를 넘어가는가?
- 회피: 조인 조건이 복잡해지고 인덱스 트리가 비대해진다. 무의미한 인조 식별자(일련번호)로 대체하고, 기존 속성은
UNIQUE제약 조건으로 관리해야 한다.
- 회피: 조인 조건이 복잡해지고 인덱스 트리가 비대해진다. 무의미한 인조 식별자(일련번호)로 대체하고, 기존 속성은
- 주민등록번호 같은 민감 정보가 포함되어 있는가?
- 회피:
DB암호화 시 인덱싱 및 조인이 불가능해진다. 절대 주 식별자로 사용해서는 안 된다.
- 회피:
안티패턴
-
"부서명+직급+이름"으로 사원 테이블의 주 식별자를 구성하는 행위. 이 중 하나라도 바뀌면 사원 개체의 정체성이 흔들리며 연관된 모든 FK를 연쇄 수정(
ON UPDATE CASCADE)해야 한다. -
📢 섹션 요약 비유: 바뀌는 주소를 집의 고유 번호표로 쓰면, 이사 갈 때마다 동네 지도를 다 다시 그려야 한다. 변하지 않는 토지 지번(인조 식별자)이 필요한 이유다.
Ⅴ. 기대효과 및 결론
견고하게 설계된 식별자는 데이터베이스 전체의 정합성을 수호하는 뼈대가 된다. 튼튼한 식별자는 시스템 런타임에 불필요한 연쇄 갱신을 막고 조인 성능을 최적화하며, 무엇보다 개발자가 비즈니스 로직에만 집중할 수 있게 해준다.
반면, 식별자의 불변성을 가볍게 여겨 변경 가능한 속성을 주 식별자로 삼으면, 향후 마이그레이션이나 시스템 통합 시 막대한 데이터 클렌징 비용을 치르게 된다.
결론적으로 식별자는 ER 모델에서 가장 무거운 책임을 지는 속성이며, 단순한 '고유 값'이 아니라 데이터 생명주기 전체를 관통하는 시스템의 식별 체계로 인식해야 한다.
- 📢 섹션 요약 비유: 건물의 철골 구조(식별자)를 처음부터 단단히 세워두면 나중에 벽지(속성)를 몇 번을 바꿔도 건물은 무너지지 않는다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
|---|---|
| 기본 키 (PK) | ER 모델의 식별자가 RDBMS 물리 스키마로 구현된 형태 |
| 정규화 (Normalization) | 식별자(함수자)를 기준으로 속성 간의 함수적 종속성을 제거해 테이블을 분리하는 과정 |
| 외래 키 (FK) | 부모 엔터티의 주 식별자를 자식 엔터티가 상속받아 관계를 형성하는 매개체 |
| 식별/비식별 관계 | 부모의 식별자를 자식이 식별자(PK)로 쓰는지, 일반 속성(FK)으로 쓰는지의 차이 |
📈 관련 키워드 및 발전 흐름도
개체와 속성 정의 (Entity & Attribute)
│
▼
후보 식별자 도출 (Candidate Identifier)
│
▼
주 식별자 선정 (Primary Identifier) · 4가지 요건 검증
│
▼
인조 식별자 (Surrogate) 도입 판단 및 복합 키 해소
│
▼
물리 모델링 매핑: 기본 키 (PK) 및 참조 무결성 (FK) 정의
👶 어린이를 위한 3줄 비유 설명
- 도서관에 같은 이름의 책이 여러 권 있으면 찾기 힘들겠죠?
- 그래서 책마다 바코드가 그려진 '고유 번호표'를 붙여둬요.
- 식별자는 수많은 데이터 중에서 "바로 이거야!"라고 딱 집어낼 수 있게 해주는 마법의 번호랍니다.