nu_s

[DB] 데이터 모델링 - 논리 모델링 📖 본문

Data Base/DB Modeling

[DB] 데이터 모델링 - 논리 모델링 📖

woochii 2023. 9. 2. 01:57
728x90
반응형

논리 모델링

  • 논리 모델링은 비즈니스에서 필요로 하는 데이터를 명확하고 구체적으로 정의하는 과정
  • 비즈니스 전체 영역에 대한 상세한 수준의 데이터 구조를 설계한다.
  • 구축 방법론에 따라 기초 논리 데이터 모델 설계와 논리 데이터 모델 설계로 분리할 수 있다.

 

1. 엔티티 정의 및 상세화

1-1 핵심 엔티티(Key Entity)

  • 업무처리와 상관없이 독립적으로 이미 정의한 엔티티거나, 업무를 위해 미리 정의한 엔티티
    1. 유형 및 분류
    2. 업무규칙 및 지식(Business rule)
    3. 업무주체 및 대상 (S & O)
    4. 장소
  • 핵심 엔티티를 데이터 성격에 따라 나누면 다음과 같다.

1-1-1 유형 및 분류

  • 기업 활동에 대한 통계 수집 및 분석을 위한 기준으로 활용한다.
  • 대분류, 중분류, 소분류, 세분류 코드로 구성되며 코드간 계층 구조를 가진다.
  • 별도 엔티티로 구성할 수도 있고, 여러 분류를 일반화하여 공통 코드로 통합하여 관리할 수도 있다.

1-1-2 업무규칙 및 지식

  • 업무 규칙이나 지식 등을 데이터로 관리하면 업무 요건이 변경되었을 때 프로그램을 수정하지 않고도 데이터를 반영하여 일정 부분 손쉽게 변경사항을 시스템에 반영할 수 있다.

1-1-3 업무 주체 및 대상

  • 보통 현실세계에 실제로 존재하는 유,무형의 실체에 해당한다.
  • 업무나 거래 주체는 고객, 사원, 부서, 협력회사 등이 있다.
  • 거래나 서비스 제공의 대상이 되는 상품/제품 등이 있다.

1-1-4 장소

  • 장소 자체가 의미를 가지는 엔티티도 있지만, 보통 다른 핵심 엔티티의 공간이나 위치 속성으로 존재한다.
  • 물리적 형태의 독립적 엔티티로 식별하는 것이 좋은지, 조직 등의 일부로만 관리해도 되는지 판단이 중요

 

 

1-2 중요 엔티티(Main Entity)

  • 업무 주체와 업무 대상 간의 거래나 업무 행위에 의해 발생하며, 구별 가능한 업무 행위를 대표하는 엔티티
  • 핵심 엔티티 간의 관계 엔티티 성격을 가지며, 업무영역 내에선 비교적 독립적인 성격을 가진다.

중요엔티티는 업무의 핵심기능과 밀접한 관련이있고, 주 업무에서 반복하여 발생하는 데이터를 관리하는 엔티티다.

 

 

 

 

1-3. 행위 엔티티(Action Entity)

  • 업무 행위에 대한 상세내역 및 업무 결과에 대한 상태를 나타내는 엔티티
  • 중요 엔티티에 종속되거나 다른 행위 엔티티에 종속된다.
  • 중요 엔티티에 인스턴스가 발생함과 동시에 행위 엔티티에도 하나 이상의 인스턴스가 발생한다.
  • 하위에 또 다른 행위 엔티티를 가질 수 있으며, 정규화 과정에서 다른 엔티티로 분리하기도 한다.
  • 중요 엔티티에 종속되므로, 중요 엔티티를 삭제하면 행위 엔티티도 더이상 관리하지 않는다.
  • 중요 엔티티를 중심으로 업무에 대한 상세나 내역, 상태, 이력 성격의 엔티티들로 구성된다.

1-3-1 상세/내역

  • 주문내역, 예산내역 같이 중요 엔티티를 구성하는 항목으로 분류하거나 더 작은단위로 세분화한 엔티티

1-3-2 상태

  • 업무는 더 작은 업무단위로 나누어 처리되며, 시간 간격을 두고 담당자가 업무를 처리하는 흐름을 가진다.
  • 단순히 업무상태와 업무처리일시를 관리하기도 하고, 내용에 대한 변경도 같이 관리하기도 한다.
  • 이력이 시간의 흐름에 따른 정보 변경을 관리한다면 상태는 업무처리 흐름에 대한 상태를 관리한다.

1-3-3 이력

  • 원래 관리하던 데이터가 변경되었을 때 변경 전 데이터를 추가로 관리하는 엔티티
  • 행위 엔티티를 포함한 모든 엔티티에 대해 이력 엔티티를 추가로 설계할 수 있다.
  • 이력 데이터를 통해 특정 시점의 데이터를 재현할 수 있다.
  • 이력 관리 범위에 따라 속성 전체를 대상으로 이력을 관리하거나, 일부 속성을 대상으로 관리할 수 있다.

 

 

엔티티 도출 및 식별

  • 엔티티 도출 및 식별은 관심 대상이 되는 데이터를 분석하여 엔티티로 구체화 하는 과정이다.
  • 보통 현행(As-Is) 데이터 모델을 바탕으로 현업의 기능 및 데이터 요구사항을 정의하면서 도출하고 식별한다.

엔티티 명명

  • 엔티티명은 전체 주제영역 내에서 유일하게 부여하며, 데이터를 가장 명확히 표현할 수 있도록 명명해야 한다.

엔티티 정의

  • 데이터에 대한 발생 규칙 및 업무 규칙 등을 기술함으로써 엔티티를 정의하는 과정 (Ex. 고객이란 무엇인가?)
  • 독립적인 엔티티는 주민등록번호, 상품번호 등 식별자가 존재하므로 식별자 중심으로 정의하는 것이 좋다.
  • 종석 엔티티는 엔티티간 관계의 성격을 파악하여, 집합 단위나 데이터 발생 기준을 정의하는 것이 좋다.

(Ex. 주문을 “고객이 하나 이상의 상품을 구매하기 위해 주문처리를 요청하고 결제처리를 완료한 상태”로 정의)

엔티티 통합

  • 엔티티 통합은 엔티티 일반화와 특수화와 관련이 있다.
  • 엔티티 통합은 고객, 상품 등 핵심 엔티티에서 자주 볼 수 있다.
  • 핵심 엔티티는 다른 엔티티와 많은 관계를 가지는 특성이 있어 엔티티를 통합할 경우 관계도 통합되어 단순해지고 명확해진다.

 

2. 관계 도출 및 정의

  • 관계(Relationship)는 엔티티와 엔티티 간의 관계를 말한다.
  • 부모와 자식 엔티티 간의 종속 관계와 주체나 대상이 되는 엔티티를 참조하는 참조 관계로 나눌 수 있다.
  • 데이터 모델링의 원칙 중 하나가 ‘데이터 품질’이다
  • 엔티티 간의 관계가 명확하게 정의되어 있어야 참조 무결성 제약조건(FK)을 추가하거나 참조 관계를 구현하여 데이터 품질을 높일 수 있다.

관계 도출

  • 관계를 업무 행위의 성격에 따라 행위의 주체, 대상, 상세, 인과, 역할/자격, 구성, 참조관계 등으로 구분한다.

2-1 속성 도출 및 정의

  • 논리 모델링 단계에서 속성에 대한 설계는 엔티티에서 관리하는 속성을 도출하여 식별하고 정의하는 과정
  • 속성명, 속성정의나 설명, 필수여부, 데이터 타입 등을 정의 해야 한다.

2-1-1 속성 도출

1. 핵심 엔티티 속성

  • 핵심 엔티티의 경우 식별자 및 명칭, 특성/특징/제원, 접촉정보, 위치정보, 약관/정책, 관계 속성을 포함한다. 고객, 상품 등의 엔티티의 경우 속성은 주민등록번호, 상품번호 같은 식별자와 명칭으로 구성 생년월일, 크기, 중량 등 특성이나 제원을 포함 주소, 연락처 같은 접촉정보 주소, 장소에 대한 위치정보를 관리

2. 중요 엔티티/행위 엔티티 속성

  • 거래 주체나 대상 엔티티의 식별자에 해당하는 참조 식별자, 계약일자, 계약금액 등의 거래정보, 계약 업무를 처리한 담당자 사번 및 부서코드 등의 업무처리정보를 포함한다.

2-1-2 속성명 부여

  • 속성을 가장 명확하게 설명할 수 있는 명칭을 부여해야 한다.
  • 표준용어나 표준단어를 사용한다.

2-1-3 속성 정의

  • 속성에 대한 설명이나 데이터 발생 규칙 등을 기술한다.
  • 속성 정의는 관계나 속성의 성격에 따라 달리 기술해야 한다.

2-1-4 식별자 지정

  • 식별자는 원래 존재하는 속성이냐에 따라 본질 식별자와 인조 식별자로 구분한다.
  • 본질 식별자는 엔티티에 원래 존재하는 속성으로 구성된 식별자다.
  • 인조 식별자는 결재번호처럼 인위적으로 부여한 일련번호 형식의 식별자다.
    1. 엔티티를 통합할 때 대상 엔티티 식별자가 서로 다르거나 집합단위가 다른 경우
    2. 하위 엔티티로 내려갈 수록 식별자를 계속 상속받게 되므로 식별자 속성 개수가 많아질 때
    3. 개인정보 암호화 대상에 해당하여 본질 식별자를 주 식별자로 사용하지 못할 때
    4. 본질 식별자에 대한 데이터가 들어오지 않은 상태 (Ex. 사업자등록번호)
  • 인조 식별자를 정의하는 경우

 

3. 데이터 표준화

  • 데이터 항목에 대한 명칭과 의미를 정하고, 데이터 값에 대한 형식 및 범위를 규정하는 활동
  • 일반적으로 데이터 모델링을 진행하면서 표준화를 먼저 수행하는 경우가 대부분이다.

 

도메인 표준화

  • 도메인은 데이터에 대한 형식(문자형, 숫자형, 날짜형)과 범위(타입, 길이)를 규정한다.
  • 우선 문자형, 숫자형, 날짜형으로 구분하고, 도메인 집합의 성격을 파악한다.
  • 유사한 도메인을 묶어 그룹으로 분류하며, 도메인 그룹을 잘 표현하는 명칭을 부여한다.

코드 표준화

  • 업무에서 통계를 내거나 한정된 데이터 값을 목록화하여 관리하고자 하는 대상을 코드로 식별하여 정의한다.
  • 코드 표준화 대상은 목록성 코드와 공통코드를 모두 포함한다.
  • 변경이 심하거나 코드 사전으로 관리하기 어렵다면 고객과 협의하여 제외할 수 있다.

코드 유형 명칭

수식어 어학사전 정의 영문 예시
구분 일정한 기준에 따라 전체를 몇 개로 나누어서 가름 Division, Distinguish 거래처구분, 양력음력구분
분류 사물을 종류에 따라 가름 Classification, Categorize 상품분류, 대/중/소분류
유형 공통되는 성질이나 특징을 가진 것들을 묶은 하나의 틀 Type, Pattern 서비스유형, 오류유형
형태 사물의 생김새 Form, Type 기업형태, 입찰형태
종류 일정한 특질에 따라 나누어지는 사물의 갈래 Kind, Type 기기종류, 검진종류

 

코드 부여 체계

코드체계 코드체계 설명 코드 예시
분류형 대/중/소/세분류 형태의 계층성 코드체계를 가지며, 코드 자리수에 의미를 부여하여 사용한다. 한국표준산업분류
01 : 농업
011 : 작물 재배업
0111 : 곡물 및 기타 식량작물 재배업
012 : 축산업
일련번호형 일련번호와 같이 의미없는 번호를 순차적으로 부여한다. 길이만큼 앞에 '0'을 채운다. 고객유형
01 : 개인
02 : 법인
99 : 기타
약어형 의미를 지니는 영문약어명으로 코드를 부여한다. 성별
M : 남자
F  : 여자
차용형 일반적으로 통용되는 코드를 그대로 사용한다. 은행코드
001 : 한국은행
002 : 산업은행
003 : 기업은행

용어 표준화

  • 용어 표준화는 용어 명칭, 영문 용어, 용어 정의, 도메인 등을 정의하여 표준 용어사전을 만드는 활동
728x90
반응형

'Data Base > DB Modeling' 카테고리의 다른 글

[DB] 데이터 모델링 - 개념 모델링📖  (0) 2023.09.02
[DB] 데이터 모델링 📖  (0) 2023.09.02