데이터 모델링이란 무엇일까?

데이터 모델링(Data Modeling)은 무엇일까?

데이터 모델링은 DB에 저장할 데이터를 위한 데이터 모델을 만드는 프로세스를 의미한다.

이런 데이터 모델은 다른 데이터 객체와 규칙들 간의 연결을 나타내는 개념적인 표현이다.

데이터 모델링은 데이터의 시각적인 표현을 도와주고 데이터에 대한 비즈니스 규칙, 규정 준수 및 정책들을 시행한다.

또한 데이터 품질을 보장하면서도 Naming convention과 기본 값, semantic 그리고 보안의 일관성을 보장한다.

즉 데이터 모델링은 데이터에 대한 개념적인 표현과 데이터와 그 데이터들에 적용될 규칙들의 연관성을 나타내기도 하며, 데이터의 시각적인 표현(visualization)을 할 수 있게 도와준다는 것이다.

데이터 모델링을 함으로써 이런 장점들을 얻을 수 있게 되는 것이다.

또한 데이터 모델은 데이터에 대해서 수행해야 될 작업 대신에 필요한 데이터와 구성 방법을 강조한다.

데이터가 수행해야 될 작업보다는 이 데이터 모델을 구성할 데이터와 어떻게 구성할지 또는 구성하였는지 이 방법에 초점을 맞춘다는 것이다.

그래서 데이터 모델은 개념 모델을 구축하고 데이터 항목들간의 관계를 설정하는데 도움을 주는 설계도 혹은 건축계획과 같다.

우리는 이미 데이터 모델링에 사용하는 기술들을 많이 알고 있다.

  1. ER(Entity Relationship) Model
  2. UML (Unified Modeling Language)

이미 익숙한 두 녀석들이지 않은가? ER Model과 UML

이 녀석들에 대해서는 이미 알고 있는 사람들이 대다수라 생각하고 나중에 필요하다면 별도로 포스트를 작성하겠다.

위에서 데이터 모델링이 무엇인지 알아보았다.

데이터 모델은 그럼 왜 사용할까?

  1. DB에 필요한 모든 데이터 개체가 정확하게 표현되도록 함
  2. 데이터 모델은 개념적, 논리적, 물리적 수준에서 DB를 디자인하는데 도움을 줌
  3. 데이터 모델 구조는 관계형 테이블과 기본키, 외래키 그리고 적재할 프로시저를 정의하는데 도움을 줌
  4. Base Data에 대한 명확한 그림을 제공하고, DB개발자가 physical level database를 만드는 데 도움을 줌
  5. 누락되거나 중복된 데이터의 식별에 도움을 줌

등이 있다.

여기에서 나오는 개념 모델(Conceptual Model), 논리 모델(Logical Data Model) 그리고 물리 모델(Physical Data Model)은 이미 알고 있을 거라고 생각하고 생략하겠다.

전공자의 경우 학부에서 배우기도 하고, 비전공자의 경우에도 DB와 관련된 공부를 하다보면 필연적으로 만나기 때문이다.

이어서 데이터 모델의 장단점은 무엇일까?

데이터 모델을 통해서 무엇을 얻을 수 있는지, 또 그 반대로 데이터 모델을 적용함으로써 무엇을 손해보는지 알아야 어떤 상황에서 어떻게 적용을 할 지 판단할 수 있을 것이다.

먼저 이점부터 살펴보면,

  1. 각 기능의 팀이 제공하는 데이터가 정확히 표현되는 것을 확신할 수 있음.
  2. Physical DB를 구축하는데 사용될 수 있을 정도로 자세해야 됨.
  3. 데이터 모델에 정의된 정보를 이용해 테이블, 기본키와 외래키 그리고 저장된 프로시저의 관계를 정의하는데 사용할 수 있음.
  4. 조직내와 조직간 비즈니스 커뮤니케이션에 도움을 줌.
  5. ETL 프로세스에서 데이터 맵핑(Data Mapping)을 문서화하는데 도움을 줌.
  6. 모델에 사용할 알맞는 데이터를 알 수 있게 해줌.

정도가 있다.

그럼 이점말고 불리한점은 뭘까?

  1. 데이터 모델을 개발하려면 물리적 데이터의 저장 특성을 알아야 함.
  2. 데이터 모델은 네비게이션 역할을 하는 모델로, 복잡한 어플리케이션 개발과 관리를 요구함. 또 이런 것들에 대한 지식을 요구함.
  3. DBMS에는 데이터 모델과 관련된 DML(Data Manipulation Language)이 없음

마지막으로 결론은,

  1. 데이터 모델링은 DB에 저장될 데이터에 대한 데이터 모델링을 하는 프로세스
  2. 데이터 모델은 데이터의 퀄리티를 보장하면서 Naming convention, default value, semantics, security를 보장함
  3. 데이터 모델의 구조는 관계형 테이블, 기본키 및 외래키 그리고 저장 프로시저를 정의하는데 도움을 줌
  4. 개념적(Conceptual), 논리적(Logical), 물리적(Physical) 총 3개의 타입이 있음
  5. 개념적 모델의 주요 목표는 개체, 속성 및 관계를 정의
  6. 논리적 데이터 모델은 데이터 요소의 구조를 정의하고 이들간의 관계를 설정
  7. 물리적 데이터 모델은 데이터 모델의 특정 구현을 설명함
  8. 데이터 모델 디자인의 주요 목표는 각 기능의 팀들이 제공하는 데이터 오브젝트(Data Object)가 정확하게 표현되도록 하여 신뢰할 수 있게 하는 것
  9. 가장 큰 단점은 구조에 사소한 변경이 전체 어플리케이션의 변경을 요구한다는 것

포스트에 대한 피드백이 있으시다면 여기로 메일 부탁드립니다. 읽어주셔서 감사합니다.