SQL - 데이터 모델링 - 개념 및 정의, 특징, 중요성과 유의점, 모델링 절차, 스키마 구조

반응형

 

모델링

정의

  • 모형, 축소형의 의미
  • 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형
  • 어떤 목적을 달성하기 위해 커뮤니케이션의 효율성을 극대화한 고급화된 표현방법

특징

  • 추상화 : 현실세계를 일정한 형식에 맞추어 표현. 즉, 다양한 현상을 일정한 양식인 표기법에 의해 표현
  • 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현
  • 명확화 : 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술

* 모델링 정의 : 현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법

 


데이터 모델링

정의

  • 정보시스템을 구축하기 위해, 해당 업무에 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보가 무엇인지를 분석하는 방법
  • 기업 업무에 대한 종합적인 이해를 바탕으로 데이터에 존재하는 업무 규칙에 대하여 참 또는 거짓을 판별할 수 있는 사실을 데이터에 접근하는 방법, 사람, 전산화와는 별개의 관점에서 이를 명확하게 표현하는 추상화 기법
  • 업무에서 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석하고 설계하여 정보시스템을 구축하는 과정

목적

  • 업무정보를 구성하는 기초가 되는 정보들을 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것
  • 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것
  • 즉, 데이터 모델링이라는 것은 단지 데이터베이스만을 구축하기 위한 용도로만 쓰이는 것이 아니라 데이터 모델링 자체로서 업무를 설명하고 분석하는 부분에도 매우 중요한 의미를 가짐

중요성

  • 파급효과(Leverage)
    • 만약 데이터 모델을 변경할 경우 변경해야 하는 데이터 모델의 형태에 따라 데이터 구조의 변경으로 인한 일련의 변경작업은 전체 시스템 구축 프로젝트에서 큰 위험요소가 됨
    • 시스템 구축 작업 중에서 다른 어떤 설계 과정보다 데이터 설계가 더 중요함
  • 복잡한 정보 요구사항의 간결한 표현(Conciseness)
    • 정보 요구사항을 파악하려면 페이지의 기능적인 요구사항을 파악하는 것보다 간결하게 그려져 있는 데이터 모델을 파악하는 것이 훨씬 효율적임
    • 이상적으로 모델이 갖추어야 할 가장 중요한 점은 정보 요구사항이 정확하고 간결하게 표현되어야 함
  • 데이터 품질(Data Quality)
    • 아무리 빅 데이터라고 하더라도 데이터가 그저 그런 데이터, 정확성이 떨어지는 데이터일 경우 데이터를 신뢰 할 수 없음
    • 중복 데이터의 미정의, 데이터 구조의 비즈니스 정의의 불충분, 동일한 성격의 데이터를 통합하지 않고 분리함으로써 나타나는 데이터 불일치 등의 데이터 구조의 문제로 인한 데이터 품질의 문제는 치유하기에 불가능함

유의점

  • 중복(Duplication)
    • 데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 줌
    • 이러한 지식 응용은 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 함
  • 비유연성(Inflexibility)
    • 데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킴
    • 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 가능성을 최소화함
  • 비일관성(Insonsistency)
    • 개발자가 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문에 데이터의 중복이 없더라도 비일관성은 발생함
      • 예) 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보 갱신
    • 데이터와 데이터간 상호 연관 관계에 대한 명확한 정의를 하여 비일관성의 위험요소를 사전에 예방함

시간에 따른 데이터 모델링 절차

  • 현실에서 데이터베이스까지 만들어지는 과정은 아래의 그림과 같음

<현실세계에서 데이터베이스까지의 데이터 모델링 과정 , 출처 한국데이터산업진흥원>


추상화 수준에 따른 데이터 모델링 정의

  • 개념적 데이터 모델링(Conceptual Data Modeling)
    • 조직, 사용자의 데이터 요구사항을 찾고 분석하는데서 시작
    • 핵심 엔터티와 그들 간의 관계를 발견하고 표현하기 위해서 엔터티-관계 다이어그램 생성
    • 엔터티-관계 다이어그램은 조직과 다양한 데이터베이스 사용자에게 어떠한 데이터가 중요한지 나타내기 위해 사용
    • 데이터 모델링 과정이 전 조직에 걸쳐 이루어질 때, 이를 전사적 데이터 모델(Enterprise Data Model)이라고 함
  • 논리적인 데이터 모델링(Logical Data Modeling)
    • 데이터 모델링 과정에서 가장 핵심이 되는 부분
    • 데이터베이스 설계 프로세스의 Input
    • 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정
    • 누가, 어떻게 그리고 전산화와는 별개로 비즈니스 데이터에 존재하는 사실들을 인식하여 기록하는 것
    • 논리 데이터 모델링 상세화는 식별자 확정, 정규화, m:m 관계 해서, 참조 무결성 규칙 정의 등을 통함
      • 정규화 : 통해 일관성을 확보하고 중복을 제거하며 속성들이 가장 적절한 엔터티에 배치되도록함으로써 신뢰성있는 데이터 구조를 얻는 것
    • 추가적으로 이력 관리에 대한 전략을 정의하고 반영함으로써 데이터 모델링 완료
  •  물리적 데이터 모델링(Physical Data Modeling)
    • 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룸
    • 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대한 정의를 물리적 스키마라고 함
    • 계층적 데이터베이스 관리 시스템 환경에서는 데이터베이스 관리자가 물리적 스키마를 설계하고 구현하기 위해 보다 많은 시간을 투자하여야 함
    • 현실적으로는 개념적 데이터 모델링과 논리적 데이터 모델을 한꺼번에 수행하여 논리적인 데이터 모델링으로 수행함

<추상화 수준에 따른 데이터 모델링 정의, 출처 한국데이터산업진흥원>

  • 프로젝트 생명주기에 따른 

<프로젝트 생명주기에 따른 데이터 모델링 절차, 출처 한국데이터산업진흥원>


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

필요성

  • 상호간 영향에서 벗어나 개별 형식이 가지는 고유의 기능을 유지시키며 극대화하기 위함
  • 어떤 단위에 대해 독립적인 의미를 부여하고 효과적으로 구현하면 자신이 가지는 고유한 특징을 명확하게 하고 다른 기능의 변경으로부터 쉽게 변경되지 않고도 자신의 고유한 기능을 제공할 수 있음
  • 지속적으로 증가하는 유지보수 비용을 절감하고 데이터 복잡도를 낮추며 중복된 데이터를 줄임
  • 끊임없이 요구되는 사용자 요구사항에 대해 화면과 데이터베이스 간 서로 독립성 유지

데이터베이스 구조

  • ANSI/SPARC의 데이터 독립성 모델은 외부 단계와 개념적 단계, 내부적 단계로 구성하여 서로 간섭되지 않은 모델 제시

<데이터베이스에서의 데이터 독립성 모델 구조, 출처 한국데이터산업진흥원>


구성요소 (스키마)

  • 데이터베이스 스키마 구조는 3단계로 구분(외부 스키마, 개념 스키마, 내부 스키마)
  • 각각 상호 독립적인 의미를 가지고 고유한 기능을 함
  • 데이터 모델링은 통합관점의 뷰를 가지고 있는 개념 스키마를 만들어가는 과정으로도 이해할 수 있음

<데이터베이스에서의 데이터 독립성 구성요소, 출처 한국데이터산업진흥원>


참고

한국데이터산업진흥원 DATA ON-AIR - 데이터 인사이트 - 데이터가이드 - SQL - 데이터 모델의 이해

반응형