2012-09-03 3 views
2

나는 모두에게 질문이 있습니다. 처음에는 기존의 동일한 질문을 검색했지만 관련 질문 만 찾았지만 내 질문에는 관련되지 않았습니다. 그래서 여기에 간다 :차원 테이블에 기본 키가 있어야합니까?

내 차원 테이블에 기본 키가 있어야합니까? 데이터웨어 하우스를 설계 한 방식은 정규화 된 데이터 저장소에서 대리 키를 관리했기 때문에이를 묻습니다. 그런 다음 대리 키가 바로 흐린 테이블로 전달됩니다. 소스 시스템의 모든 업데이트는 NDS (유형 1 또는 대체)에서 처음으로 반영됩니다. 기본적으로 나는 정규화 된 데이터 저장소의 역사적 가치를 추적하지 않습니다. 그러나 치수 데이터 저장소의 변경 사항을 추적합니다.

이 때문에 dim 테이블의 서로 게이트 키는 DB에서 관리하지 않습니다. 소스 시스템에서 변경된 사항이있는 경우, 같은 대리 키를 가진 새 행, 선택한 유형 2의 필드/열을 제외한 모든 항목이 변경됩니다.

dim 테이블에는 기본 키가 없으므로 사실 테이블에 FK 제약 조건이 없습니다. 데이터 마트 (PK/FK 제약 조건이없는 사실 및 희미한 테이블)를 사용할 때 이것이 데이터웨어 하우스의 성능에 어떤 영향을 미칩니 까?

http://i69.photobucket.com/albums/i47/boxingpics/dim_customer.jpg

이 괜찮은 : 여기

내 샘플 데이터의 스크린 샷이다?

+0

키없이 팩트 테이블에 차원을 어떻게 결합 하시겠습니까? 실제로 당신이 의미하는 바는 키에 대한 제약이 없다는 것입니다. 제약 조건을 구현하는 것이 좋습니다. 가능한 경우 데이터 무결성을 선언적으로 시행해야합니다. 스타 조인 최적화 및 기타 최적화와 같은 DBMS 기능은 주요 제약 조건의 존재 여부에 달려 있습니다. – sqlvogel

+0

답장을 보내 주셔서 감사합니다. 그러나 위에 강조 표시된 이유로 인해 dim 테이블에 기본 키 제약 조건을 만들 수 없습니다. PK는 고유 한 권리입니까? 그렇다면 희미한 테이블에 테이블을 만들 수 없으므로 사실 테이블에 대한 FK 제약 조건을 사용할 수 없습니다. – erwin

+2

스타 스키마 계층에서 서로 게이트를 생성하는 것이 더 일반적입니다. 많은 ETL 도구는 코딩이 필요없이 대리 키 생성과 천천히 변화하는 차원을 관리합니다. 측정 기준에 기본 키 제약 조건이없는 경우 중복이 생성되지 않아 어떻게보고가 부정확하다는 것을 알 수 있습니까? – Steve

답변

1

예, 차원 테이블에 기본 키가 있어야합니다.

NDS는 서로 다른 소스 시스템에서 엔티티를 관리하기 위해 단순히 대용 키 디자인 패턴을 사용하고 있다고 생각합니다. 이것은 너무 드문 일이 아닙니다 ... here's 토마스 케저 (Thomas Kejser)가 제기 한 몇 가지 문제점을 다루는 좋은 게시물입니다.

결론 NDS가 유형 1 변경 사항 만 추적하고 데이터 마트에서 유형 2 (변경 사항) 변경 사항을 추적해야하는 경우 추가 사로 게이트 키를 추가해야합니다.

관련 문제