논리 모델링이란?
데이터를 명확하고 구체적으로 정의하는 과정으로, 비즈니스 전체 영역에 대한 상세한 수준의 데이터 구조를 설계
엔티티 정의 및 상세화
주문 업무에서 고객, 상품 엔티티는 핵심 엔티티로 볼 수 있고, 주문 엔티티는 중요 엔티티, 주문 상세 또는 주문결제 등은 행위 엔티티로 볼 수 있다.
핵심엔티티
업무 처리와 상관없이 독립적으로 이미 정의한 엔티티거나, 업무를 위해 미리 정의한 엔티티다. 고객, 부서, 직원, 상품 등 단독으로 존재하거나 다른 핵심 엔티티에 종속되기도 한다.
핵심 엔티티의 데이터 성격)
- 유형 및 분류(Type & Category) : 고객유형코드, 상품분류코드 등 각종 코드정보
- 업무규칙 및 지식(Rule & Knowledge) : 직급별 연봉, 보험료 조건, 지역별 담당자
- 업무주체 및 대상(Subject & Object) : 부서, 사원, 고객, 상품
- 장소(Where) : 물류창고, 공장, AS센터, 도로, 채널, 지역, 좌표 등
* 업무 행위의 주체, 행위의 대상(목적), 육하원칙에 해당하는 부분들
중요엔티티
업무 주체(고객, 직원)와 업무 대상(상품) 간의 거래나 업무 행위에 의해 발생하며, 주문, 약정, 입출고처럼 구별 가능한 업무 행위를 대표하는 엔티티
- 핵심 엔티티 간의 관계 엔티티(종속적인) 성격을 가지면서, 업무영역 내에서는 비교적 독립적인 성격(강한 엔티티)을 가진다.
- 상위 엔티티의 주 식별자를 상속받지 않고, 계좌번호와 같은 독립적인 주 식별자를 가지고 있다는 점에서 다른 엔티티들과 구분할 수 있다.
- 주문번호, 계좌번호, 입출고번호처럼 업무행위를 대표하는 별도의 번호 및 번호 구성 체계를 가진다.
- 업무의 핵심 기능과 밀접한 관련이 있고, 주요 업무에서 반복하여 발생하는 데이터를 관리하는 엔티티다.
행위엔티티
업무 행위에 대한 상세내역 및 업무 결과에 대한 상태(Status)를 나타내는 엔티티이며, 중요 엔티티에 종속되거나 다른 행위 엔티티에 종속된다.
- 주로 중요 엔티티에 인스턴스가 발생함과 동시에 행위 엔티티에도 하나 이상의 인스턴스가 발생한다.
- 주문내역, 결제내역, 배송지상세내역 등이 해당된다.
- 하위에 또 다른 행위 엔티티를 가질 수 있으며, 정규화 과정에서 다른 엔티티로 분리하기도 한다.
예시)
- 상세/내역 : 품의 내역, 품의 거래처, 품의 첨부파일, ...
- 상태 : 품의 진행상태
- 이력관리 : 품의 이력
식별자 지정
- 식별자는 유일하게 식별 가능한, 최소 속성으로 구성하고, 변하지 않으면서, 반드시 존재하는 값이어야 한다.
- 모든 엔티티는 식별자를 가져야 하며, 식별자를 가지지 못하면, 정상적인 엔티티가 아니라 임시 저장 성격의 데이터일 가능성이 높다.
본질 식별자
- 엔티티에 원래 존재하는 속성으로 구성된 식별자 (사원번호, 주민등록번호, ...)
- 그렇지 않은 경우 : 업무 처리나 이벤트 성격의 데이터인 경우 ( 회원ID, 계좌번호)
인조 식별자
- 인위적으로 부여한 일련번호 형식의 식별자
<인조 식별자를 정의하는 경우>
⑴ 엔티티를 통합할 때 통합 대상 엔티티 식별자가 서로 다르거나, 데이터 집합 단위가 다른 경우
⑵ 식별자 속성 개수가 많아져 모델이 복잡해질 때 단순화와 개발 편의성을 위해 인조 식별자를 추가하는 경우
⑶ 개인정보 암호화 대상에 해당하여 본질 식별자를 주 식별자로 사용하지 못하는 경우
⑷ 본질 식별자에 대한 데이터가 들어 오지 않은 상태에서 업무 처리를 위해 인조 식별자를 추가하는 경우
코드 표준화
- 업무에서 통계를 내거나 한정된 데이터 값을 목록화하여 관리하고자 하는 대상을 코드로 식별하여 정의
- 코드는 공통코드로 통합하여 관리하거나, 개별 테이블 형태로 관리(목록성 코드)
- 코드 사전에서는 코드에 대한 코드유형ID, 코드유형명, 코드, 코드명 등을 정의한다.
- 코드유형을 정의할 때 업무에서 동일한 의미로 사용하는 코드는 최대한 통합하여 단일 코드유형으로 정의한다.
코드체계 | 코드체계 설명 | 코드 예시 |
분류형 | 대/중/소 세분류 형태의 계층형 코드체계를 가지며, 코드 자리수에 의미를 부여하여 사용한다. | ▶ 한국표준산업분류 01 : 농업 011 : 작물 재배업 0111 : 곡물 및 기타 식량작물 재배업 012 : 축산업 |
일련번호형 | 일련번호와 같이 의미없는 번호를 순차적으로 부여한다. 길이만큼 앞에 '0'을 채운다. | ▶ 고객유형 01 : 개인 02 : 법인 99 : 기타 |
약어형 | 의미를 지니는 영문약어명으로 코드를 부여한다. | ▶ 성별 M : 남자 F : 여자 |
차용형 | 일반적으로 통용되는 코드를 그대로 사용한다. | ▶ 은행코드 001 : 한국은행 002 : 산업은행 003 : 기업은행 |
<코드 부여>
[참고]
<핵심 데이터 모델링 - 유동오 저>
'공부 > 데이터 베이스' 카테고리의 다른 글
효율적인 쿼리(인덱스, 뷰, JOIN) (0) | 2024.07.01 |
---|---|
<핵심 데이터 모델링> - 개념 모델링 (0) | 2024.07.01 |
<핵심 데이터 모델링> - 데이터 모델링이란? (0) | 2024.07.01 |
[데이터 베이스] 3장_데이터베이스 시스템 (0) | 2021.10.08 |
[데이터 베이스] 2장_데이터베이스 관리 시스템 (0) | 2021.10.07 |