-
데이터 모델의 이해SQLD (자격증)/1-1. 데이터 모델링의 이해 2020. 2. 29. 23:49
1. 모델링의 이해
모델링의 정의
- 복잡한 현실세계를 일정한 표기법에 의해 표현하는 일
모델링의 특징
1. 추상화(모형화, 가설적)
- 현실세계를 일정한 형식에 맞추어 표현을 한다는 의미
- 즉, 다양한 현상을 일정한 양식인 표기법에 의해 표현
2. 단순화
- 복잡한 현실 -> (약속된 규약, 제한된 표기법, 언어로 표현) -> 쉽게 이해할 수 있게
3. 명확화
- 대상에 대한 애매모호함 제거, 정확하게 현상을 기술하는 것
=> 모델링은 '현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법'
정보시스템 구축에서 모델링의 세 가지 관점
1. 데이터 관점(what, data)
- 업무가 어떤 데이터와 관련이 있는지
- 데이터간의 관계는 무엇인지
2. 프로세스 관점(how, process)
- 업무가 실제하고 있는 일은 무엇인지
- 무엇을 해야 하는지
3. 프로세스의 상관관점(interaction)
- 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지
데이터 모델링이란
1. 정보시스템을 구축하기 위한 데이터관점의 업무 분석 기법
2. 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정
3. 데이터베이스를 구축하기 위한 분석 / 설계의 과정
데이터 모델이 제공하는 기능
업무를 분석하는 관점에서 데이터 모델이 제공하는 기능은 다음과 같다.
1. 시스템을 현재 또는 원하는 모습으로 가시화
2. 시스템의 구조와 행동을 명세화
3. 시스템을 구축하는 구조화된 틀 제공
4. 시스템을 구축하는 과정에서 결정한 것 문서화
5. 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점 제공
6. 특정 목표에 따라 구체화된 상세 수준의 표현방법 제공
데이터 모델링의 중요성 및 유의점
중요성
1. 파급효과(Leverage)
- 최종 테스트 시점에서 데이터 모델의 변경이 불가피한 상황이 벌어지면 전체 시스템 구축 프로젝트에서
큰 위험요소이다.
2. 복잡한 정보 요구사항의 간결한 표현(Conciseness)
- 데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구
- 건축물로 비유하면 설계 도면
3. 데이터 품질(Data Quality)
- 중복 데이터의 미정의, 데이터 구조의 비즈니스 정의의 불충분, 동일한 성격의 데이터를 통합하지 않고 분리함으로써
나타나는 데이터 불일치 등의 데이터 구조로 인한 데이터 품질의 문제는 치유하기에 불가능한 경우가 대부분
유의점
1. 중복(Duplication)
2. 비유연성(Inflexibility)
3. 비일관성(Inconsistency)
데이터 모델의 3단계
추상화 수준에 따라
1. 개념적 데이터 모델
- 현실에서 추상화 수준이 높은 상위 수준을 형상화하기 위해
- 업무 중심적이고 포괄적인 수준의 모델링
- EA 기반의 전사적인 데이터 모델링을 전개할 때는 더 상위 수준인 개괄적인 데이터 모델링을 먼저 수행 후
이후에 업무영역에 따른 개념적 데이터 모델링 전개
2. 논리적 데이터 모델
- 엔터티(Entity) 중심의 상위 수준의 데이터 모델이 완성되면 구체적인 모습과 흐름에 따른 구체화된 업무
중심의 데이터 모델을 만들어 내는데 이것을 논리적인 데이터 모델링
- 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음
- 정규화 과정
3. 물리적 데이터 모델
- 논리적인 데이터 모델링 이후 데이터베이스의 저장 구조에 따른 테이블 스페이스 등을 고려한 방식을
물리적인 데이터 모델링이라 함
- 실제로 데이터베이스에 이식할 수 있도록 성능, 저장, 물리적인 성격을 고려하여 설계
프로젝트 생명주기(Life Cycle)에서 데이터 모델링
waterfall 기반에서는 데이터 모델링의 위치가 분석과 설계 단계로 구분되어 명확하게 정의할 수 있다.
정보공학이나 구조정 방법론에서는 보통 분석단계에서 업무 중심의 논리적인 데이터 모델링을 수행하고
설계단계에서 하드웨어와 성능을 고려한 물리적인 데이터 모델링 수행
-> 단, 현실 프로젝트에서는 개념적 데이터 모델이 생략된 개념 / 논리 데이터 모델링이 분석단계 때 대부분 수행
데이터 모델링에서 데이터 독립성의 이해
1. 데이터 독립성의 필요성
* 데이터 독립성을 제대로 이루지 못했을 경우
1) 유지보수 비용증가
2) 데이터 중복성 증가
3) 데이터 복잡도 증가
4) 요구사항 대응 저하
2 데이터베이스 3단계 구조
* 위의 3단계는 서로 간섭되지 않는 모델
3. 데이터 독립성 요소
(스키마란?)
-> 데이터 모델링은 통합관점의 VIEW를 가지고 있는 개념 스키마를 만들어가는 과정으로 이해할 수 있다.
4. 두 영역의 독립성
1) 논리적 독립성
- 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원하는 것
- 논리적 구조가 변경되어도 응용 프로그램에 영향 없음
- 사용자 특성에 맞는 변경가능
- 통합 구조 변경 가능
2) 물리적 독립성
- 내부 스키마가 변경되어도 외부 / 개념 스키마는 영향을 받지 않도록 지원하는 것
- 저장 장치의 구조변경은 응용 프로그램과 개념스키마에 영향 없음
- 물리적 구조 영향 없이 개념구조 변경가능
- 개념 구조 영향 없이 물리적인 구조 변경가능
사상 (Mapping)
상호 독립적인 개념을 연결시켜주는 다리
1. 외부적 / 개념적 사상 (논리적 사상)
- 외부적 뷰와 개념적 뷰의 상호 관련성을 정의
- 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있음
개념적 뷰의 필드 타입은 변화가 없음 (?)
=> 외부 화면이나 사용자에게 인터페이스 하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결된다는 것
2. 개념적 / 내부적 사상 (물리적 사상)
- 개념적 뷰와 저장된 데이터베이스의 상호관련성 정의
- 만약 저장된 데이터베이스 구조가 바뀐다면 개념적 / 내부적 사상이 바뀌어야 함.
그래야 개념적 스키마가 그대로 남아있게 됌
=> 통합된 개념적 스키마 구조와 물리적으로 저장된 구조의 물리적인 테이블 스페이스와 연결되는 구조가 물리적 사상
???
'SQLD (자격증) > 1-1. 데이터 모델링의 이해' 카테고리의 다른 글
데이터 모델의 이해 2 (0) 2020.03.01