Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

데이터 웨어하우스의 구조 이해하기: 물리적 저장소와 논리적 스키마

데이터 웨어하우싱(Data Warehousing)은 다양한 소스에서 수집한 데이터를 통합하고 관리하여 기업에 의미 있는 비즈니스 인사이트를 제공하는 방법론입니다. 데이터 웨어하우스는 경영진의 의사결정을 지원하는 것을 핵심 목표로 설계되며, 크게 두 가지 주요 구성 요소로 이루어져 있습니다.

  • 물리적 저장소(Physical Store) — SQL 쿼리로 조회할 수 있는 Microsoft SQL Server 데이터베이스와, 보고서 작성에 활용되는 OLAP 데이터베이스로 구성됩니다.
  • 논리적 스키마(Logical Schema) — 물리적 저장소의 데이터를 매핑하는 개념적 모델입니다.

물리적 저장소(Physical Store)

데이터 웨어하우스의 물리적 저장소는 SQL 쿼리를 통해 조회 가능한 하나의 데이터베이스를 포함합니다. 여기에는 여러 소스에서 가져온 모든 데이터가 저장됩니다. Commerce Server는 SQL Server 데이터베이스와 OLAP 데이터베이스 양쪽 모두에 대해 데이터 웨어하우스의 물리적 저장소를 자동으로 구축해 줍니다.

데이터 웨어하우스는 Business Desk의 분석(Analysis) 모듈에서 제공되는 Commerce Server 문서에 필요한 데이터를 지원합니다. 따라서 사용자가 물리적 저장소를 직접 수정할 필요는 없습니다. 다만, 예를 들어 서드파티(third-party) 데이터를 포함하도록 데이터 웨어하우스를 확장해야 하는 경우에는 사이트 개발자가 논리적 스키마를 통해 프로그래밍 방식으로 필요한 필드를 추가할 수 있습니다.

논리적 스키마(Logical Schema)

논리적 스키마는 데이터 웨어하우스 내 데이터에 대한 논리적 뷰(view)를 제공하며, 효율적인 임포트(import) 프로세스를 지원합니다. 예를 들어, 사이트 개발자는 논리적 스키마를 활용하여 기본 물리 테이블에 저장된 데이터의 위치를 변경할 수 있습니다.

사이트 개발자가 데이터 웨어하우스에 데이터를 삽입, 업데이트 또는 삭제하는 프로그램을 작성할 때는 논리적 스키마와 연동하게 됩니다. 마찬가지로 Commerce Server도 데이터 웨어하우스의 데이터에 접근할 때 논리적 스키마를 경유합니다. 즉, 논리적 스키마에 대한 정확한 지식이 필요한 것은 사이트 개발자뿐입니다.

논리적 스키마는 다음과 같은 요소들로 구성됩니다.

  • 클래스(Class) — 데이터 멤버들의 논리적인 집합입니다. 예를 들어, RegisteredUser 클래스는 등록된 사용자를 정의하는 데이터 멤버들을 포함합니다.
  • 데이터 멤버(Data Member) — 개별 데이터 요소를 저장하는 구조체입니다. 예를 들어, RegisteredUser 클래스의 E-mail 데이터 멤버는 등록된 사용자의 이메일 주소를 저장합니다.
  • 관계(Relation) — 부모-자식 관계로 연결된 두 클래스 간의 연결입니다. 이 관계는 각 클래스의 인스턴스 수를 정의하며, 클래스 간에 데이터 멤버를 전달하는 메커니즘을 제공합니다.

예를 들어, RegisteredUser는 자식 클래스인 Request의 부모 역할을 합니다. 하나의 등록된 사용자에게는 여러 개의 요청(request)이 존재할 수 있습니다. 이처럼 논리적 스키마는 클래스, 데이터 멤버, 관계 및 다양한 데이터 구조를 활용하여 물리적 저장소의 레코드를 매핑합니다.