Compartilhar via


Hierarquias do usuário

Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Hierarquias definidas pelo usuário são hierarquias definidas pelo usuário de atributos que são usados no Microsoft SQL Server SQL Server Analysis Services para organizar os membros de uma dimensão em estruturas hierárquicas e fornecer caminhos de navegação em um cubo. Por exemplo, a tabela a seguir define uma tabela de dimensões para uma dimensão temporal. A tabela de dimensão oferece suporte para três atributos nomeados, Ano, Trimestre e Mês.

Ano Trimestre Mês
1999 1º Trimestre Jan
1999 1º Trimestre Fev
1999 1º Trimestre Mar
1999 2º Trimestre Abr
1999 2º Trimestre Mai
1999 2º Trimestre Jun
1999 3º Trimestre Jul
1999 3º Trimestre Ago
1999 3º Trimestre Set
1999 4º Trimestre Oct
1999 4º Trimestre Nov
1999 4º Trimestre Dez

São usados os atributos Ano, Trimestre e Mês para criar uma hierarquia definida pelo usuário, nomeado Calendário, na dimensão temporal. A relação entre os níveis e membros da dimensão Calendário (uma dimensão comum) é mostrada no diagrama a seguir.

Hierarquia de nível e membro para uma dimensão de tempo

Observação

Toda hierarquia diferente da hierarquia de atributo de dois níveis padrão é chamada de hierarquia definida pelo usuário. Para obter mais informações sobre hierarquias de atributo, consulte Atributos e hierarquias de atributo.

Estruturas de membro

Com exceção das hierarquias pai-filho, as posições de membros dentro da hierarquia são controladas pela ordem dos atributos na definição de hierarquia. Cada atributo na definição de hierarquia constitui um nível na hierarquia. A posição de um membro dentro de um nível é determinada pela ordem do atributo usada para criar o nível. As estruturas de membro de hierarquias definidas pelo usuário podem ter uma de quatro formas básicas, dependendo de como os membros estão relacionados entre si.

Hierarquias equilibradas

Em uma hierarquia equilibrada, todas as ramificações da hierarquia decrescem do mesmo nível e cada pai lógico do membro está no nível imediatamente acima do membro. A hierarquia Categorias de Produto da dimensão Produto na amostra adventure works DW Multidimensional 2012 SQL Server Analysis Services banco de dados é um bom exemplo de uma hierarquia equilibrada. Cada membro no nível Nome do Produto tem um membro pai no nível Subcategoria que, por sua vez, tem um membro pai no nível Categoria. Além disso, toda ramificação na hierarquia tem um membro folha no nível Nome do Produto.

Hierarquias desbalanceadas

Em uma hierarquia desbalanceada, ramificações da hierarquia decresce para níveis diferentes. As hierarquias pai-filho são hierarquias desbalanceadas. Por exemplo, a dimensão Organização na amostra Adventure Works DW Multidimensional 2012 SQL Server Analysis Services banco de dados contém um membro para cada funcionário. O CEO é o membro que ocupa o lugar no topo da hierarquia e os gerentes de divisão e secretária executiva estão imediatamente abaixo do CEO. Os gerentes de divisão têm membros subordinados, mas a secretária executiva não.

Pode ser impossível para usuários finais distinguirem entre hierarquias desbalanceadas e imperfeitas. No entanto, você emprega diferentes técnicas e propriedades em SQL Server Analysis Services para dar suporte a esses dois tipos de hierarquias. Para obter mais informações, consulte Hierarquias desbalanceadas e Atributos em hierarquias Parent-Child.

Hierarquias desbalanceadas

Em uma hierarquia imperfeita, o membro pai lógico de pelo menos um membro não está no nível imediatamente acima do membro. Isso pode fazer com que ramificações da hierarquia decresçam a níveis diferentes. Por exemplo, em uma dimensão Geografia definida com os níveis Continente, PaísRegião e Cidade, nessa ordem o membro Europa aparece no nível mais alto da hierarquia, o membro França aparece no nível intermediária e o membro Paris aparece no nível mais baixo. França é mais específico que a Europa e Paris é mais específico que França. Para essa hierarquia regular, as seguintes alterações são feitas:

  • A Cidade do Vaticano é adicionada para o nível PaísRegião.

  • Os membros são adicionados para o nível Cidade e são associados ao membro Cidade do Vaticano no nível de PaísRegião.

  • Um nível, noemado Província, é adicionado entre os níveis PaísRegião e Cidade.

O nível Província é populado com membros associados a outros membros no nível PaísRegião e os membros no nível Cidade são associados a seus membros correspondentes no nível Província. Entretanto, como o membro Cidade do Vaticano no nível PaísRegião não possui membros associados no nível Província, os membros devem ser associados do nível Cidade diretamente ao membro Cidade do Vaticano no nível PaísRegião. Devido às alterações, a hierarquia da dimensão está agora imperfeita. O pai de Cidade do Vaticano é a região/país Cidade do Vaticano, que não está imediatamente no nível acima do membro Cidade do Vaticano no nível Cidade. Para obter mais informações, consulte Hierarquias desbalanceadas.

Hierarquias pai-filho

As hierarquias pai-filho de dimensões são definidas usando um atributo especial, chamado de atributo pai, para determinar como os membros relacionam-se entre si. Um atributo pai descreve uma relação de autorreferência, ou autojunção, em uma tabela principal da dimensão. As hierarquias filho são construídas a partir de um único atributo pai. Somente um nível é atribuído a uma hierarquia pai-filho, pois os níveis existentes na hierarquia são extraídos das relações pai-filho entre os membros associados ao atributo pai. O esquema de dimensão de uma hierarquia pai-filho depende de uma relação de autorreferência existente na tabela principal da dimensão. Por exemplo, o diagrama a seguir ilustra a dimensão DimOrganization main tabela no banco de dados de exemplo Adventure Works DW Multidimensional 2012SQL Server Analysis Services.

Junção de autorreferência na tabela DimOrganization

Nessa tabela de dimensão, a coluna ParentOrganizationKey possui uma relação de chave estrangeira com a coluna da chave primária OrganizationKey . Em outras palavras, cada registro dessa tabela pode ser relacionado por meio de uma relação pai-filho com outro registro da tabela. Geralmente, esse tipo de autojunção é usado para representar os dados de uma empresa, como a estrutura de gerenciamento dos funcionários de um departamento.

Quando você cria uma hierarquia pai-filho, as colunas representadas por ambos os atributos devem ter o mesmo tipo de dados. Ambos os atributos também devem estar na mesma tabela. Por padrão, todo membro cuja chave pai é igual à sua própria chave de membro, nulo, 0 (zero) ou um valor ausente da coluna para as chaves de membro, é assumido como um membro no nível mais alto (excluindo o nível Todos).

A profundidade de uma hierarquia pai-filho pode variar entre suas ramificações hierárquicas. Em outras palavras, uma hierarquia pai-filho é considerada uma hierarquia desbalanceada.

Diferentemente de hierarquias definidas pelo usuário, na qual o número de níveis na hierarquia determina o número de níveis que podem ser visualizados por usuários finais, uma hierarquia pai-filho é definida com o único nível de um atributo de hierarquia e os valores nesse único nível produzem os vários níveis visualizados por usuários. O número de níveis exibidos depende do conteúdo das colunas da tabela de dimensões que armazenam as chaves de membro e as chaves de pai. O número de níveis pode ser alterado quando os dados nas tabelas de dimensões alteram. Para obter mais informações, consulte Dimensões pai-filho e Atributos em hierarquias Parent-Child.

Consulte Também

Criar hierarquias definidas pelo usuário
Propriedades de hierarquia do usuário
Referência de propriedades de atributo de dimensão