팩트 테이블

Fact table
스타 스키마 예제, 중앙 테이블은 팩트 테이블

데이터 웨어하우징에서 팩트 테이블비즈니스 프로세스의 측정, 메트릭 또는 팩트로 구성된다. 차원 테이블로 둘러싸인 별 스키마나 눈송이 스키마의 중앙에 위치한다. 여러 팩트 테이블이 사용되는 경우, 이러한 테이블은 팩트 별자리 스키마로 배열된다. 팩트 테이블에는 일반적으로 사실을 포함하는 열과 차원 테이블에 대한 외래열의 두 가지 유형이 있다. 팩트 테이블의 기본 키는 대개 모든 외부 키로 구성된 복합 키다. 팩트 표에는 데이터 웨어하우스의 내용이 수록되어 있으며 가법, 비 가법, 반 가법 등의 다양한 유형의 측도를 저장한다.

팩트 표는 치수 속성이 분석되는 독립 변수로 작용하는 (일반적으로) 첨가물 값을 제공한다. 팩트 테이블은 종종 그들의 곡물로 정의된다. 사실 표의 알갱이는 사실들이 정의될 수 있는 가장 원자적인 수준을 나타낸다. 판매 팩트 테이블의 곡물은 "매장별 일일 판매량"으로 명시될 수 있다. 따라서 이 팩트 테이블의 각 레코드는 날짜, 제품 및 저장소에 의해 고유하게 정의된다. 다른 차원은 이 팩트 테이블(위치/지역 등)의 구성원이 될 수 있지만, 이것들은 팩트 레코드의 고유성에 아무런 영향을 주지 않는다. 이러한 "계열사 차원"은 독립적인 사실의 추가 조각을 허용하지만 일반적으로 더 높은 수준의 통합(지역에는 많은 상점이 포함됨)에서 통찰력을 제공한다.

비즈니스 프로세스가 판매인 경우 해당 팩트 테이블에는 일반적으로 다음과 같은 행의 원시 사실집계를 모두 나타내는 열이 포함된다.

  • 12,000달러, "2005년 1월 15일 뉴욕 매장 판매"
  • $34,000, "Los Angeles store for 15-2005"
  • 22,000달러, "2005년 1월 16일 뉴욕 매장 판매"
  • 2만1천 달러, "2005년 1월 로스앤젤레스 스토어의 하루 평균 매출"
  • 65,000달러, "2005년 2월 로스앤젤레스 스토어의 하루 평균 판매"
  • $3만 3천 달러, "2005년 로스앤젤레스 스토어의 하루 평균 매출"

"일평균 판매량"은 팩트 표에 저장되어 있는 측정값이다. 팩트 테이블에는 시계열(예: 날짜) 및 기타 치수(예: 상점 위치, 판매원, 제품)가 저장되어 있는 치수 테이블의 외래 도 포함되어 있다.

팩트와 치수 테이블 사이의 모든 외래 키는 운용 데이터에서 재사용되는 키가 아니라 대리 키여야 한다.

측정 유형

  • 가법 - 모든 차원에 걸쳐 추가할 수 있는 측정값.
  • 비첨가성 - 어떤 차원에서도 추가할 수 없는 측정값.
  • 반첨가성 - 일부 차원에 걸쳐 추가할 수 있는 측정값.

팩트 테이블은 집계된 상세 수준의 사실 또는 사실 중 하나를 포함할 수 있다(집합된 사실을 포함하는 팩트 테이블을 요약 테이블이라고 하는 경우가 많다).

비율과 백분율을 취급할 때는 각별히 주의해야 한다. 하나의 좋은 설계 규칙은[1] 백분율이나 비율을 실제 표에 저장하지 않고 데이터 액세스 도구에서만 계산하는 것이다. 따라서 분자와 분모만 팩트 표에 저장되며, 이 분자는 데이터 액세스 도구의 비율 또는 백분율을 계산하는 데 사용할 수 있다.

현실에서는 대책이나 사실이 없는 팩트 테이블이 가능하다. 이러한 표를 "사실 없는 사실 표" 또는 "접합 표"라고 한다.

사실 없는 팩트 테이블은 다대다수 관계를 모델링하거나 이벤트의 타임스탬프를 캡처하는 데 사용될 수 있다.[1]

팩트 테이블 유형

모든 팩트 테이블의 특성을 나타내는 네 가지 기본적인 측정 이벤트가 있다.[2]

트랜잭션
거래 테이블은 가장 기본적이고 기본적이다. 트랜잭션 팩트 테이블과 관련된 곡물은 일반적으로 "거래에서 한 줄당 한 줄"로 지정된다(예: 영수증의 모든 줄). 일반적으로 트랜잭션 팩트 테이블에는 가장 상세한 수준의 데이터가 저장되어 있으며, 이로 인해 많은 차원이 연관된다.
주기적 스냅샷
이름에서 알 수 있듯이 주기적인 스냅샷은 "순간 사진"을 찍는데, 여기서 순간은 정의된 기간일 수 있다(예: 전월의 세일즈맨의 성과 요약). 주기적인 스냅숏 테이블은 트랜잭션 팩트 테이블에서 선택한 성능 출력을 전달하기 위해 상세 데이터가 필요하기 때문에 트랜잭션 테이블에 의존한다.
스냅샷을 누적하는 중
이러한 유형의 팩트 테이블은 시작과 끝이 잘 정의된 프로세스(예: 주문 처리)의 활동을 보여주는 데 사용된다. 주문이 완전히 처리될 때까지 특정 단계를 통해 이동한다. 주문을 이행하기 위한 단계가 완료되면 팩트 테이블의 관련 행이 업데이트된다. 누적 스냅숏 테이블에는 종종 여러 개의 날짜 열이 있으며, 각 날짜 열은 프로세스의 마일스톤을 나타낸다. 따라서 행 작성 시점에 많은 마일스톤 날짜를 알 수 없으므로, 관련 날짜 차원에 미지의 날짜를 나타내는 항목이 중요하다.
임시 스냅샷
임시 데이터베이스 이론과 모델링 기법을 적용함으로써 임시 스냅샷 팩트 테이블은 실제로 일일 스냅샷을 보유하지 않고도 일일 스냅샷과 동등한 것을 가질 수 있다. 시간 간격 개념을 팩트 테이블로 도입해 공간을 많이 절약할 수 있고 성능을 최적화하는 동시에 최종 사용자가 관심 있는 '순간 사진'과 논리적으로 동등한 것을 가질 수 있도록 한다.

팩트 테이블 설계 단계

  • 분석을 위한 비즈니스 프로세스 식별(예: 판매)
  • '비즈니스 프로세스와 관련된 X의 개수가 몇 개인가?'와 같은 질문을 하여 사실의 척도(판매 달러)를 파악한다. X를 비즈니스 맥락에서 의미가 있는 다양한 옵션으로 대체한다.
  • X가 시험 대상으로 대체되는 'X에 의한 분석'과 같이 비즈니스 맥락 안에서 이해가 되는 질문을 함으로써 사실에 대한 차원(제품 차원, 위치 차원, 시간 차원, 조직 차원)을 파악한다.
  • 각 차원(지역명, 지점명, 사업부명)을 설명하는 열을 나열하십시오.
  • 팩트 테이블(예: 판매 달러)에서 요약의 최저 수준(구문도)을 결정한다.

대안적 접근방식은 킴볼에 기술된 4단계 설계 과정으로 사업 프로세스 선택, 곡물 신고, 치수 파악, 사실 확인 등이 있다.[1]

참조

  1. ^ a b c Kimball & Ross - 데이터 웨어하우스 툴킷, 2차 Ed [Wiley 2002]
  2. ^ Kimball, Ralph (2008). The Data Warehouse Lifecycle Toolkit, 2. edition. Wiley. ISBN 978-0-470-14977-5.
  3. ^ Davide, Mauri. "Temporal Snapshot Fact Table".