피드로 돌아가기
Dev.toDatabase
원문 읽기
Star Schema 기반의 Fact-Dimension 분리를 통한 데이터 무결성 확보 및 쿼리 최적화
UNDERSTANDING DATA MODELING, SCHEMAS, RELATIONSHIPS, AND JOINS.
AI 요약
Context
비구조화된 데이터 모델링으로 인한 리포트 수치 왜곡 및 필터 작동 불능 문제 발생. 특히 테이블 간 관계 설정 오류로 인한 유지보수 비용 증가와 대규모 데이터셋 처리 시의 성능 저하가 주요 병목 지점으로 작용.
Technical Solution
- Transactional 데이터 중심의 Fact Table과 Context 정보 중심의 Dimension Table로 역할을 엄격히 분리한 설계
- Fact Table 중심에 Dimension Table을 배치하여 쿼리 경로를 단순화한 Star Schema 구조 채택
- PK(Primary Key)와 FK(Foreign Key) 설정을 통한 1:N Relationship 구축으로 데이터 중복 제거 및 무결성 확보
- Dimension Table을 하위 테이블로 추가 분리하는 Snowflake Schema를 통해 정규화 수준을 높이되, 조인 복잡도 증가를 고려한 선택적 적용
- Filter Flow를 Dimension에서 Fact 방향으로 제한하는 Single Filter 설정을 통한 Circular Path 방지 및 연산 효율 증대
- Bidirectional Filter 사용을 지양하여 모델 복잡도 증가와 리포트 렌더링 속도 저하를 원천 차단
실천 포인트
- 데이터 모델 설계 시 '무슨 일이 일어났는가(Fact)'와 '그 주변 맥락은 무엇인가(Dimension)'를 명확히 구분했는지 확인 - 성능 최적화를 위해 Snowflake Schema보다 Star Schema를 우선적으로 검토하고 적용 - 자동 생성된 Relationship에 의존하지 않고 PK-FK 연결의 정확성을 수동으로 검증 - 양방향 필터(Bidirectional Filter) 도입 전, 필터 전파 경로에 따른 성능 저하 및 순환 참조 발생 가능성을 테스트