현재 선택한 데이터 아키텍처 과정

DAsP 이론 학습

이론 목록으로 돌아가기

핵심 엔터티와 식별자 원칙

핵심 엔터티는 업무의 중심 생명주기와 다수의 사건·관계를 지탱하는 안정적 데이터 대상이다. 식별자는 인스턴스를 유일하고 최소하게 구별해야 하며 후보·주·대체, 본질·인조, 내부·외부, 단일·복합 관점으로 분류하고 업무 유일성·안정성을 함께 검증한다.

예상 읽기 5

핵심 요약

핵심 엔터티는 단순히 건수가 많거나 관계선이 많은 엔터티가 아니라 조직의 핵심 업무를 지속적으로 설명하고 여러 업무에서 재사용되는 기준점이다. 각 엔터티의 식별자는 유일성, 최소성, 필수성, 안정성을 만족해야 하며, 인조 식별자를 도입하더라도 원래의 업무 유일성 규칙은 대체 식별자나 유일성 제약으로 보존한다.

학습 목표

  • 핵심 엔터티의 판정 기준과 단순 대용량 엔터티의 차이를 설명한다.
  • 후보·주·대체 식별자를 구분한다.
  • 본질·인조, 내부·외부, 단일·복합 식별자를 사례에 적용한다.
  • 좋은 식별자의 유일성·최소성·안정성을 검증한다.

1. 핵심 엔터티의 판정

핵심 엔터티는 전사나 주제영역의 주요 업무 개념을 대표하고 다른 엔터티의 발생과 해석 기준이 되는 경우가 많다.

판정 기준확인 질문오해
업무 중요성핵심 상품·고객·계약·거래를 설명하는가데이터 건수가 많으면 모두 핵심
생명주기 중심성주요 사건이 이 엔터티를 중심으로 발생하는가화면 중앙에 표시되면 핵심
공유·재사용여러 프로세스·시스템이 공통으로 참조하는가한 시스템에서만 많이 사용해도 전사 핵심
관계 중심성다른 기준·사건 엔터티와 의미 있는 관계가 많은가관계선 개수만으로 결정
안정성조직·시스템 변화에도 업무 의미가 유지되는가임시 집계 테이블도 핵심
원천 책임정의·생성·정정의 기준점이 명확한가이용 부서가 많으므로 원천도 여러 개

예를 들어 고객, 상품, 계약은 많은 업무 사건의 기준이 되므로 핵심 후보가 될 수 있다. 반면 접속로그는 건수가 매우 많아도 특정 분석·운영 목적의 사건 데이터일 수 있다.

2. 식별자의 성질

2.1 기본 요건

  • 유일성: 한 식별자 값은 한 인스턴스만 가리킨다.
  • 최소성: 일부 속성을 제거하면 유일성이 깨지는 최소 조합이다.
  • 필수성: 식별자 값은 인스턴스 생성 시 확보되고 널이 될 수 없다.
  • 안정성: 업무가 지속되는 동안 값이 자주 변경되지 않는다.
  • 명확성: 생성·부여·재사용·폐기 규칙을 설명할 수 있다.

유일하다는 사실만으로 좋은 주 식별자는 아니다. 이름·휴대전화번호처럼 변경 가능하거나 개인정보 정책에 영향을 받는 값은 안정성과 관리 위험을 검토해야 한다.

3. 식별자 분류

3.1 대표성

분류의미
후보 식별자유일성과 최소성을 만족하는 모든 후보고객번호, 국가코드+사업자번호
주 식별자후보 중 엔터티를 대표하도록 선택한 식별자고객번호
대체·보조 식별자주 식별자로 선택되지 않은 나머지 후보국가코드+사업자번호

3.2 생성 근거

분류의미장점과 주의
본질·자연 식별자업무에서 원래 존재하는 속성으로 구성업무 의미가 분명하지만 변경·길이·개인정보 위험 확인
인조·대리 식별자시스템이 순번·UUID 등으로 생성짧고 안정적일 수 있으나 업무 중복 방지 규칙을 별도 보존

3.3 발생 위치

  • 내부 식별자: 해당 엔터티 자체의 속성에서 생성된다. 예: 시스템이 발급한 주문번호.
  • 외부 식별자: 상위·부모 엔터티와의 관계를 통해 이관된 식별자 속성이 자식 식별자에 참여한다. 예: 주문항목주문번호.

외부 식별자를 단순한 모든 외래키와 동일시하지 않는다. 부모 식별자가 자식의 주 식별자에 포함되는지 여부가 핵심이다.

3.4 구성 속성 수

  • 단일 식별자: 한 속성으로 유일성을 확보한다.
  • 복합 식별자: 두 개 이상의 속성 조합으로 유일성을 확보한다.

복합 식별자는 구성요소 전체가 최소여야 한다. 주문번호+상품번호로 주문항목을 식별할 때 같은 상품을 한 주문에 여러 번 별도 행으로 허용하면 순번 등 추가 속성이 필요하다.

4. 식별자 선정 흐름과 사례

4.1 선정 흐름

  1. 무엇을 한 인스턴스로 보는지 발생 기준을 확정한다.
  2. 업무상 유일한 속성·조합을 모두 후보로 수집한다.
  3. 유일성·최소성·필수성·안정성을 검증한다.
  4. 짧고 안정적이며 널이 없는 후보를 주 식별자로 선택한다.
  5. 나머지 후보의 업무 유일성을 대체 식별자로 보존한다.
  6. 생성·변경·재사용·폐기 규칙을 정의한다.

4.2 고객 식별자 사례

고객 이메일이 현재 유일하더라도 이메일 변경, 가족 공동 주소, 탈퇴 후 재가입 정책을 확인해야 한다. 인조 고객번호를 주 식별자로 선택할 수 있지만 “활성 계정에서 이메일 중복 금지”가 업무 규칙이라면 이메일에 대한 대체 식별 또는 조건부 유일성 통제를 별도로 유지한다.

4.3 주문항목 사례

업무 규칙이 “한 주문에서 같은 상품은 한 행으로 합산”이면 주문번호+상품번호가 후보가 될 수 있다. 동일 상품을 서로 다른 프로모션·배송지로 여러 행 등록할 수 있다면 이 조합은 유일하지 않다. 주문항목순번을 추가하거나 인조 주문항목번호를 사용하고, 실제 업무 중복 조건을 별도로 정의한다.

5. 비교와 구분

구분업무 식별자물리 기본키외래키
중심논리적으로 인스턴스를 구별하는 규칙DBMS에서 행을 대표하도록 구현한 키다른 테이블의 행을 참조하는 컬럼
관계물리 PK 또는 UNIQUE로 구현 가능인조 키를 선택할 수 있음식별 관계이면 자식 PK에 참여 가능
주의업무 유일성을 잃지 않음인조 PK만으로 중복 업무 행을 막지 못할 수 있음모든 FK가 식별자는 아님

시험 판단 포인트

  • 데이터량은 핵심 엔터티의 충분조건이 아니다.
  • 후보 식별자는 모두 유일·최소해야 하며 주 식별자는 그중 하나를 선택한다.
  • 인조 식별자 도입은 본질적 업무 유일성의 제거가 아니다.
  • 외부 식별자는 부모 식별자가 자식 식별자 구성에 참여하는 경우를 말한다.
  • 현재 데이터에서 우연히 유일한 값과 업무 규칙상 항상 유일한 값을 구분한다.

자주 틀리는 부분

  • 이름, 전화번호처럼 변경 가능한 값을 검증 없이 주 식별자로 선택한다.
  • 인조 순번 PK를 추가한 뒤 자연 후보키의 중복을 허용한다.
  • 복합 식별자에 유일성과 무관한 속성을 더해 최소성을 훼손한다.
  • 모든 외래키를 외부 식별자라고 부른다.
스스로 확인하기

개념 확인 문제

문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.

01[객관식] 핵심 엔터티 판정 기준으로 가장 부적절한 것은? - A. 핵심 업무 생명주기의 기준점인가 - B. 여러 업무에서 공유·재사용되는가 - C. 현재 행 수가 가장 많은가 - D. 다른 주요 엔터티와 의미 있는 관계를 갖는가
정답 및 해설

정답: C

  • 행 수는 운영 규모를 보여줄 수 있으나 업무 중요성·공유성·생명주기 중심성을 보장하지 않는다.
  • A·B·D는 핵심 엔터티의 구조적·업무적 중요성을 판단하는 기준이다.
02[객관식] 인조 식별자를 주 식별자로 선택했을 때 가장 적절한 조치는? - A. 기존 업무 후보키의 유일성 규칙을 삭제한다. - B. 인조 키만 생성하면 중복 업무 행을 모두 방지할 수 있다고 본다. - C. 업무상 유일한 자연 속성 조합을 대체 식별자나 UNIQUE 규칙으로 보존한다. - D. 모든 외래키를 주 식별자에 포함한다.
정답 및 해설

정답: C

  • 인조 키는 행 식별을 단순화할 수 있지만 업무 중복을 막는 자연 후보키 규칙을 대체하지 않는다.
  • A·B는 업무 유일성을 잃게 하고, D는 관계 의미와 무관한 일괄 조치다.
03[연결형] 다음 설명을 후보·주·대체 식별자에 연결하라. - ㄱ. 유일성과 최소성을 만족하는 모든 식별 가능 조합 - ㄴ. 엔터티를 대표하도록 선택된 후보 - ㄷ. 선택되지 않았지만 업무 유일성을 유지해야 하는 후보
정답 및 해설

정답: ㄱ-후보 식별자, ㄴ-주 식별자, ㄷ-대체 식별자

  • 주 식별자는 후보 중 대표 하나이고 나머지 유효 후보는 대체 식별자로 관리한다.
04[참·거짓] 부모 엔터티의 식별자가 자식 엔터티에 외래키로 존재하면 언제나 자식의 외부 식별자이다.
정답 및 해설

정답: 거짓

  • 부모 식별자가 자식의 주 식별자 구성에 참여할 때 외부 식별자로 본다. 단순 참조 외래키로만 존재하면 자식 식별자가 아닐 수 있다.
05[사례 판단] 수강신청에 인조 수강신청번호를 PK로 사용한다. 동일 회원이 같은 강좌·학기에 한 번만 신청할 수 있다는 규칙을 어떻게 모델에 보존할지 설명하라.
정답 및 해설

모범 답안

  • 회원번호+강좌번호+학기코드를 후보·대체 식별자로 정의하고 논리 모델에 유일성 규칙을 표시한다.
  • 물리 모델에서는 해당 조합에 UNIQUE 제약을 두거나 같은 효과의 검증을 구현한다.
  • 재신청·취소 후 재등록이 가능하다면 신청차수나 상태·유효기간을 포함한 실제 유일성 규칙을 요구사항에서 다시 확정한다.