데이터 모델링의 이해
모델이란?
-> 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형이라고 할 수 있다.
-> 모델을 만들어가는 일 자체를 모델링 이라고 한다.
모델링의 다양한 정의
* 가설적 또는 일정 양식에 맞춘 표현
* 어떤 것에 대한 예비표현으로 그로부터 최종대상이 구축되도록 하는 계획으로서 기여하는 것.
* 복잡한 '현실세계'를 단순화 시켜 표현하는 것.
모델링의 특징
* 추상화
- 현실세계를 일정한 형식에 맞추어 표현을 한다는 의미, 다양한 현상을 일정한 양식인 표기법에 의해 표현한다는 것.
* 단순화
- 쉽게 이해할 수 있도록 하는 개념
* 명확화
- 누구나 이해하기 쉽게 하기 위해 정확하게 현상을 기술하는 것을 의미
요약한다면?! 모델링은 '현실세계를 추상화, 단순화, 명확하기 위해 일정한 표기법에 의해 표현하는 기법이다'
모델링의 관점
* 데이터 관점 : 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모델링하는 방법(What, Data)
* 프로세스 관점 : 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법(How,Process)
* 데이터와 프로세스의 상관관점 : 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링 하는 방법
데이터 모델링
- 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정
- 데이터베이스를 구축하기 위한 분석/설계의 과정
데이터모델링을 하는 이유
- 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하기 위해
- 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하기 위해
데이터 모델이 제공하는 기능
* 시스템을 현재 또는 원하는 모습으로 가시화하도록 도와준다.
* 시스템의 구조와 행동을 명세화 할 수 있게 한다.
* 시스템을 구축하는 구조화된 틀을 제공한다.
* 시스템을 구축하는 과정에서 결정한 것을 문서화 한다.
* 다양한 영역에 집중하기 위해 다른 영역의 세부사항은 숨기는 다양한 관점을 제공한다.
* 특정 목표에 따라 구체화된 상세 수준의 표현방법을 제공한다.
데이터 모델링의 중요한 이유
- 파급효과
- 간결한 표현
- 데이터 품질
데이터 모델링 유의점
- 중복 : 데이터가 중복 되는 것을 피해야 한다.
- 비유연성 : 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄어야 한다.
- 비일관성 : 데이터 모델링을 할 때 데이터와 데이터간 상호 연관 관계에 대한 명확한 정의함으로써 사전의 위험을 예방해야 한다.
데이터 모델링 3단계
1. 개념적 데이터 모델링
- 추상화 수준이 높은 상위 수준을 형상화 하기 위해(엔티티-관계 다이어그램 생성)
- 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원한다.
- 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용
2. 논리적 데이터 모델링
- 업무의 구체적인 모습과 흐름에 따른 구체화된 업무중심의 데이터 모델 만들기(데이터 모델링이 최종적으로 완료된 상태)
3. 물리적 데이터 모델링
- 이후 데이터베이스의 저장구조에 따른 테이블스페이스 등을 고려한 방식
(논리 데이터 모델이 데이터 저장소로서 어떤세 하드웨어에 표현될 것인가?)
하지만?! 실질적으로는 개념 + 논리 -> 물리 2단계로 진행됨
데이터 독립성이 필요한 이유
1. 유지보수 비용증가
2. 데이터복잡도 증가
3. 데이터 중복성 증가
4. 요구사항 대응 저하
데이터 독립성을 규정한 이후의 효과
* 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경 가능하다.
* 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공한다.
논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원하는것.
물리적 독립성 : 내부스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않도록 지원한는것
★데이터 모델 표기법
SQLD에서는 IE표기법을 사용할 것이므로 IE(information Engineering)만 알아봅시다^^
explanation
1. 대학교는 entity를 나타낸다.
2. Line은 관계를 의미한다.
3. 학과는 대학교에 소속되는 하위 항목을 의미한다.
데이터 모델 표기법 예시(간단한 예시)
좋은 데이터 모델의 요소
1. 완전성
- 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의되어 있어야 한다.
2. 중복배제
- 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록하여야 한다.
3. 업무규칙
- 업무규칙을 데이터 모델에 표현하고 이를 해당 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 제공하는것.
4. 데이터 재사용
- 기업이 관리하고자 하는 데이터를 합리적으로 균형이 있으면서도 단순하게 분류 하는것.
5. 의사소통
- 대상으로 하는 업무를 데이터 관점에서 분석하고 이를 설계하여 나오는 최종 산출물이다.
6. 통합성
- 데이터 구조의 형태는 동일한 데이터는 조직의 전체에서 한번 만 정의되고 이를 여러 다른 영역에서 참조,활용하는 것.
- 동일한 성격의 데이터를 한 번만 정의하기 위해서는 공유 데이터에 대한 구조를 여러 업무 영역에서 공동으로 사용하기 용이하게 정의할 수 있어야 한다.
'IT > SQLD(SQL개발자)' 카테고리의 다른 글
[SQLD] 데이터 모델링관점과 분류 (0) | 2019.06.13 |
---|---|
[SQLD] 식별 (0) | 2019.06.11 |
[SQLD] 관계(Relationship) (0) | 2019.06.10 |
[SQLD] 속성(Attribute) (0) | 2019.06.09 |
[SQLD] 엔터티(Enterty) (0) | 2019.06.08 |