내가 SQL 서버 2014 엔터프라이즈의 데이터웨어 하우스를 만들어 내가 하나에 여러 값에 사실을 매핑 사투를 벌인거야 (이 이제까지 그래서 여기 나와 함께 사람을 참아주세요 물어 내 첫 번째 질문입니다) 치수.
특정 서비스 및 고객을 위해 예약 된 서버가있는 데이터 센터를 상상해보십시오. 해당 서버에는 네트워크 어댑터, cpus 또는 운영 체제와 같은 특정 구성 요소가 있습니다. 내 팩트 테이블에서
몇 행은 다음과 같이 보일 것이다 :
ServerID CustomerID OSID ServiceID NetworkGroupID CPUID
1 1 1 1 1 1
2 1 2 1 2 1
3 2 1 2 2 2
서버 1과 2를 고객 1. 서버 1 실행되는 OS 1, 두 서비스 1 제공하는 다른 OS (2)에 속해 서버 1은 이고 네트워크 어댑터의 집합은 '1'로 식별되고 나머지 2 개는 여러 개의 네트워크 어댑터 (가상의 일부 물리적 인 어댑터)를 포함합니다.
내 네트워크 차원의 속성 ID를 가지고 있으며, NetworkAdapterName 난과 같이 여러 번 표시하는 ID가 필요합니다 :
ID NetworkAdapterName
1 IntelAdapter#1
1 IntelAdapter#2
1 VirtualAdapter#1
2 IntelAdapter#1
2 DellAdapter#1
3 VirtualAdapter#1
3 VirtualAdapter#2
을 내가 너무 좋아 다리 역할을 하위 차원의 어떤 종류를해야합니다 생각 :
NetworkGroupID NetworkID
1 1
1 2
1 3
2 1
2 5
3 3
3 4
NetworkID NetworkAdapterName
1 IntelAdapter#1
2 IntelAdapter#2
3 VirtualAdapter#1
4 VirtualAdapter#2
5 DellAdapter#1
하지만 어떻게 NetworkGroupID와 같은 값의 여러 모습이 있기 때문에, 기본 키 또는 브리지 차원 사실 테이블에서 일반적으로 관계를 정의 할 수 있을까요?
(동일 CPU와 OS 발생하지만 난 그게 네트워크 어댑터에 대한 작업을 진행하면 나뿐만 아니라 다른 구성 요소를 위해 그것을 할 수있을 것입니다.)
편집 : 내가 원하는 결국 한 서버에있는 여러 구성 요소를 보여 줄 수있는 SSAS의 큐브를 만듭니다.
[디자인 :
그런 다음
Network
테이블로 가입 당신의 "다리"테이블 (일명 Junction Table)를 사용 팁 # 124 다중 값 차원의 대안] (http://www.kimballgroup.com/2010/06/design-tip-124-alternatives-for-multvalued-dimensions/)도 가치가 있습니다. –이것이 내가 생각한 것입니다.하지만 PK NetworkGroup에서 NetworkGroupNetwork의 복합 PK에 대한 제약 조건을 어떻게 만들 수 있습니까? – Starbuckz
다른 방법입니다. 제약 조건은'NetworkGroupNetwork'의 열 중 하나에서'NetworkGroup'의 PK까지입니다. 팩트 테이블 (고객 ID 열)과 고객 테이블 사이에있는 것과 비슷합니다. –