제 1절 데이터 모델의 이해

연쇄코딩마·2022년 9월 6일
0

sqld

목록 보기
1/1

모델링의 이해

가. 모델링이란?

모델:

  • 모형, 축소형의 의미로 사람이 살아가면서 나타날수 있는 현상을 일정한 표기법에 따라 구현한 모형
  • 사람간의 소통의 효율을 위해 고급화된 표현 방법의 하나

모델링:

  • 표기 방법에 따라 규칙을 가지고 표기하는 것

나. 모델링의 특징

  • 추상화 : 현실세계를 일정한 형식에 맞추어 표현한 것을 의미, 다양한 현상을 일정한 표기법에 따라 표현
  • 단순화 : 복잡한 현실을 규약에 의해 표기법이나 언어로 표현하여 다른 사람으로 하여금 쉽게 이해 할수 있도록 하는 개념
  • 명확화 : 누구나 이해하기 쉽게 하기 위해 애매 모호함을 없애고 정확하게 표현하는 것

다. 모델링의 3가지 관점

모델링 =
데이터 관점(data, What) + 상관 관점 (Data vs Process) + 포로세스 관점(Process, How)

  • 데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계를 무엇인지를 모델링
  • 프로세스 관점 : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야하는 지 모델링하는 방법
  • 데이터와 프로세스의 상관관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링

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

가. 데이터 모델링의 정의

데이터 모델링

  • 정보시스템을 구축하기 위한 데이터 관점의 분석 기법
  • 현실세계의 데이터에 대해 약속된 표기법에 표현하는 과정
  • 데이터베이스 구축을 위한 분석/설계 과정

나. 데이터 모델이 제공하는 기능

  • 시스템을 현재 또는 원하는 모습으로 가시화하도록 도움
  • 시스템의 구조와 행동을 명세화 할 수 있게 함
  • 시스템을 구축하도록 구조화
  • 시스템을 구축하는 과정에서 결정된 것을 문서화
  • 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점을 제공
  • 특정한 목표에 따라 구체화 된 상세 수준의 표현방법을 제공

나. 데이터 모델링의 중요한 점 및 유의점

데이터 모델링이 중요한 이유는 파급효과(Leverage), 복잡한 요구사항의 간결한 표현(Concisenss), 데이터 품질(Date Quailty)로 정리 할수 있다.

  • 파급효과 : 시스템 구축이 완성되어 가는 시점에 단위테스트(Unit)와 통합테스트(total) 순서로 많은 테스트들이 수행되기 마련이다. 그러다 보면 테스트 시점에 데이터 모델의 변경이 될 상황이 발생한다. 데이터의 관계의 따라 변경의 정도의 차이가 있겠지만 이는 프로젝트에서 위험 요소가 된다. 그래서 데이터 모델링은 중요하다
  • 간결한 표현 : 데이터 모델링은 시스템의 정보 요구 사항과 한계를 가장 명확하게 보여준다. 그래서 간결하게 보여지는 데이터 모델을 파악하면 훨씬 빠르게 파악이 가능하다.
  • 데이터의 품질 : 데이터는 기업의 자산이다. 데이터는 오래되고 로그가 쌓일수록 활용가치가 높다. 그러나 이 데이터가 품질이 떨어진다면 어떨까? 데이터의 품질이 떨어지는 문제는 데이터의 구조의 문제이다. 중복 데이터, 데이터 구조의 비즈니스 정의 불충분등이다.

    1) 중복(Duplication) : 같은 성격의 데이터는 여러 장소에 저장하면 안된다.
    2) 비유연성(inflexibility) : 데이터 모델링에 따라서 작은 업무의 변화에도 데이터 모델이 수시로 변경됨으로 유지보수의 어려움이 생길수 있다. 사용 프로세스와 모델을 구분함으로써 이러한 작은 변화가 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
    3) 비일관성(inconsistency) : 데이터와 데이터간의 관계에 대해서도 비일관성은 발생한다. 예를 들어 판매량과 재고를 따로 분리해서 갱신하면 어떨까? 데이터 모델링을 할때는 데이터간의 연관 관계를 고려하고 설계해야 한다.

    다. 데이터 모델링의 3단계

  • 개념적 데이터 모델링 : 아직 추상화 수준이 높고 업무 중심적이다. 포괄적으로 진행 된다. 전사적 데이터 모델링,EA(Enterprise Architecture) 수립시에도 이용 된다. 자료의 경중이 여기서 결정되며 이때 핵심 엔티티와 데이터간의 관계를 수립하며 그를 위해서 엔티티-관계 다이어그램((ERD) Entity Relationship Diagram)을 생성한다.

  • 논리적 데이터 모델링 : 업무에 대해 Key, value, 관계 등을 정확하게 표현하는 방법이다. 데이터 모델링중에서 핵심적인 모델링이고 재사용성이 높다.

    과정

    • 정규화 : 논리적 데이터 모델 상세화 과정의 활동으로 모델의 일관성과 중복을 제거하고 속성들이 가장 적절한 엔터티에 배치 되도록 한다.
    • 그 밖에 과정으로는 식별자 확정, M:M 관계 해소, 참조 무결성 규칙등이 있다.
  • 물리적 데이터 모델링 : 실제 데이터베이스에 이식가능하도록 성능, 저장등 물리적인 성격을 고려하여 설계하는 단계이다. 데이터가 어떻게 물리적으로 컴퓨터에 저장될 것인가 정의하는 단계이기도 하며 테이블, 칼럼등의 물리적인 저장구조와 사용될 저장 장치, 자료를 추출하기 위해 사용될 접근 방법등을 결정한다.

라. 프로젝트 생명주기의 데이터 모델링

  • 프로젝트 생명주기(Life Cycle) : 계획 > 분석 > 설계 > 개발 > 테스트 > 전환/이행

    • 일반적인 데이터 모델링 :
      기획 또는 분석 단계 = 개념적 데이터 모델링
      분석단계 = 논리적 데이터 모델링
      설계단계 = 물리적 데이터 모델링
    • 현실적인 데이터 모델링 :
      개념적 데이터 모델이 생략된다.
  • waterfall 기반 : 데이터 모델링 위치가 분석, 설계 단계로 구분되어 명확히 정의 가능, 분석 단계에서 업무 중심의 논리 데이터 모델링을 수행하고 설계 단계에서 물리 데이터 모델을 수행

워터폴이란 순차적 프로젝트 관리 방법론, 각 단계 이전 단계가 완료된 후에만 시작한다. 이 방법론은 제조 분야에서 유래되었다. 제조업에서 전 단계가 완료되어야만 그 후 단계를 진행 할 수 있는 방식에서 유래됨

  • 정보공학, 구조 방법론 : 보통 분석 단계에서 업무 중심의 논리적인 데이터 수행, 설계단계에서 하드웨어 성능을 고려한 물리적 데이터 모델링 수행

  • 나선형 모델 : 업무 크기에 따라 논리적 데이터 모델과 물리적 데이터 모델이 분석, 설계 단계에서 양쪽에서 수행, 비중은 분석 단계에서 논리적인 데이터 모델이 더 많이 수행되는 형태, 데이터축과 어플리케이션 축으로 구분되며 프로젝트가 진행됨에 따라 도출된 사항은 상호 검증을 지속적으로 하며 완성도를 높히게 된다.

마. 데이터 모델링에서 데이터 독립성의 이해

  • 데이터 독립성 : 일체적 구성에서 기능화된 구성의 가장 큰 목적은 상호간 영향에서 벗어나 개별 형식이 가지는 고유의 기능을 유지하며 극대화 하는 것, 이를 위해 데이터 모델링 과정에서는 데이터 독립성을 중요시한다.

  • 데이터 독립의 필요성 : 끊임없이 요구되는 사용자 요구 사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지하기 위한 목적으로 개념이 출현했다고 할 수 있다. 즉, 구조화된 시스템 날이 갈수록 유지보수 비용이 증가하고, 데이터 복잡도가 증가하며, 데이터 중복성 또한 증가 함에 따라서 데이터 독립성의 필요성이 대두된 것이다.

  • 데이터 독립성의 장점 : 각 View 의 데이터의 독립성이 유지되고 계층별 View에 영향을 주지 않고 변경이 가능, 단계별 스키마에 따라 데이터 정의어와 데이터 조작어가 다름을 제공한다.

  • 데이터 베이스 3단계 구조 :

    ANSI/SPARC의 3단계 구조 - 데이터 독립성을 가지는 모델은 외부 단계, 개념적 단계, 내부적 단계로 서로 간섭되지 않는 모델을 제시

  1. 외부 단계 (외부 스키마, Extenal Schema) :
    View 단계 여러 개의 사용자 관점으로 구성, 즉, 개개인의 사용자 단계로서 개인의 사용자가 보는 개인적인 db 스키마다. 이에 따라 db의 개인 사용자나 응용 개발자가 접근하는 db다.

  2. 개념적 단계 (개념 스키마, Conceptual Schema) :
    구성되는 모든 사용자 관점을 통합한 조직 전체의 db를 기술하는 것이다. 모든 응용 시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직전체의 db를 기술한 것이다. db의 저장되는 데이터와 그들간의 관계를 표현하는 스키마이다.

  3. 내부적 단계 (내부 스키마, Internal Schema) :
    db가 물리적으로 저장된 형식을 나타낸다. 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현한다.

  • 데이터 독립성의 2가지
  1. 논리적 독립성 : 개념 스키마가 변경되도 외부 스키마에는 영향을 미치지 않는 것, 논리적 구조가 변경되도 프로그램에는 변함이 없음, 사용자 특성에 맞는 변경가능, 통합 구조 변경가능
  2. 물리적 독립성 : 내부 스키마가 변경되어도 외부/개념 스키마는 영향이 없음, 저장 장치의 구조 변경은 프로그램과 개념 스키마에는 영향이 없음, 물리적 구조 영향이 없이 개념적 구조 변경 가능
  • 데이터 독립성의 2가지 사상(mapping)

흔히 부르는 매핑(mapping)은 한자어로 사상(寫像)이란 말로 부른다. 가상주소와 물리주소의 대응 관계 또는 기상 주소로부터 물리 주소를 찾아 내는 일을 말한다. 즉 연결 고리인 것이다.

  1. 외부적/개념적 사상(논리적 사상) : 외부적 뷰와 개념적 뷰의 상호 관련성을 정의함

    외부 화면이나 사용자에게 view하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결된다는 것

  2. 개념적/내부적 사상(물리적 사상) : 개념적 뷰와 저장된 데이터베이스의 상호 관련성을 정의

    만약 저장된 데이터베이스 구조가 바뀐다면 개념적/내부적 사상이 바뀌어야 함. 그래야 개념적 스키마가 그대로 남아있게 됨

바. 데이터 모델링의 중요한 세 가지 개념

  1. 업무의 관여되는 어떤것(thing)
  2. 어떤 것이 가지는 성격(attributes)
  3. 업무가 관여하는 어떤 것 간의 관계(relationships)

사. 좋은 데이터 모델링의 요소

  1. 완전성(Completeness) : 모든 데이터가 데이터 모델에 정의되어 있는지 확인하는 것, 데이터 모델을 검증하기 위해 제일 먼저 고려해야될 사항이다.
  2. 중복배제(Non-Redundancy) : 하나의 데이터베이스에 동일한 사실은 반드시 한번만 기록 되어야 한다. 데이터 중복에 대한 유지비용이 낭비 된다.
  3. 업무규칙(Business Rules) : 데이터 모델링 과정을 통해 도출되고 규명되는 수많은 규칙에 대해 모델에 잘 표현되어야 하고 이를 모든 사용자가 공유할 수 있도록 해야 한다.
  4. 데이터 재사용(Data Reusability) : 데이터의 통합성과 독립성에 대해서 충분히 고려가 된다면 데이터 재사용성을 향상 시킬수 있다. 데이터 재사용성은 유지보수뿐만 아니라 신규 시스템 구축에 있어서도 매우 중요하게 작용된다.
  5. 의사소통(Communication) : 데이터 모델은 대상으로 하는 업무를 데이터 상으로 분석하고 이를 설계하여 나오는 최종 산출물이다. 이에 많은 규칙들이 도출되고 이를 관리하는 사람들이 이 규칙들을 동일한 의미로 받아 들여 의사소통 역할을 하는 것이 데이터 모델이다.
  6. 통합성(Integration) : 동일한 성격의 데이터를 한번에 정리하고 공유 데이터에 대한 구조를 여러 업무 영역에서 공동으로 사용하기 용이하도록 한다.
profile
只要功夫深,铁杵磨成针, 하고자 하면 쇠 막대기도 바늘로 만들 수 있다

0개의 댓글

관련 채용 정보