데이터 모델링의 중요성 및 유의점

2018. 7. 24. 18:00DataBase/- sql Developer

데이터 모델링이 중요한 이유는 

1. 파급효과(Leverage) 

2. 복잡한 정보 요구사항의 간결한 표현(Conciseness) 

3. 데이터 품질(Data Quality) 

로 정리할 수 있다.

-파급효과(Leverage)

 시스템 구축이 완성되어 가는 시점에서는 많은 애플리케이션들이 테스트를 수행하고 대규모의 데이터 이행을 성공적으로 수행하기 위한 많은 단위 테스트들이 수행되고 이러한 과정들이 반복된다. 각 단위 테스트들이 성공적으로 수행되고 완료되면 이를 전체를 묶어서 병행테스트, 통합테스트를 수행하게 된다.

 만약 이러한 시점에 데이터 모델의 변경이 불가피한 상황이 발생한다고 가정해 보자. 이를 위해서 데이터 구조의 변경에 따른 표준 영향 분석, 응용 변경 영향 분석 등 많은 영향 분석이 일어난다. 그 이후에 해당 분야의 실제적인 변경 작업이 발생하게 된다. 

 변경을 해야하는 데이터 모델의 형태에 따라서 그 영향 정도는 차이가 있겠지만 이 시기의 데이터구조의 변경으로 인한 일련의 변경작업은 전체 시스템 구축 프로젝트에서 큰 위험요소가 아닐 수 없다. 이러한 이유로 인해 시스템 구축 작업 중에서 다른 어떤 설계 과정보다 데이터 설계가 더 중요하다고 볼 수 있다.


-> 이미 완성된 시스템에서 데이터 모델의 구조를 바꾸기위한 비용이 너무 크다. 때문에 데이터 모델링을 가급적 완벽히 하여, 변경이 될수 있는 부분을 최소화 해야 한다는 내용.


-복잡한 정보 요구사항의 간결한 표현(Conciseness)

 데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구이다. 정보 요구사항을 파악하는 가장 좋은 방법은 수많은 페이지의 기능적인 요구사항을 파악하는 것보다 간결하게 그려져 있는 데이터 모델을 리뷰하면서 파악하는 것이 훨씬 빠른 방법이다.

 데이터 모델은 건축물로 비유하자면 설계 도면에 해당한다. 이것은 건축물의 설계도면이 건축물을 짓는 많은 사람들이 공유하면서 설계자의 생각대로 일사불란하게 움직여서 아름다운 건축물을 만들어 내는 것에 비유할 수 있다. 데이터 모델은 시스템을 구축하는 많은 관련자들이 설계자의 생각대로 정보요구사항을 이해하고 이를 운용할 수 있는 애플리케이션을 개발하고 데이터 정합성을 유지할 수 있도록하는 것이다. 

 이렇게 이상적으로 역할을 할 수 있는 모델이 갖추어야할 가장 중요한 점은 정보 요구사항이 정확하고 간결하게 표현되어야 한다는 것이다. 우리가 활용하고 있는 데이터 모델이 이와 같은 요소들이 충족된 모델인지를 확인해 볼 필요가 있다.


-> 잘 짜여진 데이터 모델 ( 간결하고 정확한 표현되어진 ) 은 여러 개발자들이 시스템의 요구사항을 정확히 이해하고, 운용할수 있는데 많은 도움을 준다는 내용.


-데이터 품질 (Data Quality)

 데이터 베이스에 담겨있는 데이터는 기업의 중요한 자산이다. 이 데이터는 기간이 오래되면 될수록 활용 가치는 훨씬 높아진다. 그런데 이렇게 오래도록 저장되어진 데이터가 그저 그런 데이터, 정확성이 떨어지는 데이터라고 한다면 어떨까 ? 이것은 일부 시스템의 기능이 잘못되어 수정하는 성격의 일이 아니다. 이것은 해당 데이터로 덛을수 있었던 소중한 비즈니스의 기회를 상실할 수도 있는 문제이다.

 데이터 품질의 문제가 중요한 이유가 여기에 있다. 데이터 품질의 문제는 데이터 구조가 설계되고 초기에 데이터가 조금 쌓일 때에는 인지하지 못하는 경우가 대부분이다. 이러한 데이터의 문제는 오랜 기간 숙성된 데이터를 전략적으로 활용하려고 하는 시점에 문제가 대두되게 때문이다.

 데이터 품질의 문제가 야기되는 중대한 이유 중 하나가 바로 데이터 구조의 문제이다. 중복 데이터의 미정의, 데이터 구조의 비즈니스 정의의 불충분, 동일한 성격의 데이터를 동합하지 않고 분리함으로써 나타나는 데이터 불일치 등의 데이터 구조의 문제로 인한 데이터 품질의 문제는 치유하기에는 불가능한 경우가 대부분이다.

데이터 모델링을 할 때 유의점은 다음과 같다.


1) 중복(Duplication)

- 데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 준다. 이러한 지식 응용은 데이터 베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.

2) 비유연성(Inflexibility)

- 데이터 모델을 어떻게 설계 했느냐에 따라 사소한 업무 변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.

3) 비일관성(Inconsistency)

- 데이터의 중복이 없더라도 비일관성은 발생한다. 예를 들어 신용 상태에 대한 갱신이 없이 고객의 납부 이력정보를 갱신하는 것이다. 개발자가 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문이다. 데이터 모델링을 할 때 데이터와 데이터 간 상호 연관 관계에 대한 명확한 정의는 이러한 위험을 사전에 예방할 수 있도록 해준다.


-> 데이터 중복의 최소화, 데이터의 독립성 을 유지시켜준다면 위의 유의할 점들은 해결되어 질것 같다. 데이터 중복을 없에면 비일관성 역시 해소가 될 것이고, 비 유연성은 데이터의 독립성부분을 이해하면 해결 될 것같다.


'DataBase > - sql Developer' 카테고리의 다른 글

데이터 모델의 기본 개념의 이해  (2) 2018.07.24
모델링의 이해  (0) 2018.07.24
SQLD 자격증에 대해서  (0) 2018.07.24