모델이라고 하는 것은 모형, 축소형의 의미로서 사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형이라고 할 수 있다
사람이 살아가면서 나타날 수 있는 다양한 현상은 사람, 사물, 개념 등에 의해 발생된다고 할 수 있으며 모델링은 이것을 표기법에 의해 규칙을 가지고 표기하는 것 자체를 의미한다
즉 모델을 만들어가는 일 자체를 모델링으로 정의할 수 있다
모델링의 특징을 요약하면 추상화, 단순화, 명확화의 3대 특징으로 요약할 수 있다
- 추상화는 현실세계를 일정한 형식에 맞추어 표현을 한다는 의미로 정리할 수 있다
즉, 다양한 현상을 일정한 양식인 표기법에 의해 표현한다는 것이다- 단순화는 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여
쉽게 이해할 수 있도록 하는 개념을 의미한다- 명확화는 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고
정확하게 현상을 기술하는 것을 의미한다
따라서 모델링을 다시 정의하면
'현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법'
으로 정의할 수 있다
정보 시스템 구축에서는 모델링을 [계획/분석/설계] 할 때 업무를 분석하고 설계하는데 이용하고 이후 [구축/운영] 단계에서는 변경과 관리의 목적으로 이용하게 된다
모델링은 크게 세 가지 관점인 데이터관점, 프로세스관점, 데이터와 프로세스의 상관관점으로
구분하여 설명할 수 있다
- 데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서
모델링하는 방법 (What, Data)- 프로세스 관점 : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링 하는 방법 (How, Process)
- 데이터와 프로세스의 상관관점 : 업무가 처리하는 일의 방법에 따라데이터는 어떻게 영향을 받고 있는지 모델링하는 방법(Interaction)으로 설명될 수 있다
- 정보시스템을 구축하기 위한 데이터관점의 업무 분석 기법
- 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정
- 데이터베이스를 구축하기 위한 분석/설계의 과정
실무적으로 해석해보면
1) 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것
2) 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것
즉, 데이터 모델링이라는 것은 단지 데이터베이스만을 구축하기 위한 용도로만 쓰이는 것이 아니라
데이터 모델링 자체로서 업무를 설명하고 분석하는 부분에도 매우 중요한 의미를 가지고 있다
데이터 모델링이 중요한 이유는
- 파급효과(Leverage)
- 복잡한 정보 요구사항의 간결한 표현(Conciseness)
- 데이터 품질(Data Quality)
파급효과
병행테스트 및 통합테스트 중 데이터 모델의 변경이 불가피한 상황이 발생한다고 가정하면,
이를 위해서 데이터 구조의 변경에 따른 많은 영향 분석이 일어난다
그 이후에 해당 분야의 실제적인 변경 작업이 발생하게 된다
데이터 모델의 형태에 따라 차이가 있겠지만 데이터 구조의 변경으로 인한 일련의 변경작업은
전체 시스템 구축 프로젝트에서 큰 위험요소가 아닐 수 없다
이러한 이유로 시스템 구축 작업중에서 다른 어떤 설계 과정보다 데이터 설계가 더 중요하다
복잡한 정보 요구사항의 간결한 표현
정보 요구사항을 파악하는 가장 좋은 방법은
수 많은 페이지의 기능적인 요구사항을 파악하는 것보다
간결하게 그려져 있는 데이터 모델을 리뷰하면서 파악하는 것이 훨씬 빠른 방법이다
'데이터 모델은 건축물로 비유하자면 설계 도면에 해당한다
건축물을 짓는 많은 사람들이 공유하면서 설계자의 생각대로 일사불란하게 움직여서
아름다운 건축물을 만들어 내는 것에 비유할 수 있다'
이상적으로 역할을 할 수 있는 모델이 갖추어야 할 가장 중요한 점은
'정보 요구사항이 정확하고 간결하게 표현되어야 한다는 것'
데이터 품질
데이터는 기업의 중요한 자산이고, 기간이 오래될 수록 활용가치는 훨씬 높아진다
그런데 해당 데이터가 그저 그런 데이터, 정확성이 떨어지는 데이터라고 한다면?
이것은 일부 시스템의 기능이 잘못되어 수정하는 성격의 일이 아니고,
해당 데이터로 얻을 수 있었던 소중한 비즈니스의 기회를 상실할 수 있는 문제이다
데이터의 품질의 문제가 야기되는 중대한 이유 중 하나가 바로 데이터 구조의 문제이다
- 중복 데이터의 미정의
- 데이터 구조의 비즈니스 정의의 불충분
- 동일한 성격의 데이터를 통합하지 않고 분리함으로써의 나타나는 데이터 불일치
데이터 구조의 문제로 인한 데이터 품질의 문제는 치유하기에 불가능한 경우가 대부분이다
데이터 모델링을 할 때 유의점은 다음과 같다
1) 중복(Duplication)
데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 준다
이러한 지식 응용은 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다
2) 비유연성(Inflexibility)
데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가증시킬 수 있다
데이터의 정의를 데이터 사용 프로세스와 분리함으로써 데이터 모델링은
데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를
일으킬 수 있는 가능성을 줄인다
3) 비일관성(Inconsistency)
데이터의 중복이 없더라고 비일관성은 발생한다
예를 들어 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보를 갱신하는 것이다
개발자가 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기
데이터 모델링을 할 때 데이터와 데이터간 상호 연관 관계에 대한
명확한 정의는 이러한 위험을 사전에 예방할 수 있도록 해준다