정보 처리/데이터 모델링

데이터 모델링 개요

본클라쓰 2012. 6. 12. 12:25

 

모델링은 추상적인 개념입니다.

 

데이터 구조를 설계한 내용을 적절한 표기법(Notation)을 사용하여 표현한 것을 데이터 모델링이라 합니다. 따라서 데이터 모델링은 데이터베이스의 구조에 영향을 받습니다. 개체-관계형 데이터베이스를 사용할 때와 객체 데이터베이스를 사용할 때 도출된 데이터 모델링의 결과는 다를 수 밖에 없습니다.

 

일반적으로 데이터베이스는 개체-관계형 데이터베이스 모델을 사용합니다. 따라서 데이터 모델링을 설명하는 대부분의 내용은 개체-관계형 데이터베이스 모델을 기초로 합니다.

 

데이터 모델링은 하는 주요한 이유는 업무 정보를 구성하는 데 기초가 되는 정보를 일정한 표기법으로 표현함으로써 정보시스템 구축 대상이 되는 업무 내용을 정확하게 분석하는 것입니다.

 

 

 

데이터 모델링의 세 가지 관점

 

· 데이터 관점 - 업무가 어떤 데이터와 관련이 있는지, 데이터 간의 관계는 무엇인지에 대해 모델링(What, Data)

· 프로세스 관점 - 업무를 통해 어떤 일을 처리하는지, 무엇을 해야 하는지를 모델링하는 방법(how, process)

· 데이터와 프로세스의 상관 관점 - 업무에서 일을 처리하는 방법에 따라 데이터가 어떻게 영향을 받는지 모델링하는 방법

 

관점은 구분할 수 있지만 일관된 부분은 업무에 데이터가 영향을 받는다는 것입니다. 데이터 모델링의 핵심은 해당 정보 시스템이 구현해야 할 기능이 무엇인가에 있습니다. 따라서 데이터 모델링을 수행하기 전에 구현해야 할 기능을 정의하는 일이 반드시 필요합니다.

 

 

 

좋은 데이터 모델의 요소

 

일반적으로 시스템 구축 과정에서 생성되는 데이터 모델은 그 품질을 평가하는 것이 매우 어렵습니다. 사실 특정 데이터 모델이 업무 환경에서 요구하는 사항을 얼마나 잘 구현할 수 있는가를 객관적으로 평가할 수 있다면 가장 좋은 평가 방법일 것입니다. 하지만 어디에도 이것을 객관적으로 평가할 수 있는 기준은 존재하지 않는 것이 현실입니다. 이러한 상황에서 대체적으로 좋은 데이터 모델이라고 말할 수 있는 몇 가지 요소들은 다음과 같습니다.

 

 

1) 완전성(completeness)

 

업무에 필요로 하는 모든 데이터가 데이터 모델에 정의되어 있어야 합니다. 데이터 모델을 검증하기 위해서 가장 먼저 확인해야 할 부분입니다. 이 기준이 충족되지 않는다면 다른 어떤 평가 기준도 의미가 없습니다. 만약, 보험사의 데이터 모델에 고객의 직업을 관리하기 위한 속성이 없다면 잘못된 데이터 모델일 가능성이 높습니다.

 

 

2) 중복배제(non-redunancy)

 

하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록해야 합니다. 예를 들어 하나의 테이블에 "나이"와 "생년월일" 컬럼이 동시에 존재한다면 이것은 데이터 중복이라고 볼 수 있습니다. 이러한 형태의 데이터 중복 관리로 인하여 여러 가지 바람직하지 않은 형태의 데이터 관리 비용을 지불할 수 있습니다. 예를 들면, 저장공간의 낭비, 중복 관리되는 데이터의 일관성을 유지하기 위한 추가적인 데이터 조작 등이 대표적인 낭비되는 비용이라 볼 수 있습니다.

 

 

3) 업무 규칙(business rules)

 

구현해야 할 수 많은 업무 규칙이 데이터 모델에 표현되어 있고 이를 해당 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 제공해야 합니다.

 

 

4) 데이터 재사용성(data reusability)

 

데이터 재사용성을 향상시키고자 한다면 데이터의 통합성과 독립성에 대해서 충분히 고려해야 합니다. 과거의 정보시스템의 생성/운영된 형태를 되짚어 보면 철저하게 부서 단위의 정보시스템으로 설계되고 운용되어 왔습니다. 현재 대부분의 회사에서 진행하고 있는 신규 정보시스템의 구축 작업은 회사 전체 관점에서 공통 데이터를 도출하고 이를 전 영역에서 사용하기 적절한 형태로 설계하여 구축하게 됩니다. 이러한 형태의 데이터 설계에서 가장 중요하게 대두되는 것이 통합 모델입니다.

 

또한, 데이터가 어플리케이션에 대해 독립적으로 설계되어야 데이터 재사용성을 향상시킬 수 있습니다. 정보시스템은 비즈니스의 변화에 대해 최적으로 적응하도록 끊임없이 요구됩니다. 하지만 일부 정보시스템의 데이터 모델은 이러한 변화에 대해 현재의 데이터 구조를 거의 변화하지 않고도 대응할 수 있는 구조도 있고, 아주 적은 확장을 통해 이러한 변화에 대응하는 것도 있을 것입니다. 하지만 이러한 변화에 대응하기 위해서는 데이터 구조에 아주 많은 변화를 주어야만 한다면 대상이 되는 부분뿐만 아니라 나머지 부분들도 많은 영향을 받게 될 것입니다. 그래서 많은 기업들이 정보시스템을 구축하는 과정에서 데이터 구조의 확장성, 유연성에 많은 노력을 기울이고 있습니다.

 

 

5) 의사소통

 

데이터 모델의 역할은 많습니다. 그 중에서도 의사소통의 역할입니다. 데이터 모델은 대상으로 하는 업무를 데이터 관점에서 분석하고 이를 설계하여 나온 최종 산출물입니다. 이 과정에서 도출되는 업무 규칙들은 데이터 모델의 엔티티, 서브타입, 속성, 관계 등의 형태로 최대한 자세하게 표현되어야 합니다.

 

 

6) 통합성(integration)

 

기업들이 과거부터 정보시스템을 구축해 왔던 방법은 개별 업무별로 단위 정보시스템을 구축하여 현재까지 유지보수를 해오고 있는 것이 보통입니다. 점진적인 확장과 보완의 방법으로 정보시스템을 구축해 왔기 때문에 동일한 성격의 데이터 임에도 불구하고 전체 조직 관점에서 보면 여러 곳에서 동일한 데이터가 존재하기 마련입니다.

 

특히, 이러한 데이터 중에서 고객, 상품 등과 같은 마스터 성격의 데이터들이 분할되어 관리됨으로 인해 전체 조직 관점에서 데이터 품질, 관리, 활용 관점에서 많은 문제점드링 나타나고 있는 것이 현실입니다. 가장 바람직한 데이터 구조의 형태는 동일한 데이터는 조직 전체에서 한번만 정의되고 이를 여러 다른 영역에서 참조, 활용하는 것입니다.