본문 바로가기

데이터 Story/데이터 상념(想念)

좋은 모델은...

좋은 모델은 사용자가 원하는 데이터를 정확하게 빠르게 보여줄 수 있는 단순한 모델이다.


업무요건(Business Requirement)
모델링은 업무에서 필요로 하는 데이터를 설계하는 작업이다. 좋은 모델은 당연히 업무 요건을 만족해야 한다.
업무가 기준이 되지 않은 모델은 좋은 모델이 아니다. 업무에서 요구하는 데이터를 분석해서 엔터티를 명확하게 정의하는 것이 정규화이므로 업무를 모델에 표현하려면 정규화 과정을 거쳐야 한다.


데이터 무결성(Data Integrity)
데이터 무결성(Integrity)을 높이는 것이 모델링의 최우선 목표다. 데이터 무결성은 데이터에 결점이 없는 상태를 의미한다. 무결성이 훼손된 데이터는 아무리 업무 요구 사항을 충족한다 해도, 아무리 빠른 성능이 보장된다 해도 좋은 모델이 될 수 없다. 데이터 무결성을 보장하는 가장 기본적인 방법은 중복을 제거하고 관계를 관리하는 것이다.
더는 삭제할 것이 없는 모델이 좋은 모델이다. 데이터를 통합할수록 중복은 제거된다.


성능(Performance)
데이터 무결성 다음으로 고려해야 하는 부분이 성능이다. 데이터 모델링은 단순히 업무를 개념적으로 표현하는 것에 그치는 게 아니라 DBMS에 구현됐을 때 문제가 발생하지 않도록 하는 것이다. 심각한 성능 이슈가 발생하지 않도록 하는 것 또한 모델링의 목표다. 데이터 무결성과 데이터베이스 성능을 높이는 것이 모델링의 양대 목표나 마찬가지다.


유연성(Flexibility)
업무 변화에 유연하게 대처할 수 있는 모델이 좋은 모델이다. 신규로 업무가 추가되거나 바뀌더라도 모델 구조가 변하지 않도록 설계해야 한다. 확장성이 좋은 유연한 모델을 구축할 수 있는지는 모델러의 주요한 능력이며, 모델러에 따라서 차이가 많이 나는 부분이다. 데이터 자체를 기준으로 판단해 유사한 데이터라면 통합된 모델이 확장성이 좋은 유연한 모델이다. 정규화(Normalization)와 일반화(Generalization)를 할수록 확장하기 좋은 유연한 모델이 된다.


정규화(Normalization)를 정확히 수행할 수 있고 데이터를 통합(Generalization)할 수 있는 능력만 있다면 좋은 모델을 만들 수 있다.