[DB] 데이터 모델링이란 무엇인가?

 데이터 모델링이란? 

데이터 모델링(data modeling)은 복잡한 현실세계의 데이터를 단순화시켜 데이터베이스로 표현하기 위한 작업이라고 생각하시면 되겠습니다. 어떠한 시스템을 만들게 될 때, 프로젝트 초기단계에서 데이터베이스를 구축하고자 진행하는 작업으로 예를 들자면 직원들을 관리하는 사내 ERP 시스템을 구축한다고 하면 사내에서 직원을 관리하는 업무 프로세스를 완벽히 이해를 하고 사원의 정보(이름, 나이, 주소 등)를 어떤 테이블에 어떠한 컬럼을 생성하여 관리할 것인지를 모델링합니다. 여기서 보관해야 할 데이터들은 추상화하여 복잡하지 않게 규칙을 정하고 그것을 문서화해 나가야 합니다.

 

데이터 모델링 특징

추상화 : 현실세계를 일정한 형식에 맞춰 간략하게 표현해야 합니다.

단순화 : 누구나 쉽게 이해할 수 있도록 제한된 표기법이나 언어를 사용해야 합니다.

명확화 : 명확하게 의미가 해석되어야 하고, 한 가지 의미만을 가져야 합니다.

 

데이터 모델링을 왜 해야 할까요?

데이터베이스의 자원은 무한하지 않습니다. 그렇기 때문에 데이터베이스의 자원을 효율적으로 사용하고, 비즈니스 로직이 이해하기 쉽도록 애초에 설계 단계에서 데이터 모델링을 잘해야 합니다. 비즈니스 로직을 잘 녹여 어떠한 테이블, 컬럼을 생성하고 관계를 어떻게 해야 할지 모두 데이터 모델링의 과정입니다. 이 과정을 잘해야 데이터가 꼬여버리거나 SQL을 비효율적으로 작성하는 문제를 방지할 수 있고 추후에 시스템을 확장시키는데도 용이합니다.

 

 데이터 모델링의 단계 

 

요구사항 분석

고객과의 의사소통을 통해 고객의 업무 프로세스를 완벽하게 이해하고 그들의 요구사항을 구체적으로 뽑아냅니다. 예를 들어, 고객이 직원들을 관리하는 ERP 시스템을 만든다고 하면 사원 조회, 성과 등록과 같은 기능들이 필요한지 파악해야 합니다. 고객이 희망하는 기능에 따라  "아! 당신들이 원하는 시스템이나 어플을 만들기 위해서는 이런이런 데이터들이 필요하겠군요" 하고 데이터들을 고객에게 설명하고, 요구사항을 구체화시킨 뒤 시스템을 구축하는 데 있어 필요한 엔터티, 어트리뷰트, 관계 등을 파악합니다.

 

개념적 모델링

본격적인 모델링에 들어가면 가장 먼저 업무적인 측면에서 시스템에 필요한 데이터를 모델링합니다. 이 과정을 개념적 모델링이라고 합니다. 이 단계에서 핵심은 각각의 엔티티 간의 관계를 발견하고 그것을 표현하기 위해 엔티티 - 관계 다이어그램(ERD)을 그리는 것입니다. 추상화 수준이 가장 높은 단계로 이 과정에서는 포괄적으로 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링하며 기술적인 용어는 가급적 사용하지 않는 것이 좋습니다.

 

논리적 모델링

개념적 모델링을 논리적 모델링으로 변환합니다. 이 과정에서 식별자를 도출하고 엔터티의 속성과 관계 등 필요한 모든 릴레이션을 정의합니다. 또한 정규화를 수행하여 데이터 모델의 독립성을 확보하고 재사용성을 높입니다. 이렇게 관계형 데이터 모델이 완성되면 업무의 구체적인 모습과 흐름에 따른 구체화된 업무 중심의 데이터 모델을 만들어냅니다. 즉 논리적 모델링이란 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법이라고 할 수 있습니다. 

 

물리적 모델링

데이터 모델링 과정의 마지막 단계인 물리적 모델링에서는 데이터베이스를 실제 구축합니다. 이 과정에서 테이블, 인덱스, 함수 등을 실제로 생성하며 성능 보안 가용성 등 물리적인 성격을 고려해서 데이터베이스를 구축합니다. 

 

 데이터 모델링시 고려해야 할 사항 

데이터 모델의 독립성

추후 확장성을 고려하여 데이터 모델의 독립성을 확보합니다. 독립성이 확보된 모델은 고객의 업무 변화에 능동적으로 대응할 수 있습니다. 독립성을 확보하기 위해서는 DB 정규화를 통해 중복된 데이터를 제거해야 합니다.

 

고객 요구사항 표현

데이터 모델링으로 고객과 데이터 모델러간의 의사소통을 할 수 있어야 하므로, 고객의 요구사항을 간결하고 명확하게 표현해야 합니다.

 

데이터 품질 확보

데이터베이스를 구축할때 데이터 표준을 정의하고 표준 준수율을 관리해야합니다. 데이터 표준을 확보해야 데이터 품질을 향상시킬 수 있습니다.

댓글

Designed by JB FACTORY