open:데이터베이스-성능-향상을-위한-데이터-모델링-실무

데이터베이스 성능 향상을 위한 데이터 모델링 실무

개념 데이터 모델링

  • 주제영역 정의하기
  • 핵심개체 정의하기
  • 핵심관계 정의하기
  • 개념 ERD 작성하기
  • 개념 데이터 모델 품질 검증하기

논리 데이터베이스 설계

  • 개체 상세화하기
  • 관계 상셍화하기
  • 논리 ERD 작성하기
  • 데이터베이스 정규화하기

바커 표기법(Baker Notation)

  • * (Mandatory) - 어떤 값을 반드시 저장
  • 0 (Optional) - 존재하지 않을 수도 있는 경우

엔터티와 엔터티간 상관 관제의 조건

필수조건

  • 필수 사항은 실전으로 표시
  • 엔터티가 반드시 존재할 경우 표시

선택 조건

  • 선택 사항은 점선으로 표시
  • 엔터티가 존재하지 않을 수도 있는 경우 표시
주어부 관계비 목적부 선택사양
각각의 사원은 단 하나의 부서를 반드시 가져야 한다
각각의 부서는 하나 이상의 사원을 가질 수도 있다

개념 데이터 모델 정의

개념적 데이터 모델이란 건물로 말하면 철제빔으로 건물의 골격을 세워 놓는 형태와 유사하다.
건물의 골격이 주요 골조 자재로 구성되어 있듯이 개념 데이터 모델도 주요 핵심 엔터티들로 구성된다.

핵심 엔터티란
행위의 주체나 목적물이 되는 개체 집합에 해당하는 엔터티를 의미
부모가 존재하지 않는 창조된 집합이어서 다른 집합의 존재 유무에 상관없이 독립적으로 존재
여러 가지 하위의 행위 엔터티를 탄생시킴

개념 데이터 모델 의의

개념 데이터 모델은 단지 대상을 주요 핵심 엔터티로 한정한다는 것일 뿐이지 모델링 기법은 논리적 모델링과 비슷하다

주제 영역 개념

주제 영역(Subject Area)은 기업이 사용하는 데이터의 최상위 집합이다.
예를 들어, 제조 업체의 경우 인사, 생산, 자재, 판매 등의 주제 영역이 있을 수 있다.

하나의 주제 영역으로 정의되는 데이터간의 관계는 밀접하고, 다른 주제 영역에 포함되는 데이터 간의 상호작용은 최소화 할 수 있도록 정의한다.

데이터 중복 최소화

동일한 기능을 하는 자원(지역 및 정보)이 중복 정의되어 낭비되지 않도록 체계적인 분류 작업이 필요

데이터 확장성 보장

가까운 미래에 추가되어지는 정보에 대해 최대한의 확장성을 고려하여 분류 체계 설계

데이터 관련성 및 편의성 확보
  • 타 자원(정보 및 지역)과의 인접성을 고려한 설계
  • 고객 편의(정보 요건)를 고려한 자원 내의 핵심적인 데이터 집합에 대한 것을 명시
  • 핵심 관계에 대한 명시
  • 필요에 따라서 표준화된 타 영역의 설계(참조 모델)도 참조하여 데이터 분류 생성

주제 영역 명명

  • 실 업무에서 보편적으로 사용하는 업무 용어를 부여
  • 유일한 단수형 명사를 사용
  • 데이터의 그룹을 의미하는 이름을 부여

주제영역 분류 방법

  • 1차 분류 : 주요 데이터 집합의 유형 정의
  • 2차 분류 : Biz 활동에 필요한 데이터 분류
  • 3차 분류 : 2차 영역의 세부 주제 영역 분류
  • 업무에서 사용하는 데이터의 명사형 도출 (정보 수집 소스로부터 명사형 찾기)
  • 업무 기능의 이름으로부터 도출 (데이터와 업무 활동의 상호 보완 관계)
  • 하향식(Top-down) 접근 방법 (주제 영역에서 출발하여 엔터티 타입으로 전개)
  • 상향식(Bottom-up) 접근 방법 (엔터티 타입을 그룹핑하여 주제 영역 도출)
  • 분석 단계에서의 도출 (아키텍처 모델(Architecture Model)을 정련하는 과정에서 도출, 데이터 모델을 상세화하는 과정에서 도출)

주제 영역 목록

  • 레벨 : 주제 영역의 계층 수준(1차, 2차, … 단위)
  • 주제 영역명
  • 설명(단위 주제 영역의 경우)
  • 대표 엔터티 : 해당 주제 영역 내에서 대표적인 엔터티를 기술한다.

엔터티를 선정하기 위해서 우리가 가장 먼저 해야 할 일은 엔터티 후보를 수집하는 것이다.

  • 기존 시스템 도큐먼트
  • 현업 장표/보고서
  • 현업 인터뷰(Interview)
  • 관련 전문 서적
  • 데이터 흐름도 (DFD, Data Flow Diagram)
  • 타 시스템 자료
  • 현장 조사
  • 후보 엔터티의 개념 정립을 명확히 한다.
  • 우리가 관리하고자 하는 것인지를 따져 본다.
  • 가로와 세로를 가진 면적(집합)인지를 확인한다.

집합 여부 확인

집합이란
다른 측면에서는 면적이라고 할 수 있다.
면적이 되려면 가로 선분과 세로 선분이 있어야 한다.

선분이란
서로 다른 독집적인 두개 이상의 점이 있어야 한다.

점이란
속성을 의미한다.
만약 우리가 검토할 대상이 하나의 점만 있다면 선분이 되지 못하므로 비록 세로가 선분이 되더라도 수직선 밖에 될 수 없다.

마찬가지로 세로가 하나의 점이라며 최대 수평선 밖에 될 수 없기 때문에 이런 경우는 면적(집합)이 되지 못하므로 엔터티가 될 수 없다.

  • 엔터티 가능성이 있다고 예상되면 일단 검토 대상에 올려라.
  • 너무 깊게 들어가지 마라
  • 동의어처럼 보이더라도 함부로 버리지 마라
  • 개념이 모호한 대상은 일차로 그 개념을 상식화하여 이해하라.
  • 프로세스에 너무 연연해 하지마라
  • 예외 경우에 너무 집착하지 마라.
  • 단어 하나하나에 집중해서 판단해라

첫 번째 단계는 우선적용 대상을 분류하는 것이고, 두 번째 단계는 첫 번째 단계에서 선별한 핵심 엔터티를 데이터 영역별로 분류하는 것이다.

가. 우선적용 대상 분류

1) 키 엔터티(Key Entity)

  • 사원, 부서, 고객, 상품, 자재

2) 메인 엔터티(Main Entity)

  • 보험계약, 사고, 예금원장, 청구, …
  • 구매의뢰, 출하지시, 공사, …
  • 주문, 예산편성, 매출, …

3) 액션 엔터티(Action Entity)

  • 상태 이력, 차량 수리 내역, 상세 주문 내역, …

  • open/데이터베이스-성능-향상을-위한-데이터-모델링-실무.txt
  • 마지막으로 수정됨: 2020/06/02 09:25
  • 저자 127.0.0.1