데이터웨어 하우스를 개발 중이며 문제 해결 방법을 모릅니다. 현재 스키마는 아래에 정의됩니다데이터웨어 하우징 디자인 질문
DimInstructor < - 학생
내 OLTP 데이터베이스에 강사 변경의 세부 사항은, 내가 원하는 경우 이에 시나리오를 구현하려는에 대한 차원 테이블 - 강사 DimStudent <에 대한 치수 표 내역보고를 위해 DimInstructor 테이블에 새 레코드를 추가합니다.
이제 DimLesson이라는 레슨 차원 테이블을 만들고 싶습니다. DimLesson에서 강사에 대한 참조를 만들고 싶습니다.
DimInstructor 테이블에는 다음이 포함
InstructorDWID < - 신원 필드를 DW InstructorID <에 들어갔을 때 - 지금 OLTP 데이터베이스
에서 온 강사의 ID, 내가 InstructorID 차를 만들 수 없습니다 키는 고유 한 것으로 보장되지 않기 때문에 (강사가 이름을 변경하면 동일한 InstructorID 값으로 DW에 2 개의 레코드가있게됩니다).
제 질문은 DimLesson의 강사를 어떻게 참조 할 수 있습니까? InstructorDWID를 사용합니까? 그렇다면 DimInstructor의 강사에 대해 2 개의 항목이 있어야만 특정 강사가 모든 수업을보고 싶을 때 쿼리가 더 복잡해집니다.
도움이 될 것입니다.
고마워. 다른 차원 테이블의 키를 참조하려면 어떻게해야합니까? 따라서 DimLessons 테이블에는 특정 강사에 대한 모든 강의가 포함되어 있습니다. 레슨 표는 유형 2를 사용하여 동일한 방식으로 기능합니다. – Paul
치수 표는 (일반적으로) 서로를 참조하지 않습니다. 이들은 모두 독립 엔티티이며이 테이블을 참조하는 사실 테이블입니다. 내가 이해 한 바에 따르면, 귀하의 시나리오에는 사실 수준의 클래스 등록이 있습니다. 각 클래스 등록은 사실 테이블의 레코드입니다. Students_dim, instructors_dim, classes_dim에는 해당 속성이 포함됩니다. enrollment_fact에는 각 테이블의 키와 enrolllment_date와 같은 기타 모든 세부 정보가 포함됩니다. –
나는 이해한다고 생각한다. 따라서 강사, 학생, 수업 및 학습 예약을 기반으로 스키마를 만들고 싶다면 각 희미한 테이블 (강사, 학생, 수업)은 서로 독립적이며 사실 테이블을 통해 링크됩니까? 그렇다면 아무도 참석하지 않은 강사가 강의를 표시하는 보고서가 생성되면 어떻게 될까요? 아무도 참석하지 않았으므로 사실 테이블에 레코드가 없으면 강사를 수업에 연결하려면 어떻게해야합니까? – Paul