alt=capaSQL12.JPG hspace=0 src="/loja/img/Capa_SQL42_G.gif" border=0>

Clique aqui para ler todos os artigos desta edição

Microsoft Analysis Services 2000 na prática

Parte 4 - Trabalhando com Dimensões

 

Um dos segredos do sucesso das ferramentas OLAP é a facilidade que os usuários têm de realizar as suas análises usando as classificações disponíveis dentro das dimensões. Por esta razão, as dimensões merecem atenção especial quando modelamos uma base multidimensional.

O Microsoft Analysis Services 2000 (ou simplesmente MSAS) nos oferece recursos avançados de customização dos elementos, níveis e hierarquias disponíveis nas dimensões, o que agrega ainda mais valor às informações existentes nos cubos.

Neste artigo, exploraremos algumas destas funcionalidades utilizando exemplos práticos. Para isso, usaremos o cubo DEMANDA, que estudamos ao longo desta série de artigos.

Conhecendo o Dimension Editor

Iniciamos o nosso trabalho conhecendo um pouco mais sobre o Dimension Editor. Com ele, podemos criar novas dimensões, criar ou excluir níveis hierárquicos, redefinir a descrição de cada nível ou elemento, definir se o elemento é visível ou não, se a sua descrição deve ser única dentro da dimensão, tipo de dados da chave utilizada, etc.

Vamos a um exemplo, usando a dimensão DATA. Como vimos no primeiro artigo desta série, a dimensão DATA foi criada automaticamente pelo MSAS, por ser uma dimensão temporal. Em razão disso, temos todos os objetos e elementos com descrições em inglês.

Nosso objetivo aqui é reconstruir esta dimensão. Mudaremos nomes de níveis, alteraremos a formatação das descrições de elementos e, ao final, vamos incluir um novo nível hierárquico na dimensão.

Para começar, abra o Analysis Manager, expanda a árvore do Database SQLMAGAZINE, clique em Shared Dimensions e depois dê um clique com o botão direito sobre a dimensão DATA para abrir o Dimension Editor.

Ao abrir a dimensão DATA, clique na guia Advanced Properties para ver algumas propriedades que podem ser editadas (Figura 1). Para esconder ou exibir as propriedades da dimensão, clique sobre o botão Properties.

 

Figura 1. Editando a dimensão DATA.

 

Observe que as propriedades exibidas são sensíveis ao contexto. Veja na Figura 1 que as propriedades que vemos estão associadas à dimensão DATA (que é o item selecionado na janela superior esquerda).

Editando os nomes dos níveis da dimensão

A primeira edição que faremos é alterar o nome de cada um dos níveis hierárquicos da dimensão DATA. Neste caso, vamos clicar sobre o nome de cada nível, clicar na aba Basic Properties e digitar o nome desejado na propriedade Name. Vamos mudar o nome de todos os níveis para português (“Ano”, “Trimestre”, “Mes”). Uma recomendação aqui é evitar acentuação dos nomes, como faríamos numa base relacional normal. Apesar de não haver uma restrição formal em relação à acentuação de nomes, esta medida evita dores de cabeça na hora da codificação de relatórios, por exemplo. A Figura 2 mostra o resultado destas mudanças.

 

Figura 2. Alterando nomes dos níveis da dimensão DATA.

Editando as descrições dos elementos

A primeira delas é a alteração da descrição do elemento consolidado da dimensão DATA. Ao invés de “All Data”, mudaremos para “TOTAL”. Para isso, vamos marcar novamente a dimensão DATA e digitar o novo texto na propriedade All Caption da aba Advanced Properties. Para conferirmos os resultados desta mudança, vamos clicar na aba Data, visível no canto inferior direito da janela do Dimension Editor. Em seguida, vamos expandir a árvore do elemento 2006, de acordo com a Figura 4.

Como vemos na Figura 4, as descrições dos elementos dos níveis TRIMESTRE e MES continuam em inglês.

Outro ponto interessante a se observar é que estas descrições pressupõem que iremos montar relatórios que exibam todos os níveis hierárquicos da dimensão DATA. Caso o relatório exiba apenas os meses, por exemplo, nunca saberemos qual ano estamos analisando, pois não temos esta informação na descrição dos elementos. E existem meios para criarmos relatórios que exibam apenas um nível hierárquico da dimensão, de tal modo que tenhamos um relatório com um visual mais sofisticado.

Mais um ponto a se observar é sobre o uso do nome dos meses ao invés de números. Isso pode ser um problema quando o usuário ordenar as informações do relatório com base na descrição dos elementos.

Para corrigirmos estes potenciais problemas, vamos alterar as descrições de trimestres e meses para que incluam o ano, utilizando uma sigla correspondente ao nível hierárquico e o número do mês. Assim, o segundo trimestre de 2004 será exibido como “2004Trim2”. E o mês Setembro de 2005 será exibido como “2005Mes09”.

No MSAS, estas alterações devem ser feitas clicando-se sobre o nível hierárquico desejado e digitando a nova fórmula na propriedade Member Name Column, visível na aba Basic Properties. A propriedade Member Key Column permanece inalterada, assim como todas as demais propriedades. A Listagem 1 mostra as fórmulas usadas para cada nível hierárquico.

 

à Nível ANO (sem alteração)

       DatePart(year,"dbo"."tblDemanda"."Data")

 

à Nível TRIMESTRE

       convert(CHAR, DatePart(year,"dbo"."tblDemanda"."Data")) + ‘Trim’

       + convert(CHAR,  DatePart(quarter,"dbo"."tblDemanda"."Data"))

 

à Nível MES

         convert(CHAR, DatePart(year,"dbo"."tblDemanda"."Data")) + ‘Mes’

+ right(‘0’ +convert(VARCHAR, Datepart(month,"dbo"."tblDemanda"."Data")),2)

 

Listagem 1. Definição da propriedade Member Name Column na dimensão DATA.

 

Analisando em maiores detalhes o procedimento que acabamos de executar com a dimensão DATA, observamos que criamos definições de níveis hierárquicos que não existem fisicamente na fonte de dados. No caso, os níveis MES, TRIMESTRE e ANO não existem na base de dados que alimenta este cubo. Originalmente existe apenas um campo Data que representa o dia em que houve uma transação. Estes níveis hierárquicos são apenas regras de cálculo que ampliam o poder de análise do nosso cubo.

Esta propriedade de criar regras de cálculo dentro de dimensões tem um potencial enorme e podemos adaptá-la para qualquer dimensão existente no cubo.

Criando novos níveis dentro da dimensão

Antes de criarmos novos níveis hierárquicos, temos que ter em mente o que caracteriza uma hierarquia no MSAS.

Podemos construir uma hierarquia quando temos atributos que, quando analisados aos pares, apresentam sempre um relacionamento de um elemento para muitos. No jargão OLAP, dizemos que há uma relação de “pai” e “filho” entre estes dois atributos. Exemplo: Anos e Trimestres, Trimestres e Meses, etc. Neste caso, estes atributos representam os níveis da hierarquia.

No nosso exemplo, incluiremos o nível Dia. Para isso, clicaremos sobre qualquer objeto da dimensão usando o botão direito do mouse e escolheremos a opção New Level. Uma nova janela surgirá para escolhermos qual será o campo da tabela de origem que usaremos como chave para este nível. Marcaremos o campo Data, como vemos na Figura 3.

 

Figura 3. Inclusão do nível hierárquico Dia na dimensão DATA.

 

Neste momento, o MSAS faz uma validação do campo selecionado para certificar que ele respeita a hierarquia que já existe na dimensão DATA. Automaticamente, o novo nível será inserido abaixo do nível MES. Resta apenas formatar a descrição do campo como desejado. No caso, decidimos exibir as datas no formato YYYY-MM-DD. A Listagem 2 apresenta a função para formatação da descrição do nível Dia e a Figura 4 mostra o resultado final deste procedimento.

 

convert(Varchar(10) ,"dbo"."tblDemanda"."Data", 121)

Listagem 2. Definição da propriedade Member Name Column do nível hierárquico DIA.

 

Figura 4. Resultado Final da Dimensão DATA.

Criando dimensões virtuais

Muitas vezes um atributo pode receber classificações que são mutuamente independentes. Usando o exemplo da dimensão PRODUTO, vemos que os produtos podem ser classificados em famílias e categorias, que caracterizam uma relação de hierarquia entre si. Exemplo: o produto “Amoxilina 125 mg suspensão” está associado à família “AMOXILINA”, que por sua vez se associa à categoria de “Antibióticos”.

Ou então podemos classificar produtos conforme a sua origem, ou seja, se são de fabricação nacional ou importados. Observe que esta classificação independe das outras que definimos. Uma das maneiras que o MSAS nos oferece para incluir esta informação no nosso cubo é através da definição de uma dimensão virtual. ...

Quer ler esse conteúdo completo? Tenha acesso completo