본문 바로가기

자격증/SQLD

데이터 모델의 이해

1. 모델링의 이해


모델링의 정의


모델 : 세상의 다양한 현상 및 물체에 대해 표현한 모형

모델링 : 복잡한 현실 세계를 일정한 표기법에 의해 표현하는 일


모델링의 다양한 정의

  • Webster 사전

  • 복잡한 현실 세계의 단순화, 추상화

  • 사용자(사람, 그룹)을 위해 사물이나 사건에 대해서 명확화 하는 것



모델링의 특징


모델링 : 추상화(일정한 표기법으로 표현) + 단순화(쉽게 이해) + 명확화(애매모호함의 제거)


모델링의 3가지 관점

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

  • 프로세스 관점 : 업무가 하고 있는 일이 무엇인지, 무엇을 해야하는지 ( How, Process)

  • 상관 관점 (데이터 + 프로세스 ) : 업무에 따른 데이터의 영향을 모델링하는 방법





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


데이터 모델링의 정의

  • 업무에 어떤 데이터가 존재하고 업무가 필요로 하는 정보가 무엇인지 분석


데이터 모델링의 목적

  • 업무 내용의 정확한 분석하여 분석된 내용을 개발 및 데이터 관리에 사용하기 위함



데이터 모델이 제공하는 내용

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

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

  • 문서화

  • 다양한 관점을 제공

  • 상세 수준의 표현 방법 제공




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


데이터 모델링의 중요한 이유

  • 파급효과 : 데이터 모델의 변경에 따른 영향을 엄청나다.

  • 간결한 표현

  • 데이터 품질


데이터 모델링 유의 점

  • 중복 : 여러 장소의 같은 정보가 저장되는 경우

  • 비 유연성 : 데이터 모델 변경에 따른 영향도 최소화를 위함

  • 비 일관성 : 데이터 간의 상호 연관 관계에 대한 명확한 정의로 비일관성을 줄일 수 있음


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


모델링 진행에 따른 데이터 모델의 종류

  • 개념적 데이터 모델
    추상화 수준이 높음, 업무 중심적, 포괄적 수준, ERD를 생성(어떠한 데이터가 중요한지 나타내기 위해서)

    전 조직에 걸쳐 이루어진다면 Enterprise Data Model (EDM)이라 부름

    개념적 데이터 모델링의 효과
    1) 사용자와 시스템 개발자가 데이터 요구 사항을 이해함
    2) 시스템 변형에 대한 영향도 분석이 쉬워짐

  • 논리적 데이터 모델
    Key, 속성, 관계 등 정확하게 표현, 재 사용성이 높음, 정규화

    비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법, 과정
    논리 데이터 모델은 데이터 모델링의 최종적인 완성본

  • 물리적 데이터 모델링
    실제 데이터 베이스에 이식 가능한 수준
    하드웨어에 어떻게 저장하는지 설계 함 ( 인덱싱 등등 포함 )




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


현실 프로젝트에서는 분석 단계에서 논리/개념 데이터 모델링이 같이 수행되며, 설계단게는 물리데이터, 개발 단계에는 변경 관리, 테스트 단계에서는 튜닝 이 수행 됨



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


데이터 독립성의 필요성

  • 유지보수 비용 절감

  • 데이터 복잡도와 중복성을 최소화

  • 요구사항 대응 저하


데이터베이스의 3단계 구조

외부 단계 : 사용자가 보는 자료에 대한 관점

개념 단계 : 공통적인 사항을 처리하는 통합된 뷰를 스키마 구조로 디자인한 형태
내부적 단계 : 데이터가 물리적으로 저장된 방법에 대한 스키마 구조


논리적, 물리적 독립성
논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록

물리적 독립성 : 저장장치의 구조변경에 의한 프로그램과 개념스키마에 영향이 없는것

사상(Mapping)

정의 : 상호 독립적인 개념을 연결시켜주는 다리


외부적/개념적 사상 : 외부 뷰와 개념뷰의 상요 관련성

개념/내부 사상 : 데이터베이스와 개념뷰의 상호 연관성을 정의 함



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


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

  • Things : 업무가 관여하는 어떤 것

  • Attributes : 어떤 것이 가지는 성격

  • Relationships : 업무가 관여하는 어떤 것 간의 관계


단수와 집합 복수의 명명


복수

단수

Type

Entity Type

Entity

Thing

Entity

Instance, Occurrence

Association between Things

Relationship

Pairing

Characteristic of  a Thing

Attribute

Attribute Value

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


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

  • 데이터 모델링은 개발자가
    이유는 해당되는 비지니스의 이해도가 개발자가 훨씬 더 높기 때문, DBA는 단지 가이드 위주로 진행함

  • 개발자는 데이터 모델링보다 프로그래밍에 중요성을 둔다.
    분명한 사실은 데이터 모델링, 구축이 어떤 일보다 중요한 basepoint라는 것



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

  • 프로젝트의 모든 IT 기술자들

  • 프로젝트를 추진하는 위치에 있는 사람들



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


데이터 모델 표기법

  • Peter Chen 이 만든 ERM(Entity Relationship Model)로 교육을 함

  • 실제 사용은 IE/Crow’s Foot 표기법을 사용 (까마귀발 모양의 표기법, Baker 표기법)



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


ERD : 엔티티와 엔티티간의 관계를 이해하기 쉽게 도식화된 다이어그램 표시하는 방법


이론적 방법 : 어느정도의 관계, 속성, 모델링 후 ERD 작성

실무적 방법 : ERD로 분석과 설계 모두 함께 진행



작업 순서

  1. 엔티티 그림

  2. 엔티티 배치 : 가장 중요한 엔티티를 왼쪽 상단 배치

  3. 관계 설정

  4. 관계명 기술

  5. 관계 참여도 기술

  6. 관계 필수 여부 기술


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


완전성 : 필요로하는 모든 데이터가 데이터 모델에 정의 되어야 함

중복 배제 : 동일한 사실은 반드시 한 번만 기록

업무규칙 : 업무 규칙을 데이터 모델에 표현하고 이를 해당 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 제공하는 것

데이터 재사용 : 통합모델을 통해 데이터를 끊임없이 재사용해야 함

통합성 : 지속적인 유지보수로 인해 중복데이터가 끊임없이 발생할 수 있기 때문에 공유 데이터에 대한 여러 업무 영역에서 공동을 사용하기 용이하게 정의할 수 있어야 한다.




'자격증 > SQLD' 카테고리의 다른 글

성능 데이터 모델링의 개요  (0) 2016.09.02
식별자  (0) 2016.09.02
관계(Relation Ship)  (0) 2016.09.02
속성(Attribute)  (0) 2016.09.02
엔티티(Entity)  (0) 2016.09.02