데이터 모델링/03. 논리 모델링

엔티티 정의 및 상세화 (2)

developer-soyun 2024. 11. 7. 23:06

핵심 엔티티 (Key Entity, 기준정보)

  • 업무처리와 상관없이 독립적으로 이미 정의한 엔티티거나, 업무를 위해 미리 정의한 엔티티
  • 데이터 모델링 과정에서 가장 먼저 분석해야 할 대상
  • 타 엔티티 유형의 존재 유무와 관계없이 독립적으로 존재하며 식별할 수 있다

핵심 엔티티 분류 (외우기)

  • 유형 및 분류 (Type & Category)
    • 별도 엔티티로 구성할 수도 있고, 여러 분류를 일반화하여 공통코드로 통합하여 관리할 수도 있다 
    • 분류체계는 자원을 식별하고, 판단기준이 되는 등, 업무 전체 영역에 미치는 영향이 크다 (대/중/소 기준)
  • 업무규칙 및 지식 (Rule & Knowledge)
    • 업무규칙이나 지식 등을 데이터로 관리하면 업무 요건이 변경되었을 때 프로그램을 수정하지 않고도 데이터를 반영하여 일정 부분 손쉽게 변경사항을 시스템에 반영할 수 있다
  • 업무주체 및 대상 (Subject & Object)
    • 보통 현실 세계에 실제로 존재하는 유.무형의 실체에 해당한다
  • 장소 (Where)
    • 장소를 나타내는 엔티티이다
    • 장소 자체가 의미를 가지는 엔티티도 있지만, 보통은 다른 핵심 엔티티의 공간이나 위치 속성으로 존재하기도 한다

중요 엔티티(Main Entity, 업무기본) 

  • 구별 가능한 업무 행위를 대표하는 엔티티이다
  • 핵심 엔티티 간의 관계 엔티티(종속적인) 성격을 가진다
  • 업무영역 내에서는 비교적 독립적인 성격(강한 엔티티, Strong Entity)을 가진다
  • 엄무의 핵심 기능과 밀접한 관련이 있다
  • 주요 업무에서 반복하여 발생하는 데이터를 관리하는 엔티티다

행위 엔티티 (Action Entity, 업무상세)

  • 업무 행위에 대한 상세내역 및 업무 결과에 대한 상태 (Status) 를 나타내는 엔티티
  • 중요 엔티티에 종속되거나 다른 행위 엔티티에 종속된다 (핵심 엔티티로부터 뻗어나간다)
  • 상세엔티티 (detail)
    • 중요 엔티티를 구성하는 항목 단위로 분류하거나 더 작은 세분화한 엔티티
  • 상태엔티티 (status)
    • 업무처리 흐름에 대한 상태를 관리
    • 업무처리 과정에서 반드시 발생하는 데이터
    • 상태코드 값은 사저에 엄무적으로 이미 정해진 값을 사용
  • 이력엔티티 (history)
    • 전체 속성 or 일부만(중요한 것) 저장할건지 / 최종 데이터틑 관리할지 말지 / 성분이력? 
    • 원래 관리하던 데이터가 변경되었을 때 변경 전 데이터를 추가로 관리하는 엔티티
    • 업무처리 과정에서 변경이 발생하지 않을 수도 있다
    • 업무처리와 무관하게 발생하기도 한다
    • 변경된 값은 정해진 값이 아니다

엔티티 도출 및 식별

  • 관심 대상이 되는 데이터를 분석하여 엔티티로 구체화하는 과정
  • 통합도 가능하기 때문에 쪼갤 수 있을 때까지 쪼개보고 합쳐본다 (통합을 염두에 둔다)

엔티티 명명

  • 전체 주제영영 내에서 유일하게 부여하며, 관리하는 데이터를 가장 명확히 표현할 수 있도록 명명해야 한다
  • 너무 길지 않아야 하고, 일반적인 용어보다는 구체적인 용어를 사용하는 것이 좋다

엔티티 정의 (클래스 정의)

  • 엔티티에 대한 설명으로 관리하는 데이터 집합을 규정한다
  • 데이터에 대한 발생 규칙 및 업무 규칙 등을 기술함으로써 엔티티를 정의하는 과정이다

엔티티 통합 → 뽑아서 조상으로 만들까!?

  • 핵심 엔티티는 다른 엔티티와 많은 관계를 가지는 특성이 있어, 엔티티를 통합할 경우 관계도 통합되어 관계가 단순해지고 명확해진다