Skip to main content

엔터티 (Entity)

엔터티(Entity)란 업무에서 관리되어야 할 데이터의 집합으로,
데이터베이스 내에서 저장·관리되는 실체적인 대상을 의미합니다.
즉, 데이터 모델링 과정에서 “무엇을 관리할 것인가”를 정의하는 핵심 단위입니다.

엔터티는 현실 세계의 개념, 사건, 장소 등을 데이터베이스에 표현하기 위한 논리적 단위로,
하나의 엔터티는 여러 인스턴스(레코드 Record)로 구성되며, 각각은 동일한 속성 구조를 가집니다.


정의

  • 엔터티 도출에선 명사Noun을 찾기
    업무 프로세스에서 관리가 필요한 명사를 중심으로 엔터티를 도출합니다.
    예를 들어, “고객”, “상품”, “주문”, “계좌”, “직원” 등은 모두 엔터티가 될 수 있습니다.

  • 핵심 개념
    엔터티는 데이터베이스에 저장되는 실체적이거나 개념적인 대상을 의미하며,
    각각의 엔터티는 속성(Attribute)을 가지며, 다른 엔터티와의 관계(Relationship)를 통해
    데이터 간의 연관성을 표현합니다.


특징

  • 식별자(Identifier)
    각 엔터티의 인스턴스를 구분하기 위한 고유 속성입니다.
    (예: 사번, 고객번호, 주문번호 등)

  • 인스턴스 집합
    하나의 엔터티는 2개 이상의 인스턴스(레코드)를 가져야 합니다.
    즉, 단일 데이터가 아닌 “데이터의 집합”을 의미합니다.

  • 속성(Attribute)
    엔터티가 가진 고유한 특성이나 성질을 의미합니다.
    예를 들어, 고객 엔터티는 ‘이름’, ‘전화번호’, ‘주소’ 등의 속성을 가질 수 있습니다.

  • 관계(Relationship)
    엔터티 간의 논리적인 연관성을 표현합니다.
    예: 고객 — 주문 (1:N 관계), 주문 — 상품 (N:M 관계)

  • 업무 중심성
    엔터티는 반드시 업무적으로 관리되어야 하는 데이터여야 합니다.
    단순한 정보가 아닌, 실제 시스템에서 관리·조회·변경이 필요한 데이터를 의미합니다.


종류

1. 유형 엔터티 (Type Entity)

업무에서 도출되며 지속적으로 사용되는 실제적 엔터티입니다.

  • 예: 고객, 강사, 사원, 학생 등
  • 현실 세계의 물리적 존재를 반영하며, 시스템에서 장기간 유지되는 데이터입니다.

2. 개념 엔터티 (Conceptual Entity)

물리적 형태는 없지만 관리해야 할 논리적 개념을 표현하는 엔터티입니다.

  • 예: 거래소 종목, 코스닥 종목, 생명보험 상품 등
  • 비즈니스 개념이나 규칙을 표현할 때 사용됩니다.

3. 사건 엔터티 (Event Entity)

비즈니스 프로세스에서 발생하는 일시적 사건을 나타냅니다.

  • 예: 주문, 청구, 체결, 결제, 환불 등
  • 업무의 흐름 속에서 발생하는 데이터를 관리하기 위한 엔터티입니다.

발생 시점에 따른 분류

  • 기본 엔터티 (Base Entity)
    독립적으로 생성되며, 다른 엔터티에 의존하지 않습니다.
    예: 고객, 상품, 부서 등
    → 모델의 중심이 되는 핵심 엔터티입니다.

  • 중심 엔터티 (Core Entity)
    기본 엔터티와 행위 엔터티 사이에서 연결 역할을 합니다.
    예: 계좌, 주문, 계약, 청구 등
    → 여러 엔터티 간의 관계를 조정하거나 매개하는 중간적 위치를 가집니다.

  • 행위 엔터티 (Action Entity)
    두 개 이상의 엔터티로부터 발생하는 엔터티입니다.
    예: 원자발주요청, 체결 이력 등
    → 업무상 발생한 이벤트나 결과를 저장합니다.


식별자 대표성

엔터티의 식별자는 각 인스턴스를 구분하기 위한 기준이 됩니다.

  • 주식별자 (Primary Identifier)
    최소성, 대표성, 유일성을 모두 만족하는 속성입니다.
    예: 주민등록번호, 사번, 주문번호 등
    → 시스템 전반에서 대표로 사용되는 고유 식별자입니다.

  • 보조식별자 (Alternate Identifier)
    유일성과 최소성은 만족하지만 대표성은 부족한 식별자입니다.
    예: 이메일, 닉네임 등
    → 주식별자가 아닌 대체 가능한 구분 속성입니다.


생성 여부에 따른 분류

  • 내부식별자 (Internal Identifier)
    엔터티 내부에서 스스로 생성되는 식별자입니다.
    예: 부서코드, 주문번호, 종목코드 등
    → 해당 엔터티의 내부 속성으로 직접 관리됩니다.

  • 외부식별자 (External Identifier)
    다른 엔터티와의 관계를 통해 만들어지는 식별자입니다.
    예: 거래처 엔터티의 회원ID, 주문 엔터티의 고객ID
    → 관계를 통해 상위 엔터티의 식별자를 상속받습니다.


속성의 수에 따른 분류

  • 단일식별자 (Single Identifier)
    하나의 속성으로만 구성된 식별자입니다.
    예: 고객번호, 사번 등
    → 관리와 검색이 단순하며 식별이 명확합니다.

  • 복합식별자 (Composite Identifier)
    두 개 이상의 속성으로 구성된 식별자입니다.
    예: (과목코드 + 학기 + 학번) 등
    → 조합된 값으로 하나의 인스턴스를 고유하게 식별합니다.


대체 여부에 따른 분류

  • 본질식별자 (Natural Identifier)
    비즈니스 프로세스 자체에서 자연스럽게 생성되는 식별자입니다.
    예: 주민등록번호, 상품코드 등
    → 업무상 의미를 내포한 식별자입니다.

  • 인조식별자 (Artificial Identifier)
    시스템적으로 인위적으로 부여되는 식별자입니다.
    예: 일련번호, 순번 등
    → 단순히 구분을 위한 기술적 식별자입니다.


Summary

  • 엔터티: 데이터 모델링의 출발점, 데이터의 구조와 관계를 명확히 정의하기 위한 핵심 요소
  • 정확한 엔터티 도출 -> 이후 속성 정의, 관계 설정, 식별자 설계의 기반
  • 목표: 데이터 일관성품질 높은 데이터베이스 설계로 이어집니다.