사용자 계층
적용 대상: SQL Server Analysis Services Azure Analysis Services 패브릭/Power BI Premium
사용자 정의 계층 구조는 Microsoft SQL Server SQL Server Analysis Services 차원의 멤버를 계층 구조로 구성하고 큐브에서 탐색 경로를 제공하는 데 사용되는 특성의 사용자 정의 계층 구조입니다. 예를 들어 다음 표에서는 시간 차원에 대한 차원 테이블을 정의합니다. 차원 테이블은 Year, Quarter 및 Month라는 3가지 특성을 지원합니다.
Year | Quarter | Month |
---|---|---|
1999 | 1분기 | 1월 |
1999 | 1분기 | 2월 |
1999 | 1분기 | 3월 |
1999 | 2분기 | 4월 |
1999 | 2분기 | 5월 |
1999 | 2분기 | 6월 |
1999 | 3분기 | 7월 |
1999 | 3분기 | 8월 |
1999 | 3분기 | 9월 |
1999 | 4사분기 | Oct |
1999 | 4사분기 | 11월 |
1999 | 4사분기 | Dec |
Year, Quarter 및 Month 특성은 시간 차원에서 Calendar라는 사용자 정의 계층을 구성하는 데 사용됩니다. Calendar 차원(일반 차원)의 수준과 멤버 간의 관계는 아래 다이어그램에 표시되어 있습니다.
계층
참고
기본 두 수준 특성 계층 이외의 모든 계층을 사용자 정의 계층이라고 합니다. 특성 계층 구조에 대한 자세한 내용은 특성 및 특성 계층을 참조하세요.
멤버 구조
부모-자식 계층은 제외하고 계층 구조 내에서 멤버 위치는 계층 정의의 특성 순서로 제어됩니다. 계층 정의에 포함된 각 특성이 계층의 수준이 됩니다. 수준 내에서 멤버의 위치는 수준을 만드는 데 사용된 특성의 순서에 따라 결정됩니다. 사용자 정의 계층의 멤버 구조는 멤버 간의 상호 관련 방식에 따라 다음과 같은 4가지 기본 형태 중 하나를 따릅니다.
균형 계층 구조
균형 계층 구조에서는 계층 구조의 모든 분기가 동일한 수준으로 이어지며 각 멤버의 바로 위에 있는 수준이 해당 멤버의 논리적 부모가 됩니다. Adventure Works DW 다차원 2012 샘플 SQL Server Analysis Services 데이터베이스의 Product 차원의 제품 범주 계층 구조는 균형 잡힌 계층 구조의 좋은 예입니다. Product Name 수준의 각 멤버에게는 Subcategory 수준의 부모 멤버가 있으며 이 부모 멤버에게는 Category 수준의 부모 멤버가 있습니다. 또한 이 계층 구조의 모든 분기에는 Product Name 수준의 리프 멤버가 있습니다.
불균형 계층 구조
불균형 계층 구조에서는 계층 구조의 분기들이 서로 다른 수준으로 이어집니다. 부모-자식 계층 구조는 불균형 계층 구조입니다. 예를 들어 Adventure Works DW 다차원 2012 샘플 SQL Server Analysis Services 데이터베이스의 조직 차원에는 각 직원의 구성원이 포함됩니다. CEO가 계층 구조의 최상위 멤버이며 각 부서장과 비서 실장이 CEO 바로 아래 위치합니다. 부서장에게는 부하 멤버들이 있지만 비서 실장에게는 없습니다.
최종 사용자가 불균형 계층 구조와 비정형 계층 구조를 구분하는 것은 불가능합니다. 그러나 이러한 두 가지 유형의 계층 구조를 지원하기 위해 SQL Server Analysis Services 다양한 기술과 속성을 사용합니다. 자세한 내용은 비정형 계층 구조 및 Parent-Child 계층의 특성을 참조하세요.
비정형 계층 구조
비정형 계층 구조에서는 최소한 한 멤버의 논리적 부모 멤버가 해당 멤버 바로 위 수준에 있지 않습니다. 이로 인해 계층 구조의 분기들이 서로 다른 수준으로 이어질 수 있습니다. 예를 들어 Geography 차원에 Continent, CountryRegion, City의 순서로 수준이 정의된 경우 계층 구조의 최상위 수준에는 Europe 멤버가 나타나고 중간 수준에는 France 멤버가 나타나고 최하위 수준에는 Paris 멤버가 나타납니다. France가 Europe보다 구체적이고 Paris가 France보다 더 구체적입니다. 이 일반 계층 구조는 다음과 같이 변경됩니다.
CountryRegion 수준에 Vatican City 멤버가 추가됩니다.
여러 멤버가 City 수준에 추가되고 CountryRegion 수준의 Vatican City 멤버와 연결됩니다.
Province라는 이름의 수준이 CountryRegion과 City 수준 사이에 추가됩니다.
Province 수준은 CountryRegion 수준의 다른 멤버와 연결된 멤버로 채워지고 City 수준의 멤버는 Province 수준의 해당 멤버와 연결됩니다. 그러나 CountryRegion 수준의 Vatican City 멤버에게는 Province 수준의 연결된 멤버가 없기 때문에 City 수준의 멤버가 CountryRegion 수준의 Vatican City 멤버에 직접 연결되어야 합니다. 이러한 변경으로 인해 이 차원은 비정형 계층 구조가 됩니다. CountryRegion의 Vatican City가 City의 Vatican City 부모가 되는데 이것은 City 수준에서 Vatican City 멤버 바로 위에 있는 수준에 있지 않습니다. 자세한 내용은 비정형 계층 구조를 참조하세요.
부모-자식 계층 구조
차원의 부모-자식 계층 구조는 멤버 상호 간의 관련 방식을 결정하는 부모 특성이라고 하는 특수한 특성을 사용하여 정의합니다. 부모 특성은 차원 주 테이블 내의 자체 참조 관계또는 셀프 조인을 설명합니다. 부모-자식 계층은 단일 부모 특성에서 생성됩니다. 계층에 존재하는 수준은 부모 특성과 관련된 멤버 간 부모-자식 관계에서 가져오므로 부모-자식 계층에는 하나의 수준만 할당됩니다. 부모-자식 계층의 차원 스키마는 차원 주 테이블에 있는 자체 참조 관계에 따라 다릅니다. 예를 들어 다음 다이어그램은 Adventure Works DW 다차원 2012SQL Server Analysis Services 샘플 데이터베이스의 DimOrganization 차원 기본 테이블을 보여 줍니다.
이 차원 테이블에서 ParentOrganizationKey 열은 OrganizationKey 기본 키 열과 외래 키 관계에 있습니다. 즉, 이 테이블의 각 레코드는 부모-자식 관계를 통해 테이블의 다른 레코드와 관련될 수 있습니다. 이러한 종류의 자체 조인은 일반적으로 부서 내 직원 관리 구조와 같은 조직 엔터티 데이터를 나타내는 데 사용됩니다.
부모-자식 계층 구조를 만들 경우 두 특성이 나타내는 열의 데이터 형식은 같아야 합니다. 또한 두 특성이 모두 같은 테이블에 있어야 합니다. 기본적으로 부모 키가 자신의 멤버 키 또는 Null, 0(영), 멤버 키 열에 없는 값과 동일한 모든 멤버는 (All) 수준을 제외한 최상위 수준의 멤버로 가정합니다.
부모-자식 계층 구조의 깊이는 계층 분기에 따라 다를 수 있습니다. 즉, 부모-자식 계층 구조는 불균형 계층 구조로 간주됩니다.
계층 수준의 개수가 최종 사용자에게 표시될 수 있는 수준의 개수를 결정하는 사용자 정의 계층 구조와 달리 부모-자식 계층 구조는 특성 계층의 단일 수준과 사용자에게 표시되는 다중 수준을 생성하는 단일 수준의 값으로 정의됩니다. 표시되는 수준의 개수는 멤버 키와 부모 키가 저장된 차원 테이블 열의 내용에 따라 달라집니다. 차원 테이블의 데이터가 변경되면 수준의 개수가 변경될 수 있습니다. 자세한 내용은 부모-자식 차원 및 Parent-Child 계층의 특성을 참조하세요.