Part 1. 데이터 모델링의 이해

1. 모델링의 이해

  1. 모델링의 정의
    1. 모델링 : 복잡한 현실 세계를 일정한 표기법에 의해 표현하는 일 (현실 세계 -[추상화, 단순화, 명확화]→ 모델)
      1. 가설적 또는 일정 양식에 맞춘 표현
      2. 어떤 것에 대한 예비 표현으로 그로부터 최종 대상이 구축되도록 하는 계획으로서 기여하는 것
      3. 복잡한 현실 세계를 단순화시켜 표현하는 것
      4. 모델이랑 사물 또는 사건에 관한 양상(Aspect)이나 관점(Perspective)을 연관된 사람이나 그룹을 위하여 명확하게 하는 것
      5. 모델이랑 현실 세계의 추상화된 반영
    2. 모델링의 특징
      1. 추상화(모형화, 가설적)는 현실 세계를 일정한 형식에 맞추어 표현한다는 의미
      2. 다양한 현상을 일정한 양식인 표기법에 의해 표현한다는 것
      3. 단순화는 복잡한 현실 세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념을 의미
      4. 명확화는 누구나 이해하기 쉽게 하기 위해 대상에 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것을 의미
      5. 즉, 모델링은 현실 세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법
      6. 정보 시스템 구축에서는 모델링을 계획, 분석, 설계할 때 업무를 분석하고 설계하는데 이용하고 이후 구축, 운영 단계에서는 변경과 관리의 목적으로 이용하게 된다.
    3. 모델링의 세 가지 관점
      1. 모델링 : 시스템의 대상이 되는 업무를 분석하여 정보 시스템을 구성하는 과정에서 업무의 내용과 정보 시스템의 모습을 적절한 표기법(Notation)으로 표현하는 것
      2. 데이터 관점 : 업무가 어떤 데이터(Data)와 관련이 있는지 또는 데이터 간의 관계는 무엇(What)인지
      3. 프로세스 관점 : 업무가 실제하고 있는 일(Process)은 무엇인지 또는 무엇을 해야하는지(How) 모델링 하는 방법
      4. 데이터와 프로세스의 상관 관점 : 업무가 처리하는 일의 방법(Process)에 따라 데이터(Data)는 어떻게 영향을 받고 있는지 모델링하는 방법(Interation)

2. 데이터 모델의 기본 개념의 이해

  1. 모델링의 정의
    1. 데이터 모델 : 데이터베이스의 골격을 이해하고 그것을 바탕으로 SQL 문장을 효율적으로 작성하기 위해 알아야하는 핵심 요소
    2. 데이터 모델링
      1. 정보 시스템을 구축하기 위해, 해당 업무에 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법
      2. 기업 업무에 대한 종합적인 이해를 바탕으로 데이터에 존재하는 업무 규칙(Business Rule)에 대하여 참(True) 또는 거짓(False)을 판별할 수 있는 사실(사실 명제)을 데이터에 접근하는 방법(How), 사람(Who), 전산화와는 독립적인 관점에서 이를 명확하게 표현하는 추상화 기법
      3. 실질적으로 업무에서 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석, 설계하여 정보 시스템을 구축하는 과정
      4. 이유
        1. 업무 정보를 구성하는 기초적인 정보들을 일정한 표기법에 의해 표현하여, 정보 시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것
        2. 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하는 것
      5. 결과적으로 데이터 모델링이란
        1. 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
        2. 현실 세계의 데이터(what)에 대해 약속된 표기법으로 표현하는 과정
        3. 데이터베이스를 구축하기 위한 분석과 설계의 과정
  2. 데이터 모델이 제공하는 기능 업무를 분석하는 관점에서 데이터 모델이 제공하는 기능
    1. 시스템을 현재 또는 원하는 모습으로 가시화하도록 도와준다
    2. 시스템의 구조와 행동을 명세화할 수 있게 한다
    3. 시스템을 구축하는 구조화된 틀을 제공한다
    4. 시스템을 구축하는 과정에서 결정한 것을 문서화한다
    5. 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점을 제공한다
    6. 특정 목표에 따라 구체화된 상세 수준의 표현 방법을 제공한다

3. 데이터 모델링의 중요성 및 유의점

데이터 모델링이 중요한 이뉴는 파급 효과(Leverage), 복잡한 정보 요구사항의 간결한 표현(Conciseness), 데이터 품질(Data Quality)로 정리할 수 있다

  1. 파급 효과(Leverage) : 설계를 잘해야 파급 효과가 적거나 없다
    1. 시스템 구축 도중 테스트 = 각 단위 테스트 → 전체를 묶어서 병행 테스트, 통합 테스트
    2. 테스트 도중 데이터 모델 변경이 불가피한 상황 → 많은 영향 분석 발생
    3. 데이터 구조 변경은 전체 시스템 구축 프로젝트에 큰 위험 요소가 될 수 있다 → 시스템 구축 작업 중 다른 어떤 설계 과정보다 데이터 설계가 중요하다고 볼 수 있는 이유
  2. 복잡한 정보 요구 사항의 간결한 표현(Conciseness) : 심플하게 정리되어야 이해하고 활용한다
    1. 데이터 모델은 구축할 시스템의 정보 요구 사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구
    2. 정보 요구 사항을 파악하는 가장 좋은 방법은 수많은 페이지의 기능적인 요구 사항을 파악하는 것보다 간결하게 그려져 있는 데이터 모델을 리뷰하면서 파악하는 것이 훨씬 빠른 방법
    3. 데이터 모델은 건축물로 비유하자면 설계 도면에 해당한다
    4. 데이터 모델은 설계자의 생각대로 정보 요구 사항을 이해하고 운용할 수 있는 애플리케이션을 개발하고 데이터 정합성을 유지할 수 있도록 하는 것
    5. 이상적 모델 : 정보 요구 사항이 정확하고 간결하게 표현
  3. 데이터 품질(Data Quality) : 품질은 구조의 문제에서 발생, 아래 3가지는 유의점
    1. 중복(Duplication)
      1. 데이터 모델은 같은 데이터를 사용하는 사람, 시간, 장소를 파악하는 데 도움을 준다
      2. 여러 장소에 같은 정보를 저장하는 것은 잘못
    2. 비유연성(Inflexibility)
      1. 설계에 따라 사소한 업무 변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 줄 수 있다
      2. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화의 가능성을 줄인다
    3. 비일관성(Inconsistency)
      1. 데이터 중복이 없더라도 비일관성은 발생한다
      2. 데이터 모델링할 때 데이터와 데이터 간 상호 연관 관계에 대한 명확한 정의는 위험을 사전 예방할 수 있도록 해준다

4. 데이터 모델링의 3단계 진행

스크린샷 2022-05-08 오후 2.35.50.png

  1. 개념적 데이터 모델링(Conceptual Data Modeling)
    1. 조직, 사용자의 데이터 요구사항 찾고 분석하는 것부터 시작이다
    2. 핵심 엔터티와 그들 간의 관계를 발견, 그것을 엔터티-관계 다이어그램(E-R Diagram)으로 생성하는 것이 주요 활동이다
    3. 엔터티-관계 다이어그램은 조직과 다양한 데이터 베이스 사용자에게 어떠한 데이터가 중요한지 나타내기 위해서 사용된다
    4. 데이터 모델링 과정이 전 조직에 걸쳐 이루어진다면, 그것은 전사적 데이터 모델(Enterprise Data Model)이라고 불린다
    5. 개념 데이터 모델의 두 가지 중요한 기능
      1. 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원한다
        1. 개념 데이터 모델은 추상적이기 때문에 상위 문제에 대한 구조화가 상대적으로 쉽고 사용자와 개발자가 시스템 기능에 대해 논의할 수 있는 기반을 형성
      2. 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용하다
        1. 일반적으로 매우 간단하게 고립된(Stand Alone) 시스템도 추상적 모델링 통해서 보다 쉽게 표현 및 설명이 된다.