Modelo de dados do Data Warehouse

Propaganda
Modelo de dados do Data Warehouse
Ricardo Andreatto
O modelo de dados tem um papel fundamental para o desenvolvimento interativo do
data warehouse. Quando os esforços de desenvolvimentos são baseados em um único
modelo de dados sempre que for necessário unir estes esforços os níveis de
sobreposição de trabalho e desenvolvimento desconexo serão muito baixos, pois todos
os componentes do sistema estarão utilizando a mesma estrutura de dados.
Existe um grande número de enfoques sobre modelagem de dados já desenvolvidos por
vários autores, a maioria deles pode ser usada para construir um data warehouse. Dentre
estes modelos apenas o multidimensional será apresentado neste trabalho.
A Questão das Dimensões
Obter respostas a questões típicas de análise dos negócios de uma empresa geralmente
requer a visualização dos dados segundo diferentes perspectivas. Como exemplo,
imagine-se uma agência de automóveis que esteja querendo melhorar o desempenho de
seu negócio. Para isso, necessita examinar os dados sobre as vendas disponíveis na
empresa. Uma avaliação deste tipo requer uma visão histórica do volume de vendas sob
múltiplas perspectivas, como por exemplo: volume de vendas por modelo, volume de
vendas por cor, volume de vendas por fabricante, volume de vendas por período de
tempo. Uma análise do volume de vendas utilizando uma ou mais destas perspectivas,
permitiria responder questões do tipo:
Qual a tendência em termos de volume de vendas para o mês de dezembro para
modelos Volvo Sedan preto?
A capacidade de responder a este tipo de questão em tempo hábil é o que permite aos
gerentes e altos executivos das empresas formular estratégias efetivas, identificar
tendências e melhorar sua habilidade de tomar decisões de negócio. O ambiente
tradicional de bancos de dados relacional certamente pode atender a este tipo de
consulta. No entanto, usuários finais que necessitam de consultas deste tipo via acesso
interativo aos bancos de dados, mostram-se seguidamente frustrados por tempos de
resposta ruins e pela falta de flexibilidade oferecida por ferramentas de consulta
baseadas no SQL. Daí a necessidade de utilizar abordagens específicas para atender a
estas consultas.
Para compreender melhor os conceitos envolvidos, examinemos em maior detalhe o
exemplo acima. Chamaremos de dimensões as diferentes perspectivas envolvidas, no
caso, modelo, loja, fabricante, mês. Estas “dimensões” usualmente correspondem a
campos não numéricos em um banco de dados. Consideremos também um conjunto de
“medidas”, tal como vendas ou despesas com promoção. Estas medidas correspondem
geralmente a campos numéricos em um banco de dados. A seguir, avaliam-se
agregações destas medidas segundo as diversas dimensões e as armazenamos para
acesso futuro. Por exemplo, calcula-se a média de todas as vendas por todos os meses
por loja. A forma como estas agregações são armazenadas pode ser vista em termos de
dimensões e coordenadas, dando origem ao termo multidimensional.
1/10
Intuitivamente, cada eixo no espaço multidimensional é um campo/coluna de uma
tabela relacional e cada ponto um valor correspondente à interseção das colunas. Assim,
o valor para o campo vendas, correspondente a mês igual a maio e loja igual a Iguatemi
é um ponto com coordenada [maio, Iguatemi]. Neste caso, mês e loja são duas
dimensões e vendas é uma medida.
Teoricamente, quaisquer dados podem ser considerados multidimensionais. Entretanto,
o termo normalmente se refere a dados representando objetos ou eventos que podem ser
descritos, e, portanto, classificados por dois ou mais de seus atributos.
Estruturas relacionais podem ser usadas para a representação e o armazenamento de
dados multidimensionais. Neste caso, as abordagens encontradas incluem desde a
adoção de formas específicas de modelagem (os chamados esquemas estrela e floco de
neve) até mecanismos sofisticados de indexação.
Esquemas do tipo Estrela e Floco de Neve
Em um esquema do tipo estrela ou "star" as instâncias são armazenadas em uma tabela
contendo o identificador de instância, valores das dimensões descritivas para cada
instância, e valores dos fatos, ou medidas, para aquela instância (tabela de fatos). Além
disso, pelo menos uma tabela é usada, para cada dimensão, para armazenar dados sobre
a dimensão (tabela de dimensão). No caso mais simples, a tabela de dimensão tem uma
linha para cada valor válido da dimensão. Esses valores correspondem a valores
encontrados na coluna referente àquela dimensão na tabela de fatos.
Este esquema é chamado de estrela, por apresentar a tabela de fatos "dominante" no
centro do esquema e as tabelas de dimensões nas extremidades. A tabela de fatos é
ligada às demais tabelas por múltiplas junções, enquanto as tabelas de dimensões se
ligam apenas à tabela central por uma única junção. A figura abaixo mostra um exemplo
de um modelo tipo estrela.
2/10
Modelo Estrela
A tabela de fatos é onde as medidas numéricas do fato representado estão armazenadas.
Cada uma destas medidas é tomada segundo a interseção de todas as dimensões. No
caso do exemplo, uma consulta típica selecionaria fatos da tabela FATOSVENDAS a
partir de valores fornecidos relativos a cada dimensão.
Outro tipo de estrutura bastante comum é o esquema do tipo floco de neve ou
"snowflake", que consiste em uma extensão do esquema estrela onde cada uma das
"pontas" da estrela passa a ser o centro de outras estrelas. Isto porque cada tabela de
dimensão seria normalizada, "quebrando-se" a tabela original ao longo de hierarquias
existentes em seus atributos. No caso do exemplo, a dimensão produto possui uma
hierarquia definida onde categoria se divide em marca e marca se divide em produtos
(veja figura). Da mesma forma, a dimensão tempo inclui ano que contem mês e mês que
contem dia-do-mes. Cada um destes relacionamentos muitos-para-1 geraria uma nova
tabela em um esquema floco de neve.
Vantagens do modelo estrela
•
O modelo Estrela tem uma arquitetura padrão e previsível. As ferramentas
de consulta e interfaces do usuário podem se valer disso para fazer suas
interfaces mais amigáveis e um processamento mais eficiente;
•
Todas as dimensões do modelo são equivalentes, ou seja, podem ser vistas
como pontos de entrada simétricos para a tabela de fatos. As interfaces do
usuário são simétricas, as estratégias de consulta são simétricas, e o SQL
gerado, baseado no modelo, é simétrico;
•
O modelo dimensional é totalmente flexível para suportar a inclusão de
novos elementos de dados, bem como mudanças que ocorram no projeto.
Essa flexibilidade se expressa de várias formas, dentre as quais temos:
o
Todas as tabelas de fato e dimensões podem ser alteradas
simplesmente acrescentando novas colunas a tabelas;
o
Nenhuma ferramenta de consulta ou relatório precisa ser alterada
de forma a acomodar as mudanças;
o
Todas as aplicações que existiam antes das mudanças continuam
rodando sem problemas;
3/10
•
•
Existe um conjunto de abordagens padrões para tratamento de situações
comuns no mundo dos negócios. Cada uma destas tem um conjunto bem
definido de alternativas que podem então ser especificamente programadas
em geradores de relatórios, ferramentas de consulta e outras interfaces do
usuário. Dentre estas situações temos:
o
Mudanças lentas das dimensões: ocorre quando uma determinada
dimensão evolui de forma lenta e assíncrona;
o
Produtos heterogêneos: quando um negócio, tal como um banco,
precisa controlar diferentes linhas de negócio juntas, dentro de um
conjunto comum de atributos e fatos, mas ao mesmo tempo esta
precisa descrever e medir as linhas individuais de negócio usando
medidas incompatíveis;
Outra vantagem é o fato de um número cada vez maior de utilitários
administrativos e processo de software serem capazes de gerenciar e usar
agregados, que são de suma importância para a boa performance de
respostas em um data warehouse.
Bancos de Dados Multidimensionais
Embora seja viável utilizar estruturas relacionais na representação de dados
multidimensionais, a solução não é ideal. Na figura a seguir, é fácil verificar como uma
matriz bidimensional representa mais claramente os dados armazenados na forma
relacional tradicional. Na matriz, os valores de vendas estão localizados nas interseções
dos eixos X e Y da matriz 3x3. Cada eixo corresponde a uma dimensão, e cada
elemento dentro de uma dimensão corresponde a uma posição. Um array agrupa
informações semelhantes em colunas e linhas.
Além disso, na representação multidimensional, totais consolidados são facilmente
obtidos e armazenados, bastando simplesmente adicionar totais de colunas e fileiras
[CAM99].
4/10
Conversão do modelo E-R para o modelo do data
warehouse
Para tal, W. H. Inmon fornece então alguns passos que podem ser seguidos, não se
esquecendo de que o fundamental é que as decisões de transformação devem ser
tomadas levando-se em consideração os requisitos específicos da empresa. Os passos
básicos são:
Remoção dos dados puramente operacionais
A primeira ação consiste em remover os dados que são usados apenas no ambiente
operacional, como vemos no exemplo da figura abaixo. Neste, atributos tais como
mensagem, descrição e status são retirados, pois é muito pouco provável que estes
sejam utilizados no processo de tomada de decisão.
Neste momento, pode ser que se pense em manter todos os atributos, pois talvez algum
destes seja necessário para alguma decisão específica. Entretanto, deve-se levar em
conta o custo para gerenciar grandes volumes de dados.
Adição de um elemento de tempo na estrutura da chave
A segunda modificação a ser feita no modelo corporativo é adicionar um elemento de
tempo a chave das tabelas, se estas já não o tiverem.
No exemplo da figura a seguir, o campo Data_Snapshot foi adicionado como parte da
chave. Enquanto no modelo corporativo a chave é apenas a identificação do
consumidor, no modelo do data warehouse a data do instantâneo deve fazer parte da
chave, já que com o passar do tempo os dados do consumidor podem se alterar. Esta
técnica é apenas uma forma de tirar instantâneos dos dados.
Outra forma de fazê-lo é adicionar dois campos do tipo data, um marcando o início e
outro o fim de um determinado intervalo de tempo. Esta técnica é melhor por
representar faixas contínuas de tempo ao invés de pontos ou datas específicas.
5/10
Introdução de dados derivados
O próximo passo é adicionar dados derivados ao modelo, como mostrado na figura a
seguir, já que por regra geral estes não existem no modelo corporativo. Devem ser
adicionados os dados derivados que serão usados habitualmente de forma que estes
sejam calculados apenas uma vez. Dessa forma, haverá uma redução no processamento
que deve ser feito para acessar os dados derivados ou sumarizados.
Outra razão para o armazenamento de dados derivados é que uma vez calculados e
armazenados, a integridade destes aumenta, uma vez que se torna impossível a
utilização de diferentes algoritmos para o cálculo destes derivados.
Transformação de Relacionamentos entre dados em artefatos dos dados
Os relacionamentos encontrados nas modelagens de dados clássicas assumem que há
um e somente um valor de negócio no relacionamento. Levando-se em consideração
que nos sistemas operacionais o dado estar integro no momento da transação, esta
abordagem é correta. Entretanto, o data warehouse por sua característica de armazenar
dados históricos, tem muitos valores para um dado relacionamento entre duas tabelas.
Dessa forma a melhor maneira de representar o relacionamento entre duas tabelas no
data warehouse é através da criação de artefatos.
Um artefato de um relacionamento é somente a parte do relacionamento que é óbvia e
tangível no momento do instantâneo. Em outras palavras, quando o instantâneo é feito
os dados associados com o relacionamento que são úteis e óbvios serão colocados no
data warehouse.
O artefato pode incluir chaves estrangeiras e outros dados relevantes, tais como colunas
de tabelas associadas, ou este pode incluir somente os dados relevantes, sem incluir as
6/10
chaves estrangeiras. Como exemplo, consideremos as tabelas e o relacionamento entre
estas na figura a seguir.
Nesta existe um relacionamento entre produto e fornecedor, onde cada produto tem um
fornecedor principal. Se fossemos fazer então um instantâneo deste relacionamento,
teríamos que considerar a informação do fornecedor principal que está relacionado ao
produto. Além disso, outras informações de artefato relacionadas com o fornecedor
deveriam então ser capturadas. A tabela de produtos no modelo do data warehouse
ficaria então como a mostrada na figura abaixo.
Acomodação dos diferentes níveis de granularidade
Dependendo do caso, o nível de granularidade do sistema transacional pode ser o
mesmo do data warehouse ou não. Quando o nível de granularidade se altera, o modelo
do data warehouse deve representar esta mudança, como no exemplo da figura a seguir.
No exemplo, o modelo de dados corporativo mostra dados da atividade de envio de um
determinado produto que são armazenadas toda vez que uma entrega é feita. Quando
este é passado para o data warehouse, duas agregações são feitas, alterando então a
granularidade. Na primeira, o total de entregas é agregado mensalmente, fazendo com
que a granularidade seja o mês, já na segunda, existe uma agregação das entregas feitas
por mês e local de origem, fazendo então com que a granularidade seja o mês associado
ao fornecedor.
7/10
União dos dados comuns de diferentes tabelas
Nesta fase, deve-se considerar a possibilidade de combinar duas ou mais tabelas do
modelo corporativo em uma única tabela do modelo do data warehouse. Para que esta
junção possa ser feita, as seguintes condições devem ser verdadeiras:
•
As tabelas compartilham uma chave comum (ou chave parcial);
•
Os dados das diferentes tabelas geralmente são usados juntos;
•
Padrão de inserção nas tabelas é o mesmo.
Como exemplo, consideremos a figura a seguir, onde temos as tabelas NOTAS e ITENS
DAS NOTAS. Quando estas são colocadas no modelo do data warehouse, estas vão para
uma mesma tabela. Dessa forma, a junção entre estas tabelas passa a não ser mais
necessária quando uma consulta for feita. Neste caso, podemos ver que as três
condições são atendidas: as tabelas compartilham parte da chave, ID da Nota; estas duas
tabelas geralmente são usadas juntas; e o padrão de inserção é o mesmo, ou seja, sempre
que uma nota é inserida seus itens também o são.
8/10
Criação de arrays de dados
Os dados no modelo corporativo geralmente estão normalizados, onde a existência de
grupos repetitivos não é permitida. Entretanto, em algumas situações no ambiente de
data warehouse pode haver grupos repetitivos de dados. As condições para existência
destes são:
•
Quando o número de ocorrências do dado é previsível;
•
Quando a ocorrência do dado é relativamente pequena (em termos de
tamanho físico);
•
Quando as ocorrências do dado geralmente são usadas juntas;
•
Quando o padrão de inserção e remoção dos dados é estável;
A figura abaixo mostra uma tabela no modelo corporativo com as previsões de gasto
mensais. Quando esta é colocada no modelo do data warehouse, os dados são
armazenados de forma que cada mês do ano é uma ocorrência no array.
9/10
Separação dos atributos de dados de acordo com sua estabilidade
A próxima atividade de projeto, referente à passagem do modelo de dados da empresa
para o modelo de dados do data warehouse, consiste em realizar a análise de
"estabilidade". A análise de estabilidade é uma tarefa que consiste em agrupar atributos
de dados segundo sua propensão a alterações. A figura abaixo ilustra a análise de
estabilidade de uma tabela de produtos. Neste exemplo é possível perceber que os dados
que raramente sofrem alterações são agrupados com outros dados que apresentam essa
mesma característica, dados que às vezes são alterados são agrupados com outros dados
que às vezes são alterados e dados que freqüentemente são alterados são agrupados com
outros dados freqüentemente alterados. O resultado final da análise de estabilidade é a
criação de grupos de dados que apresentem características semelhantes.
10/10
Download