사실 테이블과 차원 테이블의 차이점은 무엇입니까?


113

비즈니스 객체에 대한 책을 읽을 때 용어 테이블과 차원 테이블을 발견했습니다.

차원 테이블과 팩트 테이블의 차이점을 이해하려고합니다.

인터넷에서 기사를 몇 개 읽었지만 명확하게 이해할 수 없었습니다 ..

간단한 예가 내가 더 잘 이해하는 데 도움이 될까요?


개념은 자세하게 설명하기가 다소 길기 때문에 기본 정의를 넘어서 특정 문제가 있으면 알려주십시오.
NoChance

기본적으로 차원 테이블이 사실 테이블이 될 수 있는지 여부를 이해하려고했습니다.

답변:


53

이것은 부분에 대한 대답입니다.

차원 테이블이 사실 테이블이 될 수 있는지 여부를 이해하려고 했습니까?

단답형 (INMO)은 '아니요'로 두 가지 유형의 테이블이 서로 다른 이유로 생성되기 때문입니다. 그러나 데이터베이스 디자인 관점에서 차원 테이블은 항상 차원 테이블 (또는 그 이상)을 상위로 갖는 팩트 테이블의 경우와 같이 상위 테이블을 가질 수 있습니다. 또한 팩트 테이블은 집계 될 수 있지만 차원 테이블은 집계되지 않습니다. 또 다른 이유는 팩트 테이블이 제자리에서 업데이트되지 않아야하는 반면 차원 테이블은 경우에 따라 제자리에서 업데이트 될 수 있기 때문입니다.

자세한 내용은:

팩트 및 차원 테이블은 일반적으로 스타 스키마라고하는 항목에 나타납니다. 스타 스키마의 주요 목적은 복잡한 정규화 된 테이블 집합을 단순화하고 데이터 (다른 시스템의 데이터)를 매우 효율적인 방식으로 쿼리 할 수있는 하나의 데이터베이스 구조로 통합하는 것입니다.

가장 단순한 양식에는 사실 테이블 (예 : StoreSales)과 하나 이상의 차원 테이블이 포함됩니다. 각 차원 항목에는 0,1 개 이상의 팩트 테이블이 연결되어 있습니다 (차원 테이블의 예 : 지역, 품목, 공급자, 고객, 시간 등). 치수에 상위가있는 경우에도 유효합니다.이 경우 모델은 "Snow Flake"유형입니다. 그러나 디자이너는 이러한 종류의 디자인을 피하려고합니다. 더 많은 조인이 발생하여 성능이 저하되기 때문입니다. StoreSales의 예에서 Geography 차원은 열 (GeoID, ContenentName, CountryName, StateProvName, CityName, StartDate, EndDate)으로 구성 될 수 있습니다.

Snow Flakes 모델에서는 지리 정보에 대해 2 개의 정규화 된 테이블, 즉 Content Table, Country Table을 가질 수 있습니다.

Star Schema에서 많은 예제를 찾을 수 있습니다. 또한 스타 스키마 모델 Inmon 대 Kimball 에 대한 대체보기를 보려면 이것을 확인하십시오 . Kimbal에는 좋은 포럼이 있습니다. Kimball Forum .

편집 : 4NF의 예에 대한 의견에 답하려면 :

  • 4NF를 위반하는 사실 테이블의 예 :

판매 사실 (ID, BranchID, SalesPersonID, ItemID, Amount, TimeID)

  • 4NF를 위반하지 않는 팩트 테이블의 예 :

AggregatedSales (BranchID, TotalAmount)

여기서 관계는 4NF에 있습니다.

마지막 예는 드문 경우입니다.


1
일부 팩트 테이블은 트랜잭션 수준 데이터를 반영합니다. 일부는 집계 된 데이터를 반영합니다. 스타 스키마의 팩트 테이블은 3NF 일 필요가 없습니다. 예를 들어 Sales Fact에는 (ID, BranchID, Amount, SalesPerson, Time)과 같은 데이터가 포함될 수 있습니다-SalesPerson 및 Branch 종속성으로 인해 3NF, BCNF 및 4NF를 위반하므로 일반적인 팩트 테이블이 4NF에있는 것은 사실이 아닙니다.
NoChance 2013

258

데이터웨어 하우스 모델링에서 스타 스키마눈송이 스키마팩트차원 테이블 로 구성됩니다 .

사실 테이블 :

  • 여기에는 차원의 모든 기본 키와 판매 수량, 판매량 및 평균 판매와 같은 관련 사실 또는 측정 값 (계산할 수있는 속성)이 포함됩니다.

차원 테이블 :

  • 차원 테이블은 팩트 테이블에 기록 된 모든 측정에 대한 설명 정보를 제공합니다.
  • 차원은 팩트 테이블에 비해 상대적으로 매우 작습니다.
  • 일반적으로 사용되는 차원은 사람, 제품, 장소 및 시간입니다.

여기에 이미지 설명 입력

이미지 소스


52
이 훨씬 더 도움이 허용 대답보다
Booji 보이

15
글쎄, 사진은 천 단어의 가치가 있습니다. 다른 답변을 읽을 때 나는 아무것도 이해하지 못했지만 이것은 나를 구했습니다.
더 원

다이어그램의 팩트 테이블에 비해 설명 데이터가 더 많기 때문에 차원이 상대적으로 커 보입니다. 그리고 그들은 또한 더 많은 숫자
Blue Clouds

1
@Blue Clouds : Fact-Table에는 dim에 대한 가능한 모든 조합에 대해 하나의 항목이 포함되어 있음을 알아야합니다 (최소한 데이터가있는 경우). Location Dimension은 가능한 모든 위치에 대해 하나의 항목을 포함하고 (예 : 50 개 판매 지점) 거의 증가하지 않지만, 새 pos가 추가되면 팩트 테이블은 위치 x 항목 x 지점별로 매일 증가 할 것입니다. 따라서 사실은 매우 빠르게 많은 레코드를 얻을 것입니다.
Daniel

@Premraj 기본 키없이 팩트 테이블이 존재할 수 있습니까?
Kalana

109

이것은 팩트 테이블과 차원 테이블을 구별하는 방법에 대한 매우 간단한 대답 인 것 같습니다!

차원을 사물이나 사물로 생각하면 도움이 될 수 있습니다. 제품과 같은 것은 비즈니스 이벤트에 참여하지 않고도 존재할 수 있습니다. 차원은 당신의 명사입니다. 판매와 같은 비즈니스 이벤트와 독립적으로 존재할 수있는 것입니다. 제품, 직원, 장비는 모두 존재합니다. 차원은 무언가를하거나 무언가를합니다.

직원은 판매하고 고객은 구매합니다. 직원과 고객은 차원의 예입니다.

제품이 판매되고, 제품에 어떤 조치를 취한 치수이기도합니다.

사실은 동사입니다. 팩트 테이블의 항목은 차원 테이블의 항목에 발생하는 불연속 이벤트를 표시합니다. 제품 판매는 팩트 테이블에 기록됩니다. 판매 이벤트는 판매 된 제품, 판매 한 직원, 구매 한 고객으로 표시됩니다. 제품, 직원 및 고객은 모두 이벤트, 판매를 설명하는 차원입니다.

또한 팩트 테이블에는 일반적으로 일종의 정량적 데이터가 있습니다. 판매 수량, 품목 당 가격, 총 가격 등.

출처 : http://arcanecode.com/2007/07/23/dimensions-versus-facts-in-data-warehousing/


5
훌륭한 글쓰기, 개념을 이해하는 데 5 분만 필요했습니다.
user1951 2010

요약하자면 차원은 사실 이벤트의 속성입니다. DAFE. 뭐하는거야, DAFE?
youcantryreachingme

3
예, 그렇게 기억합니다. 그것은 당신이 생각하는 것과 반대입니다. 사실은 단어 자체에 기초하여 결정적이고 차원이 역동적이라고 생각할 것입니다. 그러나 그 반대입니다. 기본 dim 테이블은 상당히 정적 인 조회 목록이고 기본 팩트 테이블은 입력되는 살아있는 데이터입니다.
undrline

1
이것이 제가 가장 좋아하는 설명이었고 제 머릿속을 클릭하게했습니다. 감사합니다!
Arjun Arun

9

이 답변은 DB / DW 용어를 잘 모르는 사람의 관점에서 이해하기 더 쉽다는 것을 알았습니다.

http://databases.about.com/od/datamining/a/Facts-Vs-Dimensions.htm

먼저 이것을 살펴본 다음 더 세분화하기 위해 Emmad Kareem의 답변을 살펴 보는 것이 좋습니다. 도움이 되었기를 바랍니다.


1
완전히 명확한 첫 번째 설명입니다. 간단한 평신도 언어로 된 매우 유용한 예로서 세부 사항을 보여줍니다. 이제 마침내 얻었습니다.
sharon

아주 멋져요 ... 당신 말이 맞다고 생각 해요 ... 먼저 읽어보세요. 모든 답변이 도움이되지만,이 질문에는 개념을 더 '인간적인'용어로 표현하는 방법이 있습니다.
Code Novice

4

매우 간단한 설명 :

사실 테이블 : 조회 ID를 함께 매핑하는 데이터 테이블입니다. 일반적으로 애플리케이션의 중심에있는 기본 테이블 중 하나입니다.

차원 테이블 : 팩트 테이블에서 자주 반복되는 값 (예 : 도시 이름 또는 주)을 저장하는 데 사용되는 조회 테이블입니다.


2

가장 간단한 형태로 차원 테이블은 모든 '항목'목록을 유지하는 '마스터'테이블과 비슷하다고 생각합니다.

사실 테이블은 모든 트랜잭션을 설명하는 트랜잭션 테이블입니다. 또한 영업 사원 별 총 판매량, 지점 별 총 판매량과 같은 집계 된 (그룹화 된) 데이터-이러한 종류의 테이블도 독립적 인 팩트 테이블로 존재할 수 있습니다.


2

차원 테이블 차원 테이블은 팩트 테이블에 저장된 측정 속성을 포함하는 테이블입니다. 이 테이블은 노드에서 순회하는 데 사용할 수있는 계층, 범주 및 논리로 구성됩니다.

사실 테이블 에는 비즈니스 프로세스의 측정이 포함되며 차원 테이블에 대한 외래 키가 포함됩니다.

예 – 비즈니스 프로세스가 벽돌 제조 인 경우

한 사람 / 기계가 생산하는 평균 벽돌 수-비즈니스 프로세스 측정


1
  1. 사실 테이블은 주로 차원 테이블의 기본 키를 참조하는 비즈니스 사실과 외래 키로 구성됩니다. 차원 테이블은 주로 텍스트 필드 인 설명 속성으로 구성됩니다.
  2. 차원 테이블에는 서로 게이트 키, 자연 키 및 속성 세트가 포함됩니다. 반대로 팩트 테이블에는 외래 키, 측정 값 및 퇴화 된 차원이 포함됩니다.
  3. 차원 테이블은 팩트 테이블 측정에 대한 설명 또는 컨텍스트 정보를 제공합니다. 반면에 팩트 테이블은 기업의 측정 값을 제공합니다.
  4. 두 테이블의 크기를 비교할 때 팩트 테이블이 차원 테이블보다 큽니다. 비교 테이블에는 팩트 테이블보다 더 많은 차원이 표시됩니다. 사실 테이블에서는 더 적은 수의 사실이 관찰됩니다.
  5. 먼저 차원 테이블을로드해야합니다. 팩트 테이블을로드하는 동안 차원 테이블을 확인해야합니다. 사실 테이블에 차원 테이블의 기본 키인 측정 값, 사실 및 외래 키가 있기 때문입니다.

더 읽기 : 차원 테이블 및 사실 테이블 | 차이점 | 차원 테이블 대 사실 테이블 http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo


-3

차원 테이블 : 차원 테이블이라고하는 특성화 된 날짜에 대한 정보를 유지할 수 있습니다.

예 : 시간 차원, 제품 차원.

Fact Table : 그것은 아무것도 아니지만 우리는 메트릭 또는 사전 계산 데이터에 대한 정보를 유지할 수 있습니다.

예 : 판매 사실, 주문 사실.

스타 스키마 : 시작 스키마로 차원 테이블 양식이있는 하나의 팩트 테이블 링크.

여기에 이미지 설명 입력


2
(이 게시물은 질문에 대한 양질의 답변 을 제공하지 않는 것 같습니다 . 답변 을 수정하거나 질문에 대한 의견으로 게시하십시오).
sɐunıɔ ןɐ qɐp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.