3. 논리 모델링 - b. 엔티티 정의 및 상세화
엔티티를 생성관점에 따라 핵심 엔티티(Key Entity), 중요 엔티티(Main Entity), 행위 엔티티(Action Entity)로 세분화 할 수 있다.
핵심 엔티티: 업무 행위의 주체, 대상. - ex) 고객, 상품
중요 엔티티: 업무 주체와 대상 간의 거래나 업무 행위에 의해 발생. - ex) 계약, 배송
행위 엔티티: 업무 행위에 대한 상세내역 및 업무 결과에 대한 상태. - ex) 결제내역
※ 핵심 엔티티
업무처리와 상관없이 독립적으로 이미 정의한 엔티티거나, 업무를 위해 미리 정의한 엔티티
데이터 모델링 과정에서 가장 먼저 분석해야할 대상
모든 업무 행위는 핵심 엔티티에 의해 정의되거나 핵심 엔티티 간의 관계에 의해 정의된다고 볼 수 있음
핵심 엔티티를 데이터 성격에 따라 나누면 다음과 같이 나눌 수 있다.
유형 및 분류
각종 코드 정보로 실 세계 데이터 집합을 유형화하거나 계층적으로 분류하는 정보
예) 고객유형코드, 상품분류코드 등 각종 코드정보
업무 규칙 및 지식
업무처리를 위한 각종 규정과 지식, 비즈니스 이벤트 발생을 위한 조건
예) 직급별 연봉, 보험료 조건, 지역별 담당자
업무 주체 및 대상
비즈니스 이벤트의 주체 또는 대상
예) 부서, 사원, 고객, 상품
장소
비즈니스 이벤트가 발생하는 장소
예) 물류창고, 공장, AS센터, 도로, 채널, 지역, 좌표 등
※ 중요 엔티티
업무 주체(예, 고객, 직원)와 업무 대상(예, 상품) 간의 거래나 업무 행위에 의해 발생하며, 주문, 약정, 입출고처
럼 구별 가능한 업무 행위를 대표하는 엔티티
핵심 엔티티 간의 관계 엔티티(종속적인) 성격을 가지면서, 업무영역 내에서는 비교적 독립적인 성격(강한 엔티
티, Strong Entity)을 가짐
※ 행위 엔티티
업무 행위에 대한 상세내역 및 업무 결과에 대한 상태(Status)를 나타내는 엔티티
중요 엔티티에 종속되거나 다른 행위 엔티티에 종속되며 주로 중요 엔티티에 인스턴스가 발생함과 동시에 행
위 엔티티에도 하나 이상의 인스턴스가 발생함
하위에 또 다른 행위 엔티티를 가질 수 있으며, 정규화 과정에서 다른 엔티티로 분리하기도 함
이력 관리의 범위
전체 이력관리, 변경항목만 이력관리, 변경 시점을 이벤트로 관리, 변경시점을 구간으로 관리, 최종 데이터 포함 이력
→ 잘 고민해서 선택
엔티티 도출 및 식별
엔티티 도출 및 식별은 관심 대상이 되는 데이터를 분석하여 엔티티로 구체화하는 과정
가장 일반적이면서 효과적인 접근 방법은 현행(As-Is) 데이터모델을 바탕으로 현업의 기능 및 데이터 요구사항
을 정의하면서 엔티티를 도출하고 식별하는 것
현행 데이터 모델이 없다면 리버스 작업을 먼저 수행함
엔티티 명명
엔티티명은 전체 주제영역 내에서 유일하게 부여하며, 관리하는 데이터를 가장 명확히 표현해야 함
일반적인 용어보다는 구체적인 용어를 사용하면서 너무 길지 않아야 함
유사한 엔티티를 통합하지 않고 별도 엔티티로 설계할 때 주제영역이나 수식어를 붙여서 엔티티 구분
명명 규칙을 정하여 부여하는 것이 좋음
엔티티 정의
엔티티 정의는 엔티티에 대한 설명으로 관리하는 데이터 집합을 규정함
데이터에 대한 발생 규칙 및 업무 규칙 등을 기술함
엔티티 통합
엔티티 통합은 엔티티 일반화와 특수화와 관련 있음
공통 속성은 일반화하여 통합하고 개별속성은 특수화하여 서브타입 엔티티티로 정의함
핵심 엔티티는 다른 엔티티와 많은 관계를 가지므로 통합할 경우 관계도 통합되어 관계가 단순하고 명확해짐
데이터 통합 과정
데이터에 대한 분류체계, 식별체계, 속성체계를 일원화하는 과정