BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Modelagem Dimensional Conceitos Básicos Modelagem Multidimensional: Esquema Estrela Proposto por Ralph Kimball Dominante no projeto de DW Características: Distingue melhor as dimensões dos fatos medidos Simplifica a visualização dimensional Na verdade é uma mistura de modelagem conceitual com modelagem lógica, pois já é bastante voltada para a abordagem relacional (a literatura fala sempre em tabelas) Page 1
Esquema Estrela Uma tabela de de fatos cercada de de tabelas de de dimensões Dimensão Fato Dimensão Dimensão Dimensão Esquema Estrela - Exemplo Dimensão Tempo pk_tempo data mes quadrimestre ano Flag_feriado Fato Vendas pk_tempo pk_produto pk_loja preco_venda unidades_venda preco_custo Dimensão Produto pk_produto descricao categoria marca Dimensão Loja pk_loja nome_loja endereço cidade estado Page 2
Exemplo Consultas Vendas por categoria de produto sobre os últimos seis meses Vendas por marca entre 1990 e 1995 Dimensão Loja Colunas da chave composta ligando a tabela de fatos às tabelas de dimensão Medidas Numéricas Dimensão Produto pk_tempo pk_produto pk_loja preco_venda unidades_venda preco_custo Tabelas de Dimensão Dimensão Tempo... Tabela de Fatos Consulta SQL sobre um esquema estrela select [Loja].[NomeLoja], [Tempo].[DataCompleta], [Produto].[Descricao], Sum( [Vendas].[Unidades_Venda]) as Total from [Vendas], [Tempo], [Produto], [Loja] where [Vendas].[CodTempo] = [Tempo].[CodTempo] and [Vendas].[CodProduto] = [Produto].[CodProduto] and Qtd Vendida de cada Produto por Loja e por Data [Vendas].[CodLoja] = [Loja].[CodLoja] group by [Loja].[NomeLoja], [Tempo].[DataCompleta], [Produto].[Descricao] order by [Tempo].[DataCompleta], [Loja].[NomeLoja], [Produto].[Descricao] Page 3
Resultados NomeLoja DataCompleta Descricao Total ================================================ East Loja Oct 1, 1994 Athletic Drink 57 East Loja Oct 1, 1994 Beef Stew 128 East Loja Oct 1, 1994 Buffalo Jerky 202 East Loja Oct 1, 1994 Chicken Dinner 161 East Loja Oct 1, 1994 Clear Refresher73 East Loja Oct 1, 1994 Dried Grits 102 East Loja Oct 1, 1994 Dry Tissues 16 East Loja Oct 1, 1994 Extra Nougat 442 East Loja Oct 1, 1994 Fizzy Classic 46 East Loja Oct 1, 1994 Fizzy Light 65 East Loja Oct 1, 1994 Lasagna 162 East Loja Oct 1, 1994 Lots of Nuts 248 East Loja Oct 1, 1994 Onion Slices 120 Tipos de Dimensões mais comuns onde quando Fato quem o quê Page 4
Modelagem Dimensional Esquema Estrela é assimétrico Em relação aos esquemas ERs Tabela de Fatos Tabela dominante» usualmente com grande volume de dados Tabelas de Dimensões Tabelas que qualificam os fatos Uma junção liga cada tabela de dimensão à tabela de fatos volume bem menor que as tabelas de fatos Comparação entre a Modelagem ER e a Multidimensional ER 1 diagrama (vários processos de negócio) Multidimensional Vários diagramas dimensionais (1 para cada processo de negócio) Usuários acham difícil entender e navegar pelo modelo Muitas junções para responder a consultas Dados atômicos Planos de consultas extremanente distintos e específicos para as consultas previstas Usuários reconhecem o seu negócio Poucas junções Dados atômicos e agregados Planos de consultas genéricos (assimetria do modelo) Page 5
Tabela de Fatos Chave composta pelas chaves das dimensões Dimensão tempo é sempre parte da chave (DW é histórico) Medida do fato usualmente numérica Fatos tipicamente aditivos Mas podem ser Semi-aditivos Não aditivos Fato Vendas pk_tempo pk_produto pk_loja preco_venda unidades_venda preco_custo Fatos Aditivos São númericos e podem ser somados em relação às dimensões existentes Sempre que, em uma modelagem, um dado númerico for apresentado, então este será um bom indício de um atributo em fatos. Em geral, fatos aditivos representam medidas de atividade do negócio. Valor Venda, Quantidade de produtos vendidos,.. Page 6
Fatos Semi-Aditivos Também são númericos Não podem ser somados em relação a todas as dimensões existentes semântica não permite. Em geral, fatos semi-aditivos representam leituras medidas de intensidade do negócio. São snapshots destas leituras que entram no DW. O valor atual já leva em consideração valores passados. Nível de Estoque, Fechamento diário/mensal de conta,.. Fatos Não-Aditivos Algumas observações não númericas podem eventualmente ser fatos. Em um DW para registrar acidentes de transito: Atributos:» carro1, carro2, mot.1, mot2., descrição do acidente, descrição do tempo (chuva,...) e descrição da pista. Todas as informações da situação acima são fatos! Page 7
Tabelas de Dimensões Objetivo: Servir como cabeçalho das linhas e colunas das análises e filtro nas consultas/relatórios Características: Chaves simples (em geral, artificiais: surrogate keys ) Descrição única para cada registro Usualmente não dependente do tempo Desnormalizada Hierarquias implícitas Dimensão Loja pk_loja nome_loja endereço cidade estado Hierarquias de Dimensões Uma dimensão pode ter múltiplas hierarquias além de outros atributos descritivos Exemplo para uma empresa atacadista: Geografia física:» cep, cidade, estado, região, país Geografia de vendas:» território, região, zona Geografia de Distribuição:» AD primária, região Page 8
Passos da Modelagem Dimensional Definição da área do negócio Definir processos dentro da área de negócio Definição a granularidade desejada para os dados de cada processo Considerar volumes e dificuldades de se obter o nível desejado Definição dos atributos e hierarquia das dimensões Considerar hierarquias múltiplas Definição das métricas das tabelas de Fatos Observar valores aditivos, semi-aditivos e não aditivos Dicas importantes na Modelagem Dimensional Faça ou use um modelo de dados convencional E-R como ponto de partida para o trabalho de modelagem dimensional. Observe os relacionamentos 1:N existentes. Eles podem sugerir dimensões Observe as entidades fortes. Elas também podem sugerir dimensões. Observe as entidades que expressam documentos como Nota Fiscal, Pedido, Ordem de Compra, etc. Elas podem sugerir fatos. Observe os relacionamentos M:N. Na sua interseção, pode haver valores numéricos. Isto sugere fatos. Observe os atributos que estarão nas tabelas de dimensões. Analise a relação de hierarquias entre esses atributos de dimensão. Atente para os relacionamentos M:N entre eles. Isto pode definir granularidade. Page 9
Dicas importantes na Modelagem Dimensional As tabelas FATOS, tipicamente, armazenam dados, valores atômicos ou agregados obtidos a partir destes. As métricas das tabelas FATOS são normalmente aditivas em certas dimensões. As tabelas FATOS possuem chaves que as conectam às diferentes DIMENSÕES que as circundam. Essa conexão se dá num nível de granularidade compatível entre elas (FATO e DIMENSÃO). As tabelas DIMENSÃO armazenam os valores de filtro, check, acesso e textos que caracterizam os dados trabalhados. As tabelas FATOS são normalmente normalizadas. As tabelas DIMENSÕES são normalmente desnormalizadas (Esquema Estrela). A granularidade combinada da tabela FATO com a de suas tabelas DIMENSÕES determina o número de linhas das tabelas do projeto. Exemplo Processos de uma empresa revendedora de produtos: planos de estoque, ordens de compra, inventário, pedidos de clientes, expedição de pedidos, créditos, etc. Processos identificados cria-se uma ou mais tabelas de fatos a partir de cada um deles. Neste ponto é necessário decidir o fato individual naquela tabela granularidade da tabela» uma linha sobre um produto, um perfil de venda diário do produto, ou um perfil de venda mensal do produto Por exemplo: tabela de fatos vendas acumuladas do produto. Page 10
Exemplo Definir dimensões e suas respectivas granularidades. dimensões tempo, produto e vendedor são criadas. outras dimensões descritivas como:» local-de-expedição, local-de-recebimento, modo-deenvio. Cada dimensão pode ser vista como um ponto de entrada para a tabela de fatos.» A escolha das dimensões é o ponto chave no projeto. O passo seguinte consiste em detalhar: todas as medidas que constarão da tabela de fatos; e completar as tabelas de dimensões. Exemplo Page 11
Variações do Esquema Estrela Esquema floco de neve O esquema floco de neve é uma variação do esquema estrela no qual todas as tabelas dimensão são normalizadas na terceira forma normal (3FN) Reduzem a redundância mas aumentam a complexidade do esquema e consequentemente a compreensão por parte dos usuários Dificultam as implementações de ferramentas de visualização dos dados Esquema Floco de Neve Dimensões normalizadas Fatos como no Esquema estrela Page 12
Esquema Flocos de Neve - Exemplo Ano Ano Mês Mês Ano Tempo pk_tempo data mês Tabela de Fatos De Vendas pk_tempo pk_produto Produto pk_produto descprod Categoria Loja pk_loja País País Região Estado Estado País Cidade Cidade Estado Medidas Pk_loja Cidade Unidades_vendidas Preco_venda Preco_custo Esquema Constelação de Fatos Múltiplas tabela de fatos com dimensões compartilhadas Maior complexidade Integra diferentes processos Page 13
Esquema Constelação de Fatos Time Dimension Shipping Fact time_key day_of_week month quarter year holiday_flag Sales Fact time_key product_key location_key dollar_sold unit_sold dollar_cost Product Dimension product_key description brand category Location Dimension loc_key loc_name address city state time_key product_key from_location_key to_location_key shipper_key dollar_cost units_shipped Shipper Dimension shipper_key shipper_name location_key Modelo Entidades-Relacionamentos (adequado para BDs operacionais) Page 14
Modelo Dimensional (Estrela ou Constelação de Fatos) Dimensões Fatos Dimensões desnormalizadas Tabelas de Dimensão Segundo KIMBALL, as tabelas de dimensão não devem ser normalizadas pois: 1) não há atualização freqüente nas bases; 2) o espaço em disco economizado é relativamente pequeno e; 3) esse ganho de espaço não justifica a perda de performance na realização de consultas por conta dos joins necessários em caso de normalização. Page 15
Esquema Estrela - Conceitual Esquema Estrela - Lógico Page 16
Implementação do Modelo Dimensional SGBDs multidimensionais implementam fisicamente o modelo dimensional problemas de desempenho, segurança e confiabilidade Esparsidade: células onde não há dados SGBDs relacionais Maior aceitação Exige mapeamento (vide artigo de Colonese et al.) Escolha do SGBD Page 17
Esquema Estrela - Físico (Dimensional) Page 18