A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SCC Bancos de Dados e Suas Aplicações

Apresentações semelhantes


Apresentação em tema: "SCC Bancos de Dados e Suas Aplicações"— Transcrição da apresentação:

1 SCC0141 - Bancos de Dados e Suas Aplicações
Data Warehouse e OLAP Prof. Jose Fernando Rodrigues Junior

2 Introdução

3 No início, uma única fonte de dados

4 No início, uma única fonte de dados
Exemplo: primeira loja do grupo Casas Bahia.

5 Exemplo: primeira cidade ocupada
Mais tarde Exemplo: primeira cidade ocupada pelo grupo Casas Bahia.

6 E assim sucessivamente
Exemplo: primeiros estados ocupados pelo grupo Casas Bahia.

7 Exemplo: Brasil (primeiro país?) ocupado pelo grupo Casas Bahia.
Finalmente Exemplo: Brasil (primeiro país?) ocupado pelo grupo Casas Bahia.

8 O que está acontecendo nas minhas lojas?
Até que… O que está acontecendo nas minhas lojas? O que é vendido mais? Quando? Por qual loja? Qual a melhor loja? Quanto estou faturando? Qual seria uma boa oferta? As vendas cresceram ou subiram? Quais regiões vendem mais? ...

9 O que está acontecendo nas minhas lojas?
Até que… O que está acontecendo nas minhas lojas? O que é vendido mais? Quando? Por qual loja? Qual a melhor loja? Quanto estou faturando? Qual seria uma boa oferta? As vendas cresceram ou subiram? Quais regiões vendem mais? ... Soluções: 1) Ir até cada uma das lojas e perguntar; Pouco viável.

10 O que está acontecendo nas minhas lojas?
Até que… O que está acontecendo nas minhas lojas? O que é vendido mais? Quando? Por qual loja? Qual a melhor loja? Quanto estou faturando? Qual seria uma boa oferta? As vendas cresceram ou subiram? Quais regiões vendem mais? ... Soluções: 2) Usar os dados das lojas para analisar o que está acontecendo no meu negócio. Boa idéia!!!

11 O que está acontecendo nas minhas lojas?
Até que… O que está acontecendo nas minhas lojas? O que é vendido mais? Quando? Por qual loja? Qual a melhor loja? Quanto estou faturando? Qual seria uma boa oferta? As vendas cresceram ou subiram? Quais regiões vendem mais? ... Soluções: 2) Usar os dados das lojas para analisar o que está acontecendo no meu negócio. Boa idéia!!! Mas...

12 Impecilhos ao uso dos dados…
Diversos sistemas de bancos de dados em uso nas lojas; depende do gerente que o implementou: PostgreSQL, Oracle, DB2, SQLServer, ... Cada loja, um controle transacional diferente, de acordo com suas necessidades regionais; Esquemas diferentes, tipos de dados diferentes, distribuição geográfica, falta de interconexão.

13 Impecilhos ao uso dos dados…
Diversos sistemas de bancos de dados em uso nas lojas; depende do gerente que o implementou: PostgreSQL, Oracle, DB2, SQLServer, ... Cada loja, um controle transacional diferente, de acordo com suas necessidades regionais; Esquemas diferentes, tipos de dados diferentes, distribuição geográfica, falta de interconexão. Total falta de conformidade!!! E muitos, muitos dados!!! O que fazer?

14 O que é necessário? 1) Recolher (extrair) os dados não importando qual o tipo do sistema de dados; 2) Padronizar (transformar) os dados, para terem um significado comum mesmo que, originalmente, codificados de maneira diferente; resolução de dados ausentes e espúrios; 3) Unir (carregar) os resultados das duas operações em um único sistema capaz para responder às minhas perguntas.

15 O que é necessário? 1) Recolher (extrair) os dados não importando qual o tipo do sistema de dados; 2) Padronizar (transformar) os dados, para terem um significado comum mesmo que, originalmente, codificados de maneira diferente; resolução de dados ausentes e espúrios; 3) Unir (carregar) os resultados das duas operações em um único sistema capaz para responder às minhas perguntas. Complicado. Como fazer então?

16 Mas há uma solução

17 Extrair, transformar, carregar dados
Mas há uma solução Loja 1 Loja 2 Loja 3 Loja n-2 Loja n-1 Loja n Oracle Modelagem x DB2 Modelagem y SQLServer Modelagem z Oracle Modelagem u DB2 Modelagem v SQLServer Modelagem w ... Extrair, transformar, carregar dados Data warehouse

18 ETL – Extract Transform Load
O processo descrito de se extrair (Extract), transformar (Transform) e carregar (Load) os dados a partir das diversas fontes de dados é denominado ETL ETL – uma das camadas principais da arquitetura de um data warehouse  Consolidação de dados

19 ETL – Extract Transform Load
O processo descrito de se extrair (Extract), transformar (Transform) e carregar (Load) os dados a partir das diversas fontes de dados é denominado ETL ETL – uma das camadas principais da arquitetura de um data warehouse  Consolidação de dados Extrair, transformar, carregar dados

20 ETL – Extract Transform Load
Extração/transformação (Extract/Transform) de dados extração de múltiplas fontes consolidação e integração de dados de múltiplas fontes limpeza e validação conversão dos dados para o modelo do DW

21 ETL – Extract Transform Load
Carregamento (Load) de dados armazenamento de acordo com o modelo do DW criação e manutenção de estruturas de dados criação e manutenção de caminhos de acesso tratamento de dados que variam no tempo suporte a atualização refresh purging (eliminação)

22 Conceitos

23 O que é exatamente? “Data Warehouse é uma coleção de dados orientados por assunto, integrada, não-volátil, variante no tempo, que dá apoio às decisões de administração” (W.H. Inmon, 1992). Orientados a transações: vendas, operações bancárias, acessos à informação.

24 Introdução Aplicações empresas de telefonia redes de varejo
BUSINESS INTELLIGENCE!!! Aplicações empresas de telefonia redes de varejo instituições financeiras instituições governamentais instituições de ensino e pesquisa …. 24

25 Extrair, transformar, carregar dados
Sistemas OLTP Extrair, transformar, carregar dados

26 Extrair, transformar, carregar dados
Sistemas OLTP Extrair, transformar, carregar dados Data warehouses são, comumente, alimentados por sistemas OLTP independentes.

27 Extrair, transformar, carregar dados
Sistemas OLTP Extrair, transformar, carregar dados Data warehouses são, comumente, alimentados por sistemas OLTP independentes. Sistemas OLTP (Online Transaction Processing): gerenciamento de transações; toda vez que você vai ao mercado, ao banco ou faz uma compra online, você está usando um sistema OLTP

28 Objetivos Consolidação dos dados de uma empresa
Desempenho na consulta aos dados Separação entre suporte à decisão e bancos de dados operacionais Suporte à ferramentas: mineração de dados, visualização e On-line Analytical Processing (OLAP)

29 Objetivos  Os termos Datawarehouse, OLTP e OLAP não se refererem a software apenas  São termos que englobam software e serviços (muitos serviços – consultoria)  São termos cunhados para a comunidade empresarial não possuindo uma correspondência simples em Ciência da Computação

30 Relação OLTP e OLAP

31 Objetivos das ferramentas
Descoberta de conhecimento Avaliar Prever Identificar alternativas  Suporte à decisão

32 Arquitetura de um data warehouse

33 Arquitetura de um data warehouse
Arquitetura definida pelo contexto da organização De maneira geral, tem as seguintes camadas: Operacional (OLTPs): fornecem dados De acesso aos dados: ETL Acesso à informação: ferramentas de acesso a dados, geração de relatórios, e análise (OLAP)  Business Intelligence Metadados: detalhamento do conteúdo do data warehouse  dicionário de dados

34 Arquitetura de um data warehouse
Arquitetura definida pelo contexto da organização De maneira geral, tem as seguintes camadas: Operacional (OLTPs): fornecem dados De acesso aos dados: ETL Acesso à informação: ferramentas de acesso a dados, geração de relatórios, e análise (OLAP)  Business Intelligence Metadados: detalhamento do conteúdo do data warehouse  dicionário de dados

35 Dicionário de dados Descrição dos dados do DW: origem
regras de transformação nomes e aliases formato dos dados histórico de atualizações acesso e segurança responsabilidades sobre os dados Sem o dicionário, não há sistema

36 Data warehouse vs Banco de dados operacional

37 Data warehouse vs Banco de dados operacional
Orientado a objetivos específicos Orientado a transações Grande (centenas de GBs até TBs) Pequeno/Médio (MBs até alguns GBs) – distribuído se necessário Dados históricos Dados correntes De-normalizado (poucas tabelas com muitas colunas) Normalizado (muitas tabelas com poucas colunas) Atualizações em Batch Atualizações contínuas Otimizado para acesso Otimizado para escrita/atualização

38 Juntos data warehouse e bancos de dados provém uma solução completa
Inserção/Atualização Data Warehouse Acesso aos dados

39 Extrair, transformar, carregar dados
Visão Geral Extrair, transformar, carregar dados 1. Camada Operacional (OLTPs) 2. Camada de acesso aos dados (ETL) 3. Camada de acesso à informação: MD, relatórios, OLAP  Business Intelligence 4. Dicionário de dados

40 Projeto de Data warehouses

41 Datamarts Datamart: ambientes de análise de dados de menor magnitude, com fins mais específicos, limitados a subcomunidades de uma organização Exemplo, uma loja das casas Bahia Modelagem x Loja i

42 Acréscimo de ferramentas de análise
Datamarts Datamart: ambientes de análise de dados de menor magnitude, com fins mais específicos, limitados a subcomunidades de uma organização Exemplo, uma loja das casas Bahia Modelagem x Acréscimo de ferramentas de análise

43 Datamarts Datamart: ambientes de análise de dados de menor magnitude, com fins mais específicos, limitados a subcomunidades de uma organização Exemplo, uma loja das casas Bahia Loja i Modelagem x Datamart i

44 Bottom-up Projeto Bottom-up: exemplo, rede das casas Bahia Datamart 1
Datamart n ....

45 Bottom-up Projeto Bottom-up: exemplo, rede das casas Bahia Datamart 1
Datamart n ....

46 Data warehouse : conjunto de pequenos sistemas de tratamento e
Bottom-up Projeto Bottom-up: exemplo, rede das casas Bahia Data warehouse : conjunto de pequenos sistemas de tratamento e análise de dados. Datamart 1 Datamart 2 Datamart 3 Datamart n ....

47 Data warehouse : conjunto de pequenos sistemas de tratamento e
Bottom-up Projeto Bottom-up: exemplo, rede das casas Bahia Data warehouse : conjunto de pequenos sistemas de tratamento e análise de dados. Datamart 1 Datamart 2 Datamart 3 Datamart n .... Grande esforço de consolidação  modelo de dados não universal.

48 Data warehouse : projeto bem definido.
Top-down Projeto Top-down Data warehouse : projeto bem definido.

49 Data warehouse : projeto bem definido.
Top-down Projeto Top-down Data warehouse : projeto bem definido. Datamart 1

50 Data warehouse : projeto bem definido.
Top-down Projeto Top-down Data warehouse : projeto bem definido. Datamart 1 Datamart 2

51 Data warehouse : projeto bem definido.
Top-down Projeto Top-down Data warehouse : projeto bem definido. Datamart 1 Datamart 2 Datamart 3

52 Data warehouse : projeto bem definido.
Top-down Projeto Top-down Data warehouse : projeto bem definido. Datamart 1 Datamart 2 Datamart 3 Datamart n ....

53 Data warehouse : projeto bem definido.
Top-down Projeto Top-down Data warehouse : projeto bem definido. Datamart 1 Datamart 2 Datamart 3 Datamart n .... Esforço reduzido de consolidação  modelo de dados universal e bem definido.

54 Projeto Top-down vs Bottom-up
Consistência via manutenção constante Alta consistência Expansão custosa Expansão com novos DMs facilitada Custo diluído ao longo do tempo Inicialmente custosa Natural em organizações Rara em start-ups Baixa latência Alta latência

55 Conceitos vistos Data warehouse OLTP ETL Dicionário de dados DW vs BD
Datamart Projeto Bottom-up vs Top-down

56 OLAP – Online Analytical Processing

57 OLAP Definição: uma categoria de tecnologia de software que visa à compreensão de dados Provê: acesso rápido, consistente e interativo DW e OLAP, em muitos casos, conceitos indissociáveis

58 OLAP - FASMI FASMI: Fast Analysis of Multidimensional Information
Fast: agilidade em responder consultas Analysis: versatilidade analítica Shared: dados/analistas múltiplos Multidimensional: orientado a dimensões de dados Information: propósito fim

59 Cubo de dados OLAP

60 Cubo de dados 240 101 110 150 204 190 90 83 90 35 87 19 27 35 45

61 Cubo de dados Estrutura básica da prática de OLAP Observam-se
As dimensões dos dados As medidas sobre os dados O cubo é orientado a planos (faces) Apesar da complexidade dos sistemas OLAP, seus objetivos analíticos são básicos: contagem, média, máximo, mínimo, soma, ...  Agregação, rápida e flexível, sobre imensos volumes de dados

62 Cubo de dados - slicing Pode ser interessante ver o cubo a partir de diferentes perspectivas (planos) Operações sobre o cubo: slicing, dicing e rotating (pivoting)

63 Cubo de dados - slicing A operação de slicing equivale a fatiar o cubo, definindo um novo plano de apreciação dos dados A operação geométrica é apenas uma analogia, o slicing dispara o processamento OLAP para calcular o novo plano

64 Cubo de dados - slicing A operação de slicing equivale a fatiar o cubo, definindo um novo plano de apreciação dos dados A operação geométrica é apenas uma analogia, o slicing dispara o processamento OLAP para calcular o novo plano Dados calculados e acessíveis ao analista.

65 Cubo de dados - slicing A operação de slicing equivale a fatiar o cubo, definindo um novo plano de apreciação dos dados A operação geométrica é apenas uma analogia, o slicing dispara o processamento OLAP para calcular o novo plano Exemplo de dado calculado: quantas TVs de plasma foram vendidas em na região SE?

66 Cubo de dados - slicing A operação de slicing equivale a fatiar o cubo, definindo um novo plano de apreciação dos dados A operação geométrica é apenas uma analogia, o slicing dispara o processamento OLAP para calcular o novo plano Exemplo de dado calculado: quantas TVs de plasma foram vendidas em na região SE?

67 Cubo de dados - slicing A operação de dicing é semelhante ao slicing, mas usa dois, ou mais, planos de corte Dados calculados e acessíveis ao analista. Dicing conseguido com 5 planos de corte.

68 Cubo de dados - slicing A operação de dicing é semelhante ao slicing, mas usa dois, ou mais, planos de corte Dados calculados e acessíveis ao analista. Dicing conseguido com 5 planos de corte. Exemplo de dado calculado: quantas Celulares foram vendidas em na região CO?

69 Cubo de dados - slicing A operação de dicing é semelhante ao slicing, mas usa dois, ou mais, planos de corte Dados calculados e acessíveis ao analista. Dicing conseguido com 5 planos de corte. Exemplo de dado calculado: quantas Celulares foram vendidas em na região CO?

70 Cubo de dados - rotating
A operação de rotating muda a perspectica do cubo todo. Novo plano: Produto x Tempo Dados calculados e acessíveis ao analista.

71 Cubo de dados - rotating
Obviamente refere-se a cubo apenas para fins didáticos – aplicações de DW/OLAP geralmente envolvem mais do que 3 dimensões, definindo hipercubos. A operação de rotating muda a perspectica do cubo todo. Novo plano: Produto x Tempo Dados calculados e acessíveis ao analista.

72 Modelo de dados dimensional

73 OLAP e DW OK, mas e o DW, onde entra nisso tudo?
O modelo de dados do DW é orientado a servir a análise baseada em Dimensões de dados

74 Modelo de dados DW Data Warehouse Banco de dados operacional Esquema
FATOS Esquema estrela Esquema complexo

75 Modelo de dados DW Data Warehouse Banco de dados operacional Esquema
FATOS Esquema estrela Esquema complexo

76 Esquema floco de neve (snow flake)
Modelo de dados DW Data Warehouse Banco de dados operacional FATOS Esquema floco de neve (snow flake) Esquema complexo (normalizado)

77 Modelo de dados dimensional
Exemplo Estrela: Produto p_chave Tipo Fabricante Modelo Fatos t_chave p_chave l_chave Nro_unidades Valor Assist_tecnica Local l_chave Regiao Cidade Loja Tempo t_chave Ano Trimestre Mes

78 Modelo de dados dimensional
Exemplo: Exemplo: Quantas vendas e qual valor de vendas ocorreram considerando Ano, Tipo de Produto e Região? SELECT Tempo.Ano, Produto.Tipo, Local.Regiao, Sum(Nro_unidades), Sum(valor) FROM Fatos, Tempo, Produto, Local WHERE Fatos.t_chave = Tempo.t_chave AND Fatos.p_chave = Produto.p_chave AND Fatos.l_chave = Local.l_chave GROUP BY Tempo.Ano, Produto.Tipo, Local.Regiao Produto p_chave Tipo Fabricante Modelo Fatos t_chave p_chave l_chave Nro_unidades Valor Assist_tecnica Local l_chave Regiao Cidade Loja Tempo t_chave Ano Trimestre Mes

79 Modelagem de Dados para DW
Exemplo Snowflake (Elmasri e Navathe, 2005) 79

80 Modelo de dados dimensional
Cubo de dados: análise dimensional das medidas (dados) DW: modelo de dados dimensional Dimensões: dão contexto aos fatos Fatos: números transacionais

81 Modelo de dados dimensional
Observe que as dimensões dos dados possuem uma hierarquia categórica Por exemplo: Tempo(Ano, Trimestre, Mês)

82 Modelo de dados dimensional
Hierarquia das dimensões: apreciação dos dados em diferentes granularidades. Exemplo: Itens_vendidos(ano) > Itens_vendidos(Trimestre) Itens_vendidos(Trimestre) > Itens_vendidos(Mês) Duas outras operações muito importantes Drill down Roll up

83 Drill down / Roll up Exemplo
Drill-down e roll-up: navegação ao longo dos níveis hierárquicos das dimensões Exemplo Itens_vendidos(Região) Itens_vendidos(Cidade) Drill-down Roll-up

84 Drill-down sobre as três dimensões simultaneamente.
Drill down / Roll up Drill-down sobre as três dimensões simultaneamente. Cidades: Florianópolis, Curitiba, Guarulhos e Londrina

85 Drill-down sobre as três dimensões simultaneamente.
Drill down / Roll up Exemplo: Quantas vendas e qual valor de vendas ocorreram considerando Ano, Tipo de Produto e Região? Drill Down em todas as dimensões  Quantas vendas e qual valor de vendas ocorreram considerando Trimestre, Fabricante e Cidade? SELECT Tempo.Ano, Tempo.Trimestre, Produto.Tipo, Produto.Fabricante, Local.Regiao Local.Cidade, Sum(Nro_unidades), Sum(valor) FROM Fatos, Tempo, Produto, Local WHERE Fatos.t_chave = Tempo.t_chave AND Fatos.p_chave = Produto.p_chave AND Fatos.l_chave = Local.l_chave GROUP BY Tempo.Ano, Tempo.Trimestre, Produto.Tipo, Produto.Fabricante, Loca.Regiao, Local.Cidade Drill-down sobre as três dimensões simultaneamente. Cidades: Florianópolis, Curitiba, Guarulhos e Londrina

86 Drill-down sobre as três dimensões simultaneamente.
Drill down / Roll up Exemplo: Quantas vendas e qual valor de vendas ocorreram considerando Ano, Tipo de Produto e Região? Drill Down em todas as dimensões  Quantas vendas e qual valor de vendas ocorreram considerando Trimestre, Fabricante e Cidade e considerando um slicing de ano entre 2001 e 2002? SELECT Tempo.Trimestre, Produto.Fabricante, Local.Cidade, Sum(Nro_unidades), Sum(valor) FROM Fatos, Tempo, Produto, Local WHERE Fatos.t_chave = Tempo.t_chave AND Fatos.p_chave = Produto.p_chave AND Fatos.l_chave = Local.l_chave AND Tempo.Ano between 2001 AND 2002 GROUP BY Tempo.Trimestre, Produto.Fabricante, Local.Cidade Drill-down sobre as três dimensões simultaneamente. Cidades: Florianópolis, Curitiba, Guarulhos e Londrina

87 OLAP - Agregação

88 OLAP - Agregação Mais do que cubinhos, o OLAP/DW é uma tecnologia sofisticada que visa responder às diferentes possibilidades e níveis de agregação de maneira rápida e precisa.

89 Síntese http://etl-tools.info ERP - Enterprise resource planning
CRM - Customer relationship management

90 Relational OLAP (ROLAP)
Recursos OLAP sobre SGBDs  disparam todas as agregações necessárias para se obter os resultados requisitados O OLAP não relacional, também é conhecido como Multidimensional OLAP - MOLAP SQL:1999 ROLLUP e CUBE ex: selecionar total de vendas por trim. por região total de vendas por trim. total de vendas por região total geral de vendas SELECT …. FROM …. WHERE … GROUP BY CUBE (trim, região) SELECT …. FROM …. WHERE … GROUP BY ROLLUP (trim, região) ex: selecionar total de vendas por trim. por região total de vendas por trim. total geral de vendas 90

91 Relational OLAP (ROLAP)
Sobre ROLLUP e CUBE ROLLUP e CUBE aplicados sobre k atributos ... GROUP BY CUBE (....) é equivamente a agrupamentos sobre cada um dos 2k subconjuntos de atributos ex: k=2 ⇒ ... GROUP BY CUBE (a,b) agrupamentos sobre: (a,b), (a), (b), (null) agrupamento em (null) é o total geral de vendas

92 Relational OLAP (ROLAP)
(cont...) ... GROUP BY CUBE (....) é equivamente a agrupamentos sobre cada um dos 2k subconjuntos de atributos ex: k=3 ⇒ ... GROUP BY CUBE (a,b,c) agrupamentos sobre: (a,b,c), (a,b), (a,c), (b,c) (a), (b),(c), (null)

93 Relational OLAP (ROLAP)
Dept Funcao COUNT(*) SUM(Salario) Secretario Gerente Presidente Analista Secretario Gerente Secretario Gerente Presidente Analista Exemplo GROUP BY CUBE SELECT Dept, Funcao, COUNT(*), SUM(Salario) FROM Empregados GROUP BY CUBE(Dept, Funcao);

94 Relational OLAP (ROLAP)
(cont...) ... GROUP BY ROLLUP (....) é equivamente a agrupamentos em k+1 subconjuntos: k=2 ⇒ ... GROUP BY ROLLUP (a,b) agrupamentos sobre: (a,b), (a), (null) agrupamento em (null) é o total geral de vendas k=3 ⇒ ... GROUP BY ROLLUP (a,b,c) agrupamentos sobre: (a,b,c), (a,b), (a), (null)

95 Ferramentas Ferramentas de suporte à criação e manutenção de DW
Ferramentas OLAP Ferramentas de BI 95

96 Referências ELMASRI, R; NAVATHE, S.B. Sistemas de Banco de Dados, Addison Wesley, 4a edição, 2005. Ramakrishnan R.; Gehrke, J. Database Management Systems, Mc Graw Hill, 2000. 96


Carregar ppt "SCC Bancos de Dados e Suas Aplicações"

Apresentações semelhantes


Anúncios Google