데이터 모델링/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 일부만(중요한 것) 저장할건지 / 최종 데이터틑 관리할지 말지 / 성분이력?
- 원래 관리하던 데이터가 변경되었을 때 변경 전 데이터를 추가로 관리하는 엔티티
- 업무처리 과정에서 변경이 발생하지 않을 수도 있다
- 업무처리와 무관하게 발생하기도 한다
- 변경된 값은 정해진 값이 아니다
엔티티 도출 및 식별
- 관심 대상이 되는 데이터를 분석하여 엔티티로 구체화하는 과정
- 통합도 가능하기 때문에 쪼갤 수 있을 때까지 쪼개보고 합쳐본다 (통합을 염두에 둔다)
엔티티 명명
- 전체 주제영영 내에서 유일하게 부여하며, 관리하는 데이터를 가장 명확히 표현할 수 있도록 명명해야 한다
- 너무 길지 않아야 하고, 일반적인 용어보다는 구체적인 용어를 사용하는 것이 좋다
엔티티 정의 (클래스 정의)
- 엔티티에 대한 설명으로 관리하는 데이터 집합을 규정한다
- 데이터에 대한 발생 규칙 및 업무 규칙 등을 기술함으로써 엔티티를 정의하는 과정이다
엔티티 통합 → 뽑아서 조상으로 만들까!?
- 핵심 엔티티는 다른 엔티티와 많은 관계를 가지는 특성이 있어, 엔티티를 통합할 경우 관계도 통합되어 관계가 단순해지고 명확해진다