제1절_데이터_모델의_이해

조회 수 18334 추천 수 0 2013.09.05 09:42:10
실천하자 *.115.16.233

1. 모델링의 이해

가. 모델링의 정의

모델 : 모형(模型), 축소형(縮小型)의 의미로서 사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형

☞ 커뮤니케이션의 효율성을 극대화한 고급화된 표현방법

모델링 : 표기법에 의해 규칙을 가지고 표기하는 것. 즉, 모델을 만들어가는 일 자체

나. 모델링의 특징

1) 추상화(모형화, 가설적)

현실세계를 일정한 형식에 맞추어 표현을 한다는 의미. 즉, 다양한 현상을 일정한 양식인 표기법에 의해 표현

2) 단순화

복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념

3) 명확화

누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확(正確)하게 현상을 기술하는 것


※ 정보시스템 구축에서 모델링 활용

- 계획/분석/설계 할 때 업무를 분석하고 설계하는데 이용

- 구축/운영 단계에서는 변경과 관리의 목적으로 이용

다. 모델링의 세 가지 관점

1) 데이터관점 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모델링하는 방법(What, Data) 

2) 프로세스관점 : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법(How, Process) 

3) 데이터와 프로세스의 상관관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법(Interaction)


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

가. 모델링의 정의

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

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

가. 파급효과(Leverage)

병행테스트, 통합테스트를 수행 중 만약, 이러한 시점에 데이터 모델의 변경이 불가피한 상황이 발생 할 경우

☞ 변경을 해야 하는 데이터 모델의 형태에 따라서 그 영향 정도는 차이있지만 데이터 구조의 변경으로 인한 일련의 변경작업은 전체 시스템 구축 프로젝트에서 큰 위험요소

나. 복잡한 정보 요구사항의 간결한 표현(Conciseness)

데이터 모델 : 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구

다. 데이터 품질(Data Quality)

- DB의 데이터는 기업의 중요한 자산, 기간이 오래되면 될수록 활용가치는 훨씬 높아짐 

- But, 이러한 오래도록 저장되어진 데이터가 그저 그런 데이터, 정확성이 떨어지는 데이터? 

   ☞ 해당 데이터로 얻을 수 있었던 소중한 비즈니스의 기회를 상실할 수도 있는 문제


데이터 모델링을 할 때 유의점

   1) 중복(Duplication) 데이터베이스가 여러 장소에 같은 정보를 저장하는 것을 유의

   2) 비유연성(Inflexibility) 데이터 모델을 설계방법에 따라 사소한 업무변화에 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움 가중 가능 

      ☞ 해결 : 데이터의 정의를 데이터의 사용 프로세스와 분리

   3) 비일관성(Inconsistency) 데이터의 중복이 없어도 비일관성 발생

      ☞ 해결 : 데이터 모델링을 할 때 데이터와 데이터간 상호 연관 관계에 대한 명확한 정의는 사전에 예방 가능


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

아래 그림과 같이 시간에 따라 진행되는 과정으로서 추상화 수준에 따라 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델로 정리

가. 개념적 데이터 모델링(Conceptual Data Modeling)
나. 논리적 데이터 모델링(Logical Data Modeling)
다. 물리적 데이터 모델링(Physical Data Modeling)


5. 프로젝트 생명주기(Life Cycle)에서 데이터 모델링

Waterfall 기반 : 데이터 모델링의 위치가 분석과 설계단계로 구분되어 명확하게 정의

정보공학이나 구조적 방법론

     1) 보통 분석단계에서 업무중심의 논리적인 데이터 모델링을 수행

     2) 설계단계에서 하드웨어와 성능을 고려한 물리적인 데이터 모델링을 수행

나선형 모델, 예를 들어 RUP(Rational Unified Process나 마르미)

     - 업무크기에 따라 논리적 데이터 모델과 물리적 데이터 모델이 분석, 설계단계 양쪽에서 수행

     - 비중은 분석단계에서 논리적인 데이터 모델이 더 많이 수행되는 형태

    - 데이터축과 애플리케이션축으로 구분되어 프로젝트가 진행되면서 각각에 도출된 사항은 상호 검증을 지속적으로 수행하면서 단계별 완성도를 높이게 된다. 

단, 객체지향 개념은 데이터 모델링과 프로세스 모델링을 구분하지 않고 일체형으로 진행

     (대표적인 예가 데이터(속성)와 프로세스(Method)가 같이 있는 클래스(Class))

     ∵ 데이터와 프로세스를 한꺼번에 바라보면서 모델링 전개 


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

가. 데이터독립성의 필요성

데이터 독립성의 효과

  • 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경이 가능하다.
  • 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공한다.

데이터독립성을 이해하기 위해서는 3단계로 표현된 ANSI 표준 모델을 살펴보면 되는데 특히 3단계인 구조독립성사상(Mapping) 3가지를 이해하면 된다.


나. 데이터베이스 3단계 구조

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


다. 데이터독립성 요소

데이터베이스 스키마 구조

     - 3단계로 구분, 각각은 상호 독립적인 의미와 고유한 기능 소유

※ 참고 : 데이터 모델링은 통합관점의 뷰를 가지고 있는 개념 스키마를 만들어가는 과정


라. 두 영역의 데이터독립성

논리적인 독립성 & 물리적인 독립성 : 3단계로 개념의 각 영역에 대한 독립성을 지정하는 용어

논리적인 데이터독립성 : 외부의 변경에도 개념스키마가 변하지 않는 특징


마. 사상(Mapping)

영어로 ‘Mapping’은 우리말로 ‘사상’이라고 번역되는데 이것은 상호 독립적인 개념을 연결시켜주는 다리를 뜻함

데이터독립성에는 크게 2가지의 사상 도출

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

물리적 사상 : 통합된 개념적 스키마 구조와 물리적으로 저장된 구조의 물리적인 테이블스페이스와 연결되는 구조


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

가. 데이터 모델링의 세 가지 요소데이터 모델링을 구성하는 중요한 개념 세 가지가 있는데 이것은 데이터 모델에 대한 이해의 근간이 되므로 반드시 기억할 필요가 있다.
1) 업무가 관여하는 어떤 것(Things
2) 어떤 것이 가지는 성격(Attributes
3) 업무가 관여하는 어떤 것 간의 관계(Relationships)
나. 단수와 집합(복수)의 명명

     - 어떤 것 : 실제 실무 현장에서는 복수/집합개념도 엔터티로 짧게 명명

                    엔터티를 집합개념으로 사용하는 경우, 개별요소에 대해서는 인스턴스/어커런스를 단수의 개념으로 사용

     - 관계(Relationship) : 일반적으로 단수든 복수든 대부분 관계라고 표현

     - 성격(Attribute) : 속성과 속성값으로 구분 

    ※ 교재에서의 용어 구분 사용 ☞ Thing : 복수 - 엔터티, 단수 - 인스턴스 라 표기


8. 데이터 모델링의 이해관계자

가. 이해관계자의 데이터 모델링 중요성 인식

     - 실질적으로 DBA보다 업무시스템을 개발하는 응용시스템 개발자가 데이터 모델링도 같이하는 경우가 많음

    


나. 데이터 모델링의 이해관계자

데이터 모델링에 대해 연구 및 학습 담당자

첫 번째는 정보시스템을 구축하는 모든 사람 (전문적으로 코딩만하는 사람 포함)

두 번째는 IT기술에 종사하거나 전공하지 않았더라도 해당 업무에서 정보화를 추진하는 위치에 있는 사람

☞ 서로가 프로젝트 수행 중에 의사소통을 잘 할 수 있고 업무를 잘못 해석하여 잘못된 시스템을 구축하는 위험(Risk)을 줄일 수 있음. 업무를 가장 잘 알고 있는 사람이 가장 훌륭한 모델러가 될 수 있음

9. 데이터 모델의 표기법인 ERD의 이해

가. 데이터 모델 표기법

1976년 피터첸(Peter Chen)이 Entity-relationship model(E-R Model)이라는 표기법

※ 교재의 표기법

데이터아키텍처 전문가(DAP) 관련 자격에서는 바커(Barker) 표기법을 적용하여 설명

본 가이드에서는 범용적인 Information Engineering(이하 IE) 표기법과 바커 표기법 모두 적용


나. ERD(Entity Relationship Diagram) 표기법을 이용하여 모델링하는 방법


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

가. 완전성(Completeness)
나. 중복배제(Non-Redundancy)
다. 업무규칙(Business Rules)
라. 데이터 재사용(Data Reusability)

     기업이 관리하고자 하는 데이터를 합리적으로 균형이 있으면서도 단순하게 분류하는 것

마. 의사소통(Communication)
바. 통합성(Integration)

   ※ 자료출처 : DBguide.Net

http://www.dbguide.net/db.db?cmd=view&boardUid=148404&boardConfigUid=9&categoryUid=216&boardIdx=132&boardStep=1


  • SQL 전문가 자격증 (bysql.net 2012년 1차 스터디)
  • 작성자: 위충환 (실천하자)
  • 최초작성일: 2012년 03월 03일
  • 본문서는 bysql.net 스터디 결과입니다 .본 문서를 인용하실때는 출처를 밝혀주세요. http://www.bysql.net
  • 문서의 잘못된 점이나 질문사항은 본 문서에 댓글로 남겨주세요. ^^