모델링 =
데이터 관점(data, What) + 상관 관점 (Data vs Process) + 포로세스 관점(Process, How)
데이터 모델링이 중요한 이유는 파급효과(Leverage), 복잡한 요구사항의 간결한 표현(Concisenss), 데이터 품질(Date Quailty)로 정리 할수 있다.
1) 중복(Duplication) : 같은 성격의 데이터는 여러 장소에 저장하면 안된다.
2) 비유연성(inflexibility) : 데이터 모델링에 따라서 작은 업무의 변화에도 데이터 모델이 수시로 변경됨으로 유지보수의 어려움이 생길수 있다. 사용 프로세스와 모델을 구분함으로써 이러한 작은 변화가 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
3) 비일관성(inconsistency) : 데이터와 데이터간의 관계에 대해서도 비일관성은 발생한다. 예를 들어 판매량과 재고를 따로 분리해서 갱신하면 어떨까? 데이터 모델링을 할때는 데이터간의 연관 관계를 고려하고 설계해야 한다.
개념적 데이터 모델링 : 아직 추상화 수준이 높고 업무 중심적이다. 포괄적으로 진행 된다. 전사적 데이터 모델링,EA(Enterprise Architecture) 수립시에도 이용 된다. 자료의 경중이 여기서 결정되며 이때 핵심 엔티티와 데이터간의 관계를 수립하며 그를 위해서 엔티티-관계 다이어그램((ERD) Entity Relationship Diagram)을 생성한다.
논리적 데이터 모델링 : 업무에 대해 Key, value, 관계 등을 정확하게 표현하는 방법이다. 데이터 모델링중에서 핵심적인 모델링이고 재사용성이 높다.
과정
- 정규화 : 논리적 데이터 모델 상세화 과정의 활동으로 모델의 일관성과 중복을 제거하고 속성들이 가장 적절한 엔터티에 배치 되도록 한다.
- 그 밖에 과정으로는 식별자 확정, M:M 관계 해소, 참조 무결성 규칙등이 있다.
물리적 데이터 모델링 : 실제 데이터베이스에 이식가능하도록 성능, 저장등 물리적인 성격을 고려하여 설계하는 단계이다. 데이터가 어떻게 물리적으로 컴퓨터에 저장될 것인가 정의하는 단계이기도 하며 테이블, 칼럼등의 물리적인 저장구조와 사용될 저장 장치, 자료를 추출하기 위해 사용될 접근 방법등을 결정한다.
프로젝트 생명주기(Life Cycle) : 계획 > 분석 > 설계 > 개발 > 테스트 > 전환/이행
- 일반적인 데이터 모델링 :
기획 또는 분석 단계 = 개념적 데이터 모델링
분석단계 = 논리적 데이터 모델링
설계단계 = 물리적 데이터 모델링- 현실적인 데이터 모델링 :
개념적 데이터 모델이 생략된다.
waterfall 기반 : 데이터 모델링 위치가 분석, 설계 단계로 구분되어 명확히 정의 가능, 분석 단계에서 업무 중심의 논리 데이터 모델링을 수행하고 설계 단계에서 물리 데이터 모델을 수행
워터폴이란 순차적 프로젝트 관리 방법론, 각 단계 이전 단계가 완료된 후에만 시작한다. 이 방법론은 제조 분야에서 유래되었다. 제조업에서 전 단계가 완료되어야만 그 후 단계를 진행 할 수 있는 방식에서 유래됨
정보공학, 구조 방법론 : 보통 분석 단계에서 업무 중심의 논리적인 데이터 수행, 설계단계에서 하드웨어 성능을 고려한 물리적 데이터 모델링 수행
나선형 모델 : 업무 크기에 따라 논리적 데이터 모델과 물리적 데이터 모델이 분석, 설계 단계에서 양쪽에서 수행, 비중은 분석 단계에서 논리적인 데이터 모델이 더 많이 수행되는 형태, 데이터축과 어플리케이션 축으로 구분되며 프로젝트가 진행됨에 따라 도출된 사항은 상호 검증을 지속적으로 하며 완성도를 높히게 된다.
데이터 독립성 : 일체적 구성에서 기능화된 구성의 가장 큰 목적은 상호간 영향에서 벗어나 개별 형식이 가지는 고유의 기능을 유지하며 극대화 하는 것, 이를 위해 데이터 모델링 과정에서는 데이터 독립성을 중요시한다.
데이터 독립의 필요성 : 끊임없이 요구되는 사용자 요구 사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지하기 위한 목적으로 개념이 출현했다고 할 수 있다. 즉, 구조화된 시스템 날이 갈수록 유지보수 비용이 증가하고, 데이터 복잡도가 증가하며, 데이터 중복성 또한 증가 함에 따라서 데이터 독립성의 필요성이 대두된 것이다.
데이터 독립성의 장점 : 각 View 의 데이터의 독립성이 유지되고 계층별 View에 영향을 주지 않고 변경이 가능, 단계별 스키마에 따라 데이터 정의어와 데이터 조작어가 다름을 제공한다.
데이터 베이스 3단계 구조 :
ANSI/SPARC의 3단계 구조 - 데이터 독립성을 가지는 모델은 외부 단계, 개념적 단계, 내부적 단계로 서로 간섭되지 않는 모델을 제시
외부 단계 (외부 스키마, Extenal Schema) :
View 단계 여러 개의 사용자 관점으로 구성, 즉, 개개인의 사용자 단계로서 개인의 사용자가 보는 개인적인 db 스키마다. 이에 따라 db의 개인 사용자나 응용 개발자가 접근하는 db다.
개념적 단계 (개념 스키마, Conceptual Schema) :
구성되는 모든 사용자 관점을 통합한 조직 전체의 db를 기술하는 것이다. 모든 응용 시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직전체의 db를 기술한 것이다. db의 저장되는 데이터와 그들간의 관계를 표현하는 스키마이다.
내부적 단계 (내부 스키마, Internal Schema) :
db가 물리적으로 저장된 형식을 나타낸다. 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현한다.
흔히 부르는 매핑(mapping)은 한자어로 사상(寫像)이란 말로 부른다. 가상주소와 물리주소의 대응 관계 또는 기상 주소로부터 물리 주소를 찾아 내는 일을 말한다. 즉 연결 고리인 것이다.
외부 화면이나 사용자에게 view하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결된다는 것
만약 저장된 데이터베이스 구조가 바뀐다면 개념적/내부적 사상이 바뀌어야 함. 그래야 개념적 스키마가 그대로 남아있게 됨
- 업무의 관여되는 어떤것(thing)
- 어떤 것이 가지는 성격(attributes)
- 업무가 관여하는 어떤 것 간의 관계(relationships)