데이터 모델링이 추상화를 사용하여 엔터프라이즈 정보 시스템 내 데이터 흐름의 특성을 나타내고 더 잘 이해하는 방법을 소개합니다.

데이터 모델링 프로세스(Data modeling process)

데이터 모델링의 원칙은 이해관계자가 데이터의 처리와 저장에 밀접하게 관여하는 것입니다. 메디어 모델링 기술에는 데이터를 나타내는 데에 사용되는 기호와 모델의 배치방법, 비즈니스 요구사항 전달 방법 등을 지정하는 규칙이 있습니다. 모든 접근 방식은 반복적으로 수행되는 일련의 작업을 포함하는 워크플로우를 제공합니다. 이 워크플로우는 아래와 같이 여섯 가지 단계로 구성되어 있습니다.

  1. 엔티티 식별(Identify the entities): 데이터 모델링의 가장 첫 단계는 모델링할 데이터 세트에서 표시되는 각 객체를 지정하고 개념을 식별하는 것으로 시작됩니다. 각 엔티티는 논리적으로 다른 엔티티와 분리되어야 합니다.
  2. 각 엔티티의 주요 속성 구분(Identify key properties of each entity): 각 항목은 특성이라고 하는 하나 이상의 고유한 속성을 가집니다. 이를 기반으로 다른 항목과 구분할 수 있는데, 예를 들어 “고객”이라는 엔티티에는 이름, 성, 전화번호, 인사말과 같은 속성을 가지는데 비해, “주소”라는 엔티티에는 도로명주소, 도시, 국가, 우편번호 등이 포함될 수 있습니다.
  3. 엔티티 간의 관계 설정(Identify relationships among entities): 데이터 모델을 시작하는 단계에서 각 엔티티는 다른 엔티티와의 관계를 설정하게 됩니다. 위의 예에서 하나의 고객은 주소에 “거주”하게 됩니다. 만약 “주문”이라는 엔티티를 포함하도록 확장되면, 각 주문은 주소로 배송되고 요금을 청구하게 됩니다. 이런 관계는 일반적으로 UML(Unified Modeling Language)를 통해 문서화됩니다.
  4. 엔티티별 속성 매핑(Map attributes to entities completely): 비즈니스에서 데이터를 사용하는 방식을 반영하기 위한 방법입니다. 다양한 모델링 패턴이 사용되고 있기 때문에, 객체 지향 개발자는 분석이나 디자인 패턴을 적용하는 반면, 다른 개발자는 다른 패턴을 사용할 수도 있습니다.
  5. 필요에 따른 키 할당과 정규화(Assign keys as needed, and decide on a degree of normalization that balances the need to reduce redundancy with performance requirements): 정규화는 키값에 따라 데이터 그룹의 중복성을 제거하고 관계를 나타내는 데이터 모델(일반적으로는 관계형 데이터베이스 모델)을 말합니다. 같은 정보가 데이터베이스 내에서 반복되는 것을 방지하고자 사용하며, 필요한 저장공간의 양을 줄이는 효과는 있지만, 쿼리의 성능이 저하될 수 있습니다.
  6. 데이터 모델의 최종 검증(Finalize and validate the data model): 데이터 모델링은 비즈니스 요구사항에 따라 반복되고 개선되어야 하는 지속적인 프로세스입니다. 따라서 검증은 계속 발생하게 됩니다.

데이터 모델링 유형(Types of data modeling)

데이터 모델링은 DBMS와 함께 발전하였으며, 기업의 데이터 스토리지 요구사항이 증가함에 따라 모델 유형이 점점 복잡해지고 있습니다. 이에 대해 간략하게 살펴보면 다음과 같습니다.

  • 계층적 데이터 모델(Hierarchical data models): 트리형식으로 1:N 관계를 나타낼 때 사용하는 방식으로 각 레코드에 하나 이상의 하위 테이블에 매핑되는 단일 루트나 상위가 존재합니다. 이 모델은 1966년 IBM IMS에서 도입되었으며, 특히 금융기관에서 널리 사용되었습니다. 이 방식은 최근에 개발된 데이터베이스 모델보다는 덜 효율적이지만 XML(eXtensible Markup Language) 시스템과 GIS(지리정보시스템)에서 여전히 사용 중입니다.
  • 관계형 데이터 모델(Relational data models): 1970년 IBM연구원 EF Codd가 처음 제안한 모델로 오늘날 기업 정보시스템에서 가장 널리 사용되는 모델입니다. 관계형 데이터 모델은 사용중인 데이터 저장소의 물리적 속성에 대한 자세한 이해가 필요하지 않으며, 데이터 분류에서 테이블 사용을 통해 명시적으로 결합되어 데이터베이스 복잡성을 줄여줍니다.

관계형 데이터베이스는 데이터 관리를 위해 SQL(Structured Query Language)를 자주 사용합니다. 이러한 데이터베이스는 데이터 무결성의 유지와 중복을 최소화하는 데에 적합합니다.

  • ER(entity-relation) 데이터 모델(Entity-relationship (ER) data models): 데이터베이스의 엔티티간의 관계를 나타내기 위해 다이어그램 형식을 사용하는 것을 말합니다. 데이터 아키텍트는 여러 ER 모델링 도구를 사용하여 데이터베이스의 설계에 대한 목표를 전달하기 위한 다양한 시각화 자료를 제작합니다.
  • 객체 지향 데이터 모델(Object-oriented data models): 1990년대 중반 인기를 얻은 객체지향 프로그래밍과 관련이 있으며, 실제 엔티티를 추상화하는 “객체”의 개념을 사용합니다. 객체 지향 데이터 베이스는 테이블을 통합하거나 더 복잡한 데이터 관계를 지원할 수도 있습니다. 멀티미디어와 하이퍼텍스트 데이터 베이스과 같은 분야에서 다양하게 사용됩니다.
  • 차원 데이터 모델(Dimensional data models): 데이터 웨어하우스에서 데이터를 분석할 때에 속도를 최적화하기 위해서 Ralph Kimball이 개발한 모델입니다. 관계형 및 ER 모델은 효율적인 저장을 강조하기 때문에 중복성이 증가될 여지가 존재합니다. 차원 데이터 모델은 이를 해결하기 위한 방법으로 제안되었으며, OLAP 시스템에서 일반적으로 사용됩니다.

가장 흔하게 사용되는 두가지 차원 데이터 모델은 스타 스키마와 스노우볼 스키마입니다. 스타 스키마는 데이터가 측정가능한 항목인 팩트와 참조 정보인 차원으로 구성되어 있으며, 각 팩트가 별 모양의 패턴으로 구성된 관련 차원으로 둘러 쌓여 있습니다. 스노우볼 스키마는 스타 스키마와 유사하지만, 연관된 차원의 추가 레이어를 포함하여 패턴을 더 복잡하게 만드는 형태입니다.


<발췌문헌>