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로 분석과 설계 모두 함께 진행
작업 순서
엔티티 그림
엔티티 배치 : 가장 중요한 엔티티를 왼쪽 상단 배치
관계 설정
관계명 기술
관계 참여도 기술
관계 필수 여부 기술
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 |