Banco de Dados - SQL Server
Cubo X Relatório
Quando decidir por utilizar um Cubo ou um Relatório para a análise de dados.
por Patricia SodréOlá Pessoal, antes de começar a desenvolver o assunto, vamos ver alguns conceitos:
Metadados: são normalmente definidos como "dados sobre os dados". Podem ser definidos também como um abstração dos dados, ou dados de mais alto nível que descrevem dados de um nível inferior.
Cubo: Uma estrutura de dados que agrega as medidas pelos níveis e hierarquias de cada uma das dimensões. Os cubos combinam várias dimensões (como hora, geografia e linhas de produtos) com dados resumidos (como os números de vendas ou de registros). Os cubos não são "cubos" no sentido estritamente matemático porque não têm necessariamente lados iguais. No entanto, é uma metáfora apropriada ao conceito.
São dados materializados, em alguns casos e é o meio que nos possibilita análise multidimensionais.
Dimensão Um conjunto de uma ou mais hierarquias de nível organizadas num cubo que os utilizadores compreendem e utilizam como a base da análise de dados. Por exemplo, uma dimensão geográfica poderá incluir níveis para País/Região, Distrito/Província e Cidade.
Hierarquia Uma estrutura em árvore lógica que organiza os membros de uma dimensão, de forma a que cada membro tenha um membro ascendente e zero ou mais membros descendentes.
Nível Numa hierarquia, os dados podem ser organizados em níveis de detalhe (granularidade) superiores e inferiores, como, por exemplo, níveis de Ano, Trimestre, Mês e Dia numa hierarquia de Tempo.
Ouvimos muitos fabricantes de ferramentas e de consultores que o cubo está com um número de linhas que a ferramenta não suporta ou simplesmente que a forma de análise não está correta, mas, o que realmente isso significa?
Vamos exemplificar uma análise:
Sua empresa vende um determinado produto e o Gerente de Vendas quer saber em qual cidade do Brasil a linha de produtos X está vendendo menos em um visão mensal para que ele tome a decisão de descontinuar ou não aquele produto naquela cidade. Portanto temos o seguinte quadro:
Dimensão |
Tempo |
Região |
Produto |
Nível I |
Ano |
País |
Grupo de Produto |
Nível II |
Mês |
Estado |
Linha de Produto |
Nível III |
|
Cidade |
Produto |
Nesse caso a granularidade é: mensal, por cidade e por produto.
Pensando em uma query em um banco de dados, por maior que seja o número de registros eles estarão sumarizados no nível mensal e por produto. As ferramentas OLAP suportam com tranqüilidade esse tipo de análise.
Agora vamos para uma segunda análise:
Seu departamento logístico está com dificuldades de entrega do produto vendido em algumas regiões da cidade e essas dificuldades têm sofrido variações diárias. Portanto temos o seguinte quadro como exemplo:
Dimensão |
Tempo |
Região |
Devolução |
Motivo da Devolução |
Produto |
Nível I |
Ano |
País |
Sim/Não |
Ausente, Falecido, Mudou-se, outros. |
Grupo de Produto |
Nível II |
Mês |
Estado |
Linha de Produto |
||
Nível III |
Dia |
Cidade |
Produto |
||
Nível IV |
|
Bairro |
|
Veja que agora não temos mais uma análise sumarizada e não temos também mais uma análise hierárquica. Nesse caso os dados deixam de ser sintéticos para serem analíticos, ou seja, estão sumarizados em um nível de dia e dependendo do caso, se houver apenas um registro diário, não temos mais sumarização, os dados vêm registro a registro. Resumindo, a granularidade é muito baixa, está no último nível da informação.
Se gerarmos um cubo com essas informações ele vai ter muitos registros, impedindo assim a capacidade de analisarmos os dados em uma visão multidimensional. Para uma visão eficaz vamos precisar aplicar filtros, agrupamentos que são características de um relatório.
Hoje os fabricantes de ferramentas OLAP têm oferecido uma gama de ferramentas poderosas para geração de relatórios a partir de um DataWarehouse. Nosso maior trabalho tem sido o de conscientização do uso apropriado das ferramentas junto ao usuário e espero que esse artigo possa dar alguma ajuda na hora da explicação.
- Representando dados em XML no SQL ServerSQL Server
- Diferenças entre SEQUENCES x IDENTITY no Microsoft SQL Server 2012SQL
- Utilizando FILETABLE no SQL Server 2012SQL Server
- NHibernate com o Delphi Prism: Acessando um Banco de Dados SQL ServerVisual Studio
- Novidades no SQL Server Codinome DenaliSQL Server