설계 및 개발된 차원 모델은 비즈니스 프로세스에서 얻은 가장 상세한 원자 정보를 나타내야 합니다.
DW/BI 시스템은 거의 항상 가능한 한 세밀한 세분성으로 데이터를 표현해야 합니다. 이는 개별 행을 쿼리해야 하기 때문이 아니라 쿼리가 매우 정확한 방식으로 세부 사항을 분할해야 하기 때문입니다.
상세한 세분성 설명은 사실 테이블의 주요 차원을 결정합니다. 그런 다음 추가 차원이 기본 차원에 의해 병합된 값을 자연스럽게 사용하는 한 사실 테이블에 차원을 더 추가할 수 있습니다. 추가 차원이 세분성과 일치하지 않는 다른 문제를 일으킬 경우 차원을 취소하거나 세분성 선언을 다시 고려하십시오.
날짜 차원 테이블의 각 행은 행이 나타내는 특정 날짜에 의해 정의됩니다. 요일 열에는 월요일과 같은 요일 이름이 포함되어 있습니다. 이 열을 사용하여 월요일과 일요일의 업무를 비교하는 보고서를 생성합니다. 날짜 번호는 달력 월 열 매월 1 부터, 달에 따라 28,29,30,31까지 다양합니다. 이 열은 매월 같은 날의 상황을 비교하는 데 사용됩니다. 마찬가지로 연월 수 (1..12) 를 사용할 수 있습니다. 이 모든 정수는 월 또는 년 간 간단한 날짜 계산을 지원합니다. 보고서의 경우 긴 로고와 약어 로고를 추가해야 합니다. 예를 들어 월 이름 속성에 1 month 와 같은 값을 포함하려고 합니다. 또한 연월 (YYYY-MM) 열이 보고서의 헤더로 매우 효과적입니다. 분기 번호 (Q 1...Q4) 및 연도 분기 속성 (예: 20 13-Q 1) 도 필요할 수 있습니다. 회계 기간은 같지만 달력 기간은 다른 열을 포함할 수 있습니다.
나는 그가 이 필드들을 사용자에게 제공하면 사용자가 SQL 로 질의할 수 없다는 것을 이해한다. 내 질문은, 실제로 내부 날짜 차원이 이렇게 크는데, 왜 SQL 날짜 함수에서 직접 질의하지 않는가? 특별한 의미를 가진 필드의 외래 키가 있지 않습니까?
판촉 차원은 소매 모델에서 가장 흥미로운 차원일 수 있습니다. 판촉 차원은 판매 상품의 판촉 조건을 설명합니다. 프로모션 조건에는 임시 가격 인하, 터미널 채널 전시, 신문 광고, 상품권 등이 포함됩니다. 판촉 차원은 일반적으로 제품 판매의 변화를 일으킬 수 있는 요소를 설명하기 때문에 인과 차원으로 간주됩니다. 본사와 상점의 비즈니스 분석가는 판촉이 유효한지 확인할 수 있기를 원합니다. 승진 판단은 다음 요소 중 하나 이상을 기준으로 합니다.
인과 관계의 차원 속성이 차원 테이블에 있어야 합니까?
빈 외래 키 및 빈 속성에 대한 빈 사실 처리 방법
일반적으로 많은 판매 거래에는 판촉이 없는 제품이 포함되어 있습니다. 고객은 단지 판촉 상품을 장바구니에 넣는 것이 아니다. 물론, 당신은 그들의 장바구니에 전가로 구매한 상품을 가득 채워 넣기를 바랍니다. 판촉 차원에는 고유 키가 0 또는-1 인 행이 있어야 합니다. 즉, 사실 테이블의 판촉 키가 비어 있지 않도록 판촉 조건이 없습니다. 사실 테이블에서 외래 키로 선언된 열에 null 값을 배치하면 참조 무결성 요구 사항이 위반됩니다. 또한 참조 무결성 경고, null 값이 포함된 키는 null 값과 연결할 수 없기 때문에 사용자 혼동의 주요 원인입니다.
때때로 우리는 사실 테이블에서 빈 값을 만날 수 있다. 사실 테이블을 비워 두는 방법은 합계 함수 (예: SUM, MIN, MAX, COUNT, AVG) 를 통해 처리할 수 있습니다. 0 값으로 바꾸면 합산 계산에 영향을 줄 수 있습니다.
스탠드 테이블 (눈송이형)
지네상
많은 수의 차원은 일반적으로 일부 차원이 완전히 독립적이지 않으며 하나의 차원으로 병합되어야 함을 나타냅니다. 동일한 레벨의 요소를 사실 테이블에서 다른 차원으로 표현하는 것은 차원 모델링에서 일반적인 오류입니다.