이 문서는 Power BI 서비스가 아닌 Power BI Desktop에 적용됩니다. Power BI 서비스를 사용하는 경우 다대다 관계는 현재 같은 방식으로 지원되지 않습니다.
다 대 다 관계는 한 테이블의 값이 다른 테이블의 여러 값과 관련되어 있을 때 발생하며 그 반대의 경우도 마찬가지입니다. 이는 여러 계정이 있는 고객 또는 여러 과정에 등록된 학생과 같은 시나리오에서 일반적입니다.
다대다 관계가 중요한 이유
기존의 일 대 다 관계에서 한 테이블의 각 값은 다른 테이블의 값 하나만 일치합니다. 그러나 실제 데이터는 종종 이 규칙을 깨뜨립니다. Power BI Desktop은 이러한 시나리오를 정확하게 모델링하는 데 도움이 되는 다대다 관계를 지원합니다.
다 대 다 관계를 모델링하는 방법
다대다 관계를 만들려면 일반적으로 브리징 테이블이 필요합니다. 이 표에서는 유효한 키 조합을 모두 나열하여 두 개의 기본 테이블을 연결합니다.
예: 고객 및 계정
다음 두 개의 테이블이 있다고 가정해 보겠습니다.
-
고객 테이블: 고유
CustomerID
값 포함 -
계정 테이블: 고유
AccountID
값 포함
브리징 테이블(AccountCustomer)에는 다음과 같은 행이 포함됩니다.
-
CustomerID = 91
,AccountID = 1
-
CustomerID = 92
,AccountID = 1
-
CustomerID = 92
,AccountID = 2
이 브리징 테이블을 사용하면 Power BI가 겹치는 경우에도 어떤 고객이 어떤 계정에 속하는지 이해할 수 있습니다.
관계 만들기
브리징 테이블을 포함하여 테이블을 설정한 후에는 Power BI가 데이터 연결 방법을 이해할 수 있도록 테이블 간의 관계를 정의해야 합니다. 이 단계는 모델 전체에서 정확한 필터링 및 분석을 사용하도록 설정하는 데 필수적입니다. 이 작업은 필드를 연결하고 필터가 테이블 간에 흐르는 방식을 제어할 수 있는 Power BI Desktop의 관계 관리 보기에서 수행합니다.
- 일대다 관계 만들기:
-
CustomerID
Customer 테이블에서CustomerID
AccountCustomer 테이블로. -
AccountID
Account 테이블에서AccountID
AccountCustomer 테이블로.
-
- 필요한 경우 보고서 보기에서 브리징 테이블을 숨깁니다. 보고가 아닌 모델링에 사용됩니다.
모델 사용
관계를 정의한 후 Power BI는 관계를 사용하여 테이블 간에 데이터를 자동으로 연결하고 필터링합니다. 이를 통해 고객이 계정에 연결되는 방법 또는 트랜잭션이 둘 다와 어떻게 관련되는지와 같은 실제 상호 작용을 반영하는 시각적 개체를 빌드할 수 있습니다.
모델은 백그라운드에서 논리를 처리하므로 복잡한 DAX를 작성하거나 테이블을 수동으로 조인할 필요가 없습니다. 대신 필터 및 슬라이서에 동적으로 응답하는 보고서를 빌드하는 데 집중할 수 있습니다.
관계가 설정되면 다음을 수행합니다.
- 계정별로 고객 및 고객별로 계정을 필터링할 수 있습니다.
- 팩트 테이블(예:
Transactions
)을 추가하여AccountID
에 연결하고 고객, 계정 및 시간 전반의 활동을 분석할 수 있습니다.
초보자를 위한 팁
- 항상 테이블에서 고유한 ID를 사용합니다.
- 브리징 테이블을 사용하여 다 대 다 관계를 해결합니다.
- 순환 관계를 사용하지 마세요. Power BI에서 이러한 관계가 발생하면 경고합니다.
- 이 기능은 Power BI Desktop에서만 사용할 수 있습니다.