DASP&DAP/Data Modeling

[DA가이드 4.1.1] 데이터 모델링 개요

cororo2 2023. 9. 22. 16:34

1. 데이터 모델링 정의 

1.1 데이터 모델링 탄생배경

  • 정보시스템의 핵심인 데이터를 중복없이 정확하게 유지/관리 하기 위함
  • 기업의 정확한 정보 시스템 구축을 위해서 설계/개발보다 정확한 업무파악(데이터에 대한 정확한 분석)이 선결되야 한다는 결론
  • 현실세계를 더 잘 표현하기위해 개체 관계 모델링 기법(ERD - Entity Relationship Diagram)으로 발전

1.2 모델의 정의 

데이터 모델은 현실세계에 대해 우리가 관심있어 한느 대상을 데이터베이스화하기 위한 개념적 도구

 

1.3 모델링의 정의

  • 실체를 나타내는 일과 모형화
  • 데이터 모델링이란 사용자의 요구사항에서 데이터의 실체를 나타내는 일
기업 업무에 대한 종합적인 이해를 바탕으로 
데이터에 존재하는 업무 규칙(Biz. Rule - Business Rule)에 대해
참 또는 거짓을 판별할 수 있는 사실을 정의

현재 업무를 파악하여 문제점을 인식하고
개선사항을 도출하며 미래에 적합한 설계를 이끌어 내기 위해
인간이 해야 할 대부분의 결정들을 내리는 단계까지를 모두 포함하는 것이 데이터 모델

2. 데이터 모델링의 필요성 

고품질의 데이터 모델은 

  -> 시스템의 안정성/ 유연성/ 성능에 큰 영향을 줌

  -> 고품질의 데이터 모델링은 시스템 개발에 있어서 가장 핵심적인 과정 

= 데이터베이스에 저장된 값의 정확성, 일관성이 중요

= 일관성 정확성은 무결성을 통해 보장

 

-> 프로세스 중심적인 시스템 구축은 데이터 무결성에 좋지 않은 영향을 줌 

  -> 즉 데이터 품질에 악영향

 

2.1 데이터 모델링이 중요한 이유

  • 파급효과(Leverage) 
    • 단위 테스트 후 통합테스트 시점에서 데이터 모델 변경시 많은 비용 초래
    • 이 시기의 데이터 구조의 변경은 많은 영향분석이 필요하고 실제적인 변경 작업이 발생
    • 전체 시스템 구축 프로젝트의 큰 위험요소
  • 복잡한 정보 요구사항의 간결한 표현(Conciseness)
    • 데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구
    • 시스템 구축 하는 많은 관련자가 설계자의 생각대로 정보 요구 사항을 이해하도록 작성
  • 데이터 품질 (Data Quality)
    • 중복데이터 미정의
    • 데이터 구조의 비즈니스 정의의 불충분
    • 동일한 성격의 데이터를 통합하지 않고 분리함으로써 데이터 불일치
    • 데이터 구조의 문제로 인한 데이터 품질의 문제는 치유하기에 불가능한 경우가 대부분

2.2 애플리케이션과의 데이터 통합

  • 어플리케이션 코딩 차원의 통합에 너무도 많은 비용 초래
  • 데이터를 기반으로 한 통합
  • 효과적, 저비용
  • 통합 프로젝트를 안정적으로 수행
  • 성공적으로 완수하기 위한 필요조건

 

2.3 개발자들의 시스템 이해 

개발자들이 개발할 시스템과 데이터를 확실히 이해하기 위해 데이터의 모형화 필요

  • 사용자 관점 데이터
    • 사용자가 원하는 것의 논리적 개념, 시스템이 어떻게 그것을 제공하는지의 물리적 개념
  • 물리적 표현 또는 사용에 관계없는 데이터 그 자체의 본질
    • 조직과 사용자가 필요로 하는 필수적이고 기본적인 데이터 정의
  • 애플리케이션간 데이터 사용
    • 데이터 정의, 생명주기 정보(CRUD), 언제 어떻게 데이터가 사용되는 지를 추적하는 방법 제공(매트릭스 분석 기법을 이용한 상호작용 분석 )
    • 애플리케이션을 통해 데이터가 어떻게 사용되는 지를 개발자가 쉽게 이해 가능

3. 데이터 모델링 주의점

  • 중복(Duplication)
  • 비유연성(Inflexibility)
    • 사소한 업무 변화에도 데이터 모델이 수시로 변경되면 유지보수의 어려움 가중
  • 비일관성(Inconstsency)
    • 데이터 모델링시 데이터와 데이터간 상호연관 관계에 대한 명확한 정의 필요

4, 데이터 모델링 단계

현실 세계의 기업 업무에서 발생하는 데이터에 대하여 물리적을 DB화하기 위해 이루어지는 과정 중의 한단계

개념 데이터 모델 -> 논리 데이터 모델 -> 물리 데이터 모델

  1. 개념 데이터 모델
    • 조직, 사용자의 데이터 요구사항을 찾고 분석
    • 주제영역 정의하고 주제영역 내의 핵심 entity 도출하고 그들간의 관계 정의
    • 이를 표현하기 위한 ERD(개체- 관계 데이터 모델)
  2. 논리 데이터 모델링
    • 상세 속성들을 정의
    • 개념 데이터 모델링에서 정의한 핵심 entity들을 상세화시킴(식별자 확정, 정규화, M:M관계 분할, 참조 무결성)
  3. 물리 데이터 모델링
    • 완성된 논리 모델을 가지고 목표하는 DBMS 특성 및 구현 환경등을 감안한 스키마를 일정한 기준과 규칙에 의해 도출시킴
      • 테이블 ,칼럼 등으로 표현되는 물리적인 저장 구조와 사용될 저장장치, 자료 추출하기 위한 접근방법 등 
    • 칼럼의 데이터 타입과 크기
    • 데이터 사용량 분석, 인덱스 정의, 반정규화 수행

5. 모델링의 기본 원칙

1. 커뮤니케이션 원칙

    요구사항은 모든 사람들이 이해할수 있도록 명확하게 공표되어야함

 

2. 모델링 상세화 원칙

    - 데이터는 데이터의 본질과 잠재적 사용을 이해할 수 있을 만큼 상세화 되어야함

    - 좋은 설계는 분석단계(논리 데이터 모델)을 위한 상세 수준이 물리 데이터 모델링 단계에서 선택한 수준만큼 상세화            필요

    - 논리모델 -> 물리모델로 이동이나 분해가 아닌 변환

3. 논리적 표현 원칙 

    - 물리적 제약 조건 없이 비즈니스를 그대로 반영 

    - 논리모델은 특정 아키텍처, 기술 또는 제품과 독립적이어야 함

    - 사용자가 원하는 것에 근거를 둬야함

 

= 논리적 설계와 물리적 설계를 구별하지 못하면 프로젝트가 추구하고자 하는 물리적 선택 사항을 제한하거나 잘못된 방향으로 진행하게 됨

 

<잘못된 예>

웬만한 분석의 결관느 잘 알고있다(지름길을 좋아하는것)

조급하게 솔루션을 구체화하는 것

 

6. 좋은 데이터 모델의 요소 

  • 완전성(Completeness)
  • 중복배제(Non-Redundancy)
  • 비즈니스 룰(Business Rule)
  • 데이터 재사용(Data Resuability)
  • 안전성 및 확장성(Stability and Flexibility)
  • 간결성(Elegance)
  • 의사소통(Communication)
  • 통합성(Integration)