모델이란 다양한 현상을 일정한 표기법으로 표현해 놓은 모형이라 할 수 있다. 모델링은 모델을 만들어가는 프로세스이다.
모델링은 '추단명' 특징을 가진다.
-추상화: 일정한 양식으로 표현
-단순화: 복잡한 현실세계의 데이터들을 일정한 표기법으로 표현해 쉽게 이해하게 함.
-명확화: 정확하게 기술
--> 모델링이란 현실세계를 추상화, 단순화, 명확화 하기위해 일정한 표기법에 의해 표현하는 기법입니다.
모델링을 계획/분석/설계 할 때 분석하고 설계하는데 이용하고
구축/운영 단계에서는 변경과 관리의 목적으로 이용합니다. 전반적으로 이용한다는 얘기.
모델링은 세 가지 관점이 있다.
1. 데이터 관점: 업무가 어떤 데이터와 관련있는지, 데이터간의 관계는 무엇인지 모델링
2. 프로세스 관점: 업무가 실제 하고있는일이 뭔지, 뭘 해야하는지 모델링
3. 데이터&프로세스 상관관점: 일처리 방법에 따라 데이터는 어떤 영향을 받는지 모델링
데이터 모델링이란 것은 단지 DB 구축용이 아니라 그 자체로 업무를 설명하고 분석하는 부분에도 사용된다.
데이터 모델이 제공하는 기능
1. 가시화
2. 명세화
3. 구조화
4. 문서화
데이터 모델링의 중요성 및 유의점
1. 데이터 모델링은 파급효과가 있다. 모델링 이후 데이터 모델의 변경이 이루어질 경우 여러 분석들에 영향이 있기 때문에 다시 해야하고 작업 전반을 재진행 해야 한다. 따라서 데이터 설계 과정에서 데이터 모델링은 파급효과를 유의하며 작업해야 한다.
2. 데이터 모델은 건축물로 비유하자면 설계 도면이다. 따라서 복잡한 정보를 간결하게 표현해야 함을 유의하며 진행해야한다.
3. 데이터는 기업의 중요한 자산이다. 따라서 데이터 품질은 중요한데 데이터 구조가 설계되고 데이터가 별로 모이지 않은 초기에는 인지하지 못하는 경우가 많다. 데이터 품질 문제는 데이터를 전략적으로 활용하는 시점에 대두되는 경우가 많기 때문에 초기부터 퀄리티를 높이는것에 유의하며 모델링 하면 좋다.
데이터 품질의 문제가 야기되는 이유중 하나는 데이터 구조의 문제이다. 이는 중복데이터, 비즈니스 정의 불충분, 데이터 불일치 등이 있다. 따라서 아래 3가지에 유의하며 모델링을 해야한다.
1) 데이터 모델은 같은 데이터를 이용하는 여러 사용자에게 도움을 준다. 따라서 같은 데이터가 여러 DB에 저장되는 것인 중복을 피해야 한다.
2) 데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터모델이 수시로 변경됨으로 유지보수에 어려움을 주어서는 안된다. 따라서 데이터의 정의와 사용 프로세스와 분리함으로써 프로세스의 변화가 DB에 변화를 일으키는 가능성을 줄이는 비유연성에 유의하며 모델링 해야한다.
3) 데이터의 중복을 없애더라도 비일관성이 발생한다. 데이터 모델링을 할 때 데이터와 데이터간 상호 연관 관계에 대한 명확한 정의를 통해 이런 비일관성을 예방하도록 모델링 해야한다.
데이터 모델링은 크게 3단계로 이루어져 있다.
현실세계 개체를 개념적 데이터 모델링을 통해 개념적 구조를 만드는 1단계.
개념적 구조를 논리적 데이터 모델링을 통해 논리적 구조를 만드는 2단계.
논리적 구조를 물리적 데이터 모델링을 통해 저장DB를 만드는 3단계.
개념적 데이터 모델링은 추상화 수준이 높다. 또한 업무중심적이고 포괄적인 수준의 모델링을 진행하는 전반적인 모델링을 진행한다. EA수립시에 많이 이용한다.
*EA란?
조직의 프로세스 및 정보 시스템 및 부서의 구조와 기능을 포괄적이고 정확한 방법으로 기술하는 방법이고,
이것을 통해 조직이 전략적 목표에 따라 행동하도록 방향을 제시하는 것이다. 정보기술(IT)와 관련이 깊지만, 사업 최적화도 관련이 깊고, 사업구조, 성과관리, 조직구조 아키텍처 등으로 불린다
개념적 DB 설계는 조직, 사용자의 데이터 요구사항을 찾고 분석하는것부터 시작한다. 어떤 자료가 중요하고 유지해야 하는지 결정하는것을 포함한다. 이때 핵심 엔티티와 관계를 발견하고 [엔티티-관계] 다이어그램을 생성한다. [엔티티-관계] 다이어그램은 데이터 사용자에게 어떤 데이터가 중요한지 알려준다.
개념 데이터모델은 두가지 중요한 기능을 지원한다.
1) 개념 데이터 모델은 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원한다. 상위의 문제에 대한 구조화를 쉽게 하도록 도와주며 사용자와 개발자간의 커뮤니케이션 할 수 있는 기반을 형성한다.
2) 개념 데이터 모델은 현 시스템이 어떻게 변형 되어야 하는가를 이해하는데 유용하다.
논리적 데이터 모델링은 DB 설계 프로세스의 Input으로써 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정이다. 논리 데이터 모델은 데이터 모델링의 최종본 이며 물리적 스키마 설계 전 단계의 데이터모델 상태이다. 논리 데이터 모델링의 핵심은 누가 어떻게 데이터에 접근하는지 기록하는 것과 비즈니스 데이터에 존재하는 사실을 인식해 기록하는 것이다.
논리적 데이터 모델링은 데이터 모델링 과정중 가장 핵심이 되는 부분이다. 시스템 구축을 위한 기초부터 결정까지의 전과정을 지원한다. 또 한가지 중요한 활동은 '정규화' 이다. 정규화는 논리 데이터 모델 상세화 과정으로 신뢰성 있는 데이터구조를 얻는데 목적이있다. 이를위해 중복을 제거하여 일관성을 확보하고 속성들이 적적한 엔티티에 배치되도록 한다.
논리 데이터 모델링은 식별자 확정, 정규화, M:M관계 해소, 참조 무결성 규칙 정의 등으로 세분화 할 수 있다.
물리적 데이터 모델링은 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룬다. 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대한 정의를 물리적 스키마라고 한다. 테이블, 칼럼 등으로 표현되는 물리적인 저장 구조와 사용될 저장 장치, 자료를 추출하기 위해 사용될 접근방법등이 있다.
--> 실제 현실 프로젝트 에서는 개념적 데이터 모델링과 논리적 데이터 모델링을 한꺼번에 수행하여 논리적인 데이터 모델링으로 수행하는 경우가 대부분이다.