BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING Asterio K. Tanaka http://www.uniriotec.br/~tanaka/tin0036 [email protected] Modelagem Dimensional – Conceitos Básicos Asterio K. Tanaka 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) Asterio K. Tanaka Page 1 Esquema Estrela Uma Umatabela tabelade defatos fatoscercada cercadade detabelas tabelasde dedimensões dimensões Dimensão Dimensão Fato Dimensão Dimensão Asterio K. Tanaka Esquema Estrela - Exemplo Dimensão Produto 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 pk_produto descricao categoria marca Dimensão Loja pk_loja nome_loja endereço cidade estado Asterio K. Tanaka 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 pk_tempo pk_produto pk_loja Medidas Numéricas preco_venda unidades_venda preco_custo Dimensão Produto Tabelas de Dimensão Dimensão Tempo Tabela de Fatos ... Asterio K. Tanaka Consulta SQL sobre um esquema estrela select Qtd Vendida [Loja].[NomeLoja], [Tempo].[DataCompleta], de cada Produto [Produto].[Descricao], por Loja e Sum( [Vendas].[Unidades_Venda]) as Total from por Data [Vendas], [Tempo], [Produto], [Loja] where [Vendas].[CodTempo] = [Tempo].[CodTempo] and [Vendas].[CodProduto] = [Produto].[CodProduto] and [Vendas].[CodLoja] = [Loja].[CodLoja] group by [Loja].[NomeLoja], [Tempo].[DataCompleta], [Produto].[Descricao] order by [Tempo].[DataCompleta], [Loja].[NomeLoja], [Produto].[Descricao] Asterio K. Tanaka 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 Refresher 73 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 Asterio K. Tanaka Tipos de Dimensões mais comuns quando onde Fato quem o quê Asterio K. Tanaka 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 Asterio K. Tanaka Comparação entre a Modelagem ER e a Multidimensional Multidimensional ER 1 diagrama (vários processos de negócio) Vários diagramas dimensionais (1 para cada processo de negócio) Usuários acham difícil entender e navegar pelo modelo Usuários reconhecem “o seu negócio” Muitas junções para responder a consultas Poucas junções Dados atômicos Dados atômicos e agregados Planos de consultas extremanente distintos e específicos para as consultas previstas Planos de consultas “genéricos” (assimetria do modelo) Asterio K. Tanaka 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 Fato Vendas Fatos tipicamente aditivos pk_tempo Mas podem ser pk_produto – – pk_loja preco_venda unidades_venda preco_custo Semi-aditivos Não aditivos Asterio K. Tanaka 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,.. Asterio K. Tanaka 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,.. Asterio K. Tanaka 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! Asterio K. Tanaka 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 Dimensão Loja Hierarquias implícitas pk_loja nome_loja endereço cidade estado Asterio K. Tanaka 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 Asterio K. Tanaka 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 Asterio K. Tanaka 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. Asterio K. Tanaka 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. Asterio K. Tanaka 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. Asterio K. Tanaka 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. Asterio K. Tanaka Exemplo Asterio K. Tanaka 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 Asterio K. Tanaka Esquema Floco de Neve Dimensões normalizadas Fatos como no Esquema estrela Asterio K. Tanaka Page 12 Esquema Flocos de Neve Exemplo Ano Mês Ano Mês Ano Tabela de Fatos De Vendas Tempo pk_tempo data mês pk_tempo Cidade Estado pk_loja Pk_loja Cidade Unidades_vendidas Preco_venda Estado País País pk_produto descProd Categoria pk_produto Loja Cidade Estado Produto Preco_custo País Região Medidas Asterio K. Tanaka Esquema Constelação de Fatos • Múltiplas tabela de fatos com dimensões compartilhadas – Maior complexidade – Integra diferentes processos Asterio K. Tanaka Page 13 … Esquema Constelação de Fatos Time Dimension time_key day_of_week month quarter year holiday_flag Shipping Fact Product Dimension Sales Fact time_key product_key location_key dollar_sold unit_sold dollar_cost 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 Asterio K. Tanaka Modelo Entidades-Relacionamentos (adequado para BDs operacionais) Asterio K. Tanaka Page 14 Modelo Dimensional (Estrela ou Constelação de Fatos) Dimensões Fatos Dimensões desnormalizadas Asterio K. Tanaka 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. Asterio K. Tanaka Page 15 Esquema Estrela - Conceitual Asterio K. Tanaka Esquema Estrela - Lógico Asterio K. Tanaka 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.) Asterio K. Tanaka Escolha do SGBD Asterio K. Tanaka Page 17 Esquema Estrela - Físico (Dimensional) Asterio K. Tanaka Page 18