OPEN between Secret

데이터 모델의 이해 본문

DB/SQLD

데이터 모델의 이해

해가꿈꾸는달 2015. 6. 2. 09:10
반응형


1. 데이터 모델의 이해


 

   가. 모델링의 정의

      - 모델을 만들어 가는 일 자체를 모델링이라 함

      - 가설적 또는 일정 양식에 맞춘 표현

      - 어떤 것에 대한 예비표현, 그로부터 최종대상이 구축되도록 하는 계획으로서 기여하는것

      - 복잡한 현실세계를 단순화 시키는것

      - 현실 세계의 추상화된 반영




   나. 모델링의 특징


      1) 추상화

         - 현실세계를 다양한 형식을 일정한 형식에 맞춰 표현하는것


      2) 단순화

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


      3) 명확화

   - 누구나 이해하기 쉽게 하기 위해 애매모호함을 제거하고 정확하게 현상을 기술하는것


- 즉 현실세계를 추상화,단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법
- 계획/분석/설계 단계 할때 업무를 분석하고 설계하는데 이용
- 구축/운영 단계에서는 변경과 관리의 목적으로 이용

 

 

   다. 모델링의 3가지 관점


- 정보시스템을 구성하는 과정에서 업무의 내용과 정보시스템의 모습을
    적절한 표기법으로 표현하는 것


1) 데이터 관점 

   - 데이터간의 관계는 무엇 인지 (what, data)

 

2) 프로세스관점 

   - 업무가 실제로 하고 잇는 일은 무엇인지

   - 무엇을 해야 하는지

 

3) 데이터와 프로세스의 상관관점

   - 업무에 따라서 데이터가 어떻게 영향을 받고 있는지



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


   가. 데이터 모델링의 정의

- 업무에서 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석하고 설계하여 정보시스템을
    구축하는 과정

- 데이터모델은 데이터베이스의 골격을 이해하고, 이해를 바탕으로 sql문장을 기능과 성능적인
    측면에서 효율적으로 작성하기 위해 알아야 한다

- 정보시스템을 구축하기 위해, 해당 업무에 어떤 데이터가 존재하는지, 업무가 필요로 하는
    정보가 무엇인지를 분석하는방법

- 기업 업무에 대한 종합적인 이해를 바탕으로 데이터에 존재하는 업무규칙(Business Rule)에 대하여
    참(true) 또는 거짓(False)을 판별할 수 있는 사실을 데이터에 접근하는 방법(hwo), 사람(who),
    전산화와는 별개의 관점에서 이를 명확학 ㅔ표현하는 추상화 기법

- 업무에서 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석하고 설계하여 정보시스템을
    구축하는 과정



!!! 데이터모델링을 하는 주요 이유


   - 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는것

   - 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것

   - 데이터 모델링 자체로서 업무를 설명하고 분석하는 부분에도 매우 중요한 의미



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


      1) 업무를 분석하는 관점에서

   - 시스템을 현재 또는 원하는 모습으로 가시화 하도록 도와줌

   - 시스템의 구조와 행동을 명세화

   - 시스템을 구축하는 구조화된 틀을 제공

   - 시스템을 구축하는 과정에서 결정한 것을 문서화

   - 특정 목표에 따라 구체화된 상세 수준의 표현방법 제공



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


   가. 파급효과(leverage)

      - 단위테스트를 거쳐, 병행테스트 통합테스트 까지 수행하는 도중 데이터 모델을 변경해야 하는
        상황이 온다면 전체 시스템 구축 프로젝트에서 큰 위험요소가 된다. 그래서 구축 작업중에서
        데이터 설계가 중요하다.


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

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

 - 수많은 페이지의 기능적인 요구사항을 파악하는것보다 간결하게 그려져 있는 데이터모델을
       리뷰하면서 파악하는것이 훨씬 좋은 방법

      - 이상적 역할을 할수 있는 모델이 갖추어야 할 중요한 점은 정보 요구사항이 정확하고
           간결하게 표현되어야 함.


   다. 데이터 품질(Data Quality)

      - 데이터베이스에 담겨있는 데이터는 기업의 중요한 자산.

      - 그저 그런 데이터, 정확성이 떨어지는 데이터의 문제는 단순히 기능을 수정하는 문제가
           아니고 해당 데이터로 얻을수 있었던 소중한 비즈니스의 기회를 상실할 수도 있음.



!!!!!  데이터 구조의 문제


   1) 중복 

      - 중복 데이터의 미정의

      - 여러 장소에서 같은 정보를 저장하는 잘못


   2) 비유연성 


      - 데이터 구조의 비즈니스 정의의 분충분,
      - 데이터 모델의 정의에 따라 사소한 업무변화에도 데이터 모델이 수시로 변할수 있음.
          (유지보수 어려움)

      - 데이터 정의를 사용 프로세스와 분리 함으로써 데이터나 프로세스의 작은 변화로 데이터베이스에
          변화를 일으킬 가능성을 줄임


3) 비일관성 

    - 동일한 성격의 데이터를 통합하지 않고 분리함으로써 나타나는데이터 불일치

    - 데이터 중복이 없더라도 비일관성은 존재
     ex) 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보를 갱신

    - 데이터와 데이ㅓ간 상호 연관관계에 대한 명확한 정의를 해야함



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

   - 처음 현실세계에서 추상화 수준이 높은 상위 수준을 형상화 하기 위해 개념적 데이터 모델링을 전개

   - 업무의 구체적인 모습과 흐름에 따른 구체ㅘ 된 업무중심의 데이터 모델을 만드는
       논리적 데이터모델링 전개

   - 데이터베이스의 저장구조에 따른 테이블스페이스 등을 고려한 방식인 물리적 데이터 모델링이라 함



 

   가. 개념적 데이터 모델링 (Conceptual Data Modeling)

      - 사용자의 데이터 요구사항을 찾고 분석하는데서 시작

      - 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링

      - 핵심 엔터티와 그들 간의 관계를 발견, 그것을 표현하기 위해서 엔터티-관계 다이어그램을 생성
          엔터티-관계 (어떠한 데이터가 중요한지 나타내기 위해 사용)

      - 데이터 모델링 과정이 전 조직에 걸쳐 이루어 지면 ! 전사적 데이터 모델 ! 이라 함.

      - 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는것을 지원
           (개념 데이터 모델은 추상적임 - 상위의 문제에 대한 구조화를 쉽게 하며, 사용자와 개발자가
           시스템 기능에 대해서 논의할수 있는 기반을 형성)

      - 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용

      - 매우 간단하게 고립된 시스템도 추상적 모델링을 통해서 보다 쉽게 표현

 

 


   나. 논리적 데이터 모델(Logical Data Modeling)

      - 업무의 구체적인 모습과 흐름에 따른 구체화된 업무중심의 데이터 모델

      - 시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음

      - 논리 데이터 모델링의 결과로 얻어지는 것이 논리 데이터 모델은
          데이터 모델링이 최종적으로 완료된상태

      - 어떻게 데이터에 액세스하고, 누가 데이터에 액세스 하며, 그러한 액세스의 전산화와는
          독립적으로누가, 어떻게 , 비즈니스 데이터에 존재하는 사실들을 인식하여 기록하는 것

      - 데이터 모델링 과정에서 가장 핵심이 되는 부분이 논리적 데이터 모델링임.

      - 정규화. 논리 데이터 모델의 상세화 과정의 대표적 활동. 논리 데이터 모델의 일관성을 확보,
           중복 제거, 속성들이 가장 적절한 엔터티에 배치되도록 함. 보다 신뢰성 있는 데이터구조를 얻음

- 논리 데이터 모델의 상세화 

- 식별자 확정, 정규화, M:M 관계 해서, 참조 무결정 규칙 정의



   다. 물리적 데이터 모델 ( Physical Data Modeling )

      - 데이터베이스 설계 과정의 세번째 단계

      - 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룸

      - 데이터베이스의 저장구조에 따른 테이블스페이스 등을 고려한 방식

      - 물리적 스키마 - 데이터가 물리적 컴퓨터에 어떻게 저장될 것인가

      - 테이블, 칼럼 등 물리적인 저장구조와 사용될 저장 장치, 자료를 추출하기 위한 접근 방법이 결정



!! 모델링이란 !!

- 별도의 과정을 통해서 조사하고 결정한 사실을 단지 ERD라는 그림으로 그려내는 과정을 말하는게 아니라 시스템 구축을 위한 가장 기초적인 업무조사 단계에서부터 인간이 결정해야 할 대부분의 사항을 모두 정의하는 시스템 설계의 전 과정을 지원하는 '과정의 도구' 임



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


   분석단계 - 논리적인 데이터 모델링 수행

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



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


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

      - 지속적으로 증가하는 유지보수 비용을 절감하고 데이터 복잡도를 낮추며
         중복된 데이터를 줄이기 위함.

      - 요구되는 사용자 요구사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지하기 위함.

      - 각 View의 독립성을 유지, 계층별 View에 영향을 주지 않고 변경 가능

      - 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공


------------------------------------------------------------------------

|  데이터 독립성 <> 데이터 종속성                                      |

| ANSI 표준 모델을 보라(데이터 독립성 이해를 위해)                |

------------------------------------------------------------------------




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


      - 외부 단계 : 사용자와 가까운 단계. 사용자 개개인이 보는 자료에 대한 관점에 따른 스키마 구조

      - 개념적 단계 : 사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된 뷰를 스키마 형태로

      - 내부적 단계 : 데이터가 물리적으로 저장된 방법에 대한 스키마 구조



   다. 데이터독립성 요소



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

      - 3단계로 개념이 분리되면서 각각의 영역에 대한 독립성을 지정하는 용어



   마. 사상(Mapping)

      - 상호 독립적인 개념을 연결시켜주는 다리.

     - 전체가 통합된 개념적 스키마와 연결된다는 것이 논리적 사상임

- 각 단계(외부, 개념, 내부)의 독립성을 보장하기 위해서 변경사항이 발생했을 떄 DBA가 적정하게
   작업을 해줘야 독립성이 보장된다고 할수 있음



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


   가. 데이터 모델링의 세 가지 요소

      - 업무가 가지는 어떤 것(Things)                                   -> 엔터티

      - 어떤 것이 가지는 성격 (Attributes)                              -> 속성

      - 업무가 관여하는 어떤 것 간의 관계(Relationships)          -> 관계


   나. 단수와 집합의 명명

- 데이터 모델링에서는 이 세 가지 개념에 대해 단수와 복수의 개념을 분명하게 구분함



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


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

       - 실제 업무시스템을 구축하는 프로젝트에선 DBA가 모델링을 전적으로 하는것 보다 응용시스템 개발
          자가 하는 경우가 많음. 모델링이라는 과정이 데이터베이스를 설계한다는 측면보다 업무를 이해하고
          분석하여 표현하는 것이 중요하고, 표현된 내용으로 프로젝트 관련자와 의사소통을 하기 때문에
          개발자가 데이터 모델링을 진행하게 됨

- 우리가 구축하려는 시스템 대부분이 데이터에 기반한, 데이터 중심에 있는 정보시스템을 구축하기
   때문에 핵심인 데이터베이스 설계를 잘못했을 떄 미치는 영향력을 크다
   (모든 프로그램, 시간에 따라 입력되는 모든 데이터, 그 데이터베이스에서 발생되는 모든 트랜잭션들)


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

      - 데이터 모델링에 대해 연구하고 학습해야 할 사람은?
            (완성된 모델을 정화하게 해석할 수 있어야 함)

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

- IT기술에 종사하지 않더라도 해당 업무에서 정보화를 추진하는 위치에 있는 사람



9. 데이터 모델의 표기법인 ERD(Entity Relationship Diagram)의 이해


   가. 데이터 모델 표기법

      - 엔터티는 사각형, 관계는 마름모, 속성은 타원형 


   나. ERD표기법을 이용하여 모델링하는 방법

      - 각 업무분석에서 도출된 엔터티와 엔터티간의 관계를 이해하기 쉽게
         도식화된 다이어그램으로 표시하는 방법.

- 실제 프로젝트에선 도식화된 그림 정돋로만 생각하지 않고 해당 업무에서 데이터의 흐름과
   프로세스와의 연관성을 이야기하는데 가장 중요한 표기법이자 산출물임.


      #### ERD 작업순서 ####

      1) 엔터티를 그림

2) 엔터티를 적절하게 배치

3) 엔터티간 관계를 설정

4) 관계명을 기술

5) 관계의 참여도를 기술

6) 관계의 필수여부를 기술



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

   

   - 데이터 모델이 업무 환경에서 요구하는 사항을 얼마나 잘 시스템적으로 구현할 수 있는가를
      객관적으로 평가할수 있는 방법은 없음


   가. 완전성(Completeness) 

      - 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의되어 있어야 한다.


   나. 중복배제(Non-redundancy) 

      - 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록하여야 한다.

  EX) '나이' 칼럼과 ' 생년월일' 칼럼은 동일 칼럼이다.

- 데이터가 중복되면 저장공간의 낭비, 중복 되고 있는 데이터의 일관성을 유지하기 위한
   추가적인 데이터 조작등이 낭비되는 비용임

   다. 업무규칙(Business Rules) 

      - 데이터 모델링 과정에서 도출되고 규명되는 수많은 업무규칙을 데이터 모델에 표현 하고 이를 해당
         데이터 모델을 사용하는 모든 사용자가 공유할 수 있도록 제공하는것

- 논리 데이터 모델에서 이러한 요소들이 포함되어야 하는게 중요


   라. 데이터 재사용(Data Reusability) 

      - 과거의 정보시스템은 부서 단위였는데, 최근은 회사 전체 단위이다. 통합 모델이어야 함

      - 데이터가 애플리케이션에 대해 독립적으로 설계되어 있어야 함
         (과거에는 데이터 모델이 따로 존재하지 않고 애플리케이션의 부속품 정도로 취급)

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


   마. 의사소통(Communication)

- 데이터 모델은 대상으로 하는 업무를 데이터 관점에서 분석하고 설계하여 나온 최종 산춘물임.

      - 정보시스템을 운용, 관리하는 많은 관련자들이 설계자가 정의한 업무 규칙들을 동일한 의미로
        받아들이고 정보시스템을 활용할 수 있게 하는 역할

-> 이렇게 되려면 분석 과정에서 나오 많은 업무 규칙들을 데이터 모델에 표현되어야 함.


   바. 통합성 (Integration)

      - 동일한 데이터는 조직의 전체에서 한번만 정의. 이를 여러 다른 영역에서 참조, 활용 하는 것.

- 물론 성능 등의 부가적인 목적으로 의도적으로 데이터를 중복시키는 경우도 있음.



출처 : The Guide for SQL Professional Sql 전문가 가이드 2013 Edition



반응형

'DB > SQLD' 카테고리의 다른 글

속성, 관계, 식별자  (0) 2015.06.02
엔터티  (0) 2015.06.02
SQL 활용(STANDARD JOIN)  (0) 2015.03.30
SQL 기본 및 활용(JOIN)  (0) 2015.03.30
SQL 기본 및 활용 (집계함수(GROUP BY, HAVING), ORDER BY)  (0) 2015.03.30