DB/data modeling

6.논리 모델링_엔티티 정의 및 상세화

wooweee 2023. 5. 27. 19:19
728x90

1. 논리 모델링이란

  • DBMS의 물리적인 특성까지 고려할 필요는 없다.

 

2. 엔티티 정의 및 상세화

  • 핵심 엔티티, 중요 엔티티, 행위 엔티티 세분화
  • 예시
    • 주문 핵심 엔티티: 고객, 상품
    • 주문 엔티티: 중요 엔티티, 주문 상세 또는 주문 결제

 

2.1. 핵심 엔티티(4가지)

  • 업무처리와 상관없이 독립적으로 이미 정의한 엔티티거나, 업무를 위해 미리 정의한 엔티티
  • 핵심 엔티티는 타 엔티티 유형의 존재 유무와 관계없이 독립적으로 존재하며 식별할 수 있다.
  • 엔티티 집합을 명확하게 정의하고, 인스턴스 생애주기에 대한 충분한 이해를 바탕으로 설계

 

  • 4가지
    1. 유형 및 분류 : 대-중-소
    2. 업무규칙 및 지식 : 회원 등급이 오르는 기준
    3. 업무주체 및 대상
    4. 장소

 

  • 유형 및 분류
    • 대분류, 중분류, 소분류, 세분류 코드
    • 고정 방식으로 가는 것이 좋다.
  • 업무규칙 및 지식 엔티티
    • 업무 요건이 변경되었을 때 프로그램을 수정하지 않고도 데이터를 반영하여 일정 부분 손쉽게 변경사항을 시스템에 반영할 수 있다.
  • 업무 주체 및 대상
    • 업무나 거래 주체는 고객, 사원, 부서, 협력회사
    •  고객 : 기업에서 가장 중요한 엔티티 중 하나이며, 데이터 집합을 정의하기 까다롭다.
      • 비회원도 고객? 최소 정보? 외국인은 주민번호 없는데? 개인과 개인사업자는 동일한 고객인가?
  • 장소
    • 장소 자체가 의미를 가지는 엔티티도 있지만 공간이나 위치 속성으로 도 존재하기도 한다.
    • 물리적인 형태의 독립적인 엔티티로 식별하는 것이 좋은지, 조직 일부로 관리해도 되는지 판단이 중요

 

2.2. 중요 엔티티

  1. 동사 == 업무 행위
  2. 주요 업무에서 반복하여 발생하는 데이터를 관리하는 엔티티 - 해당 업무에 대해 일정기간 업무처리를 담당하는 담당자가 존재한다.
  3. 업무 주체와 업무 대상 간의 거래나 업무 행위에 의해 발생
  4. 업무 영역에서 가장 중심적인 업무처리에 대한 데이터 집합이며, 이를 중심으로 상세 업무 데이터, 이력, 상태를 기록하기 위한 데이터들이 하위 엔티티들로 구성

 

  • 예시 : 주문, 배송, 발주 - (대상으로) 주문상품, 배송상품, 발주상품

 

2.3. 행위 엔티티(상세, 상태, 이력)

  • 업무 행위에 대한 상세내역 및 업무 결과에 대한 상태를 나타내는 엔티티

 

  1. 상세/내역
    • 주문 내역, 예산 내역처럼 중요 엔티티에 해당하는 주문이나 예산을 구성하는 항목 을 더 작은 단위로 세분화한 엔티티
  2. 상태
    • 일반적으로 업무는 더 작은 업무 단위로 나누어 처리되며, 시간의 간겨글 두고 업무 단계별로 담당자가 업무를 처리하는 흐르을 가진다.
  3. 이력
    1. row-column
      • 전체 항목 이력
      • 부분 항목 이력
    2. 점, 선분
      • 점: 주문
      • 선분: 가격 
  4. 기타
    • 최종 데이터 포함 이력

 

2.4. 엔티티 도출 및 식별

  • 관심 대상이 되는 데이터를 분석하여 엔티티로 구체화하는 과정
    1. 가장 일반적이면서 효과적인 접근 방법: AS-IS(현행) 데이터모델을 바탕으로 현업의 긴으 및 데이터 요구사항을 정의하면서 엔티티를 도출하고 식별

    2. 현행 데이터 모델에서 불필요한 업무나 기능과 관련된 테이블을 식별하여 삭제한다.

    3. 판단이 서지 않는다면 일단 삭제하고시작

    4. 선별 작업이 어느 정도 마무리되면 현업과 인터뷰하기 전에 엔티티명, 관계선, 속성명을 정리 - 모든 명칭을 자명성이 들어나도록

 

 

2.5. 엔티티 명명

  • 너무 길지 않아야 한다. (이건 제일 마지막에 생각)

  • 구체적인 용어 사용
  • 유사한 엔티티를 통합하지 않은 경우 주제영역이나 수식어를 붙여서 엔티티를 구분
    ex) 여신계좌, 수신계좌 - 자명성

  • 최적화된 단수형 명사

  • 자명성을 위해서 수식어를 사용
    주소 -> 고객주소, 입금내역 -> 계약입금내역

  • 교차 엔티티는 양쪽 엔티티 명의 조합을 기본 명칭으로 사용
    계약 + 상품 -> 계약 상품

  • 낱 단어는 예외적을 사용한다.
    별, 및  고객별실적, 예산계획및실적
  • 한글과 알파벳 대문자 사용

  • 숫자와 언더바를 제한적으로 허용하며 띄어쓰기나 기타특수문자 사용않는다.

 

2.6. 엔티티 정의

  • life cycle에 관한 내용
  • 이전에 했던 고객이 무너가, 비회원도 회원인가 관한 내용
  • 아직 어려운 내용이여서 보류한다.

 

2.7. 엔티티 통합

  • 엔티티 일반화와 특수화와 관련이 있다.