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

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

Data Warehousing Disciplina: Banco de Dados II Professor: Carlos Eduardo Pires

Apresentações semelhantes


Apresentação em tema: "Data Warehousing Disciplina: Banco de Dados II Professor: Carlos Eduardo Pires"— Transcrição da apresentação:

1 Data Warehousing Disciplina: Banco de Dados II Professor: Carlos Eduardo Pires

2 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 2 Bibliografia KIMBALL, R., ROSS, M., THORNTHWAITE, W., MUNDY, J., BECKER, B. The Data Warehouse Lifecycle Toolkit. Wiley, 2 nd Edition, SILBERSCHATZ, A., KORTH, H., SUDARSHAN, S. Sistema de Banco de Dados. Campus, 5ª Edição, INMON, W. H. Building the Data Warehouse. Wiley, 4 th Edition, 2005.

3 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 3 Agenda Introdução (Integração de Dados) Data Warehousing: Conceitos e Terminologias Processo de Data Warehousing Modelagem Multidimensional Ferramentas OLAP SQL para Data Warehousing Otimização de DW

4 Abordagens para Integração de Dados

5 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 5 Integração de Dados Objetivo de um Sistema de Integração de Dados (SID) Fornecer uma interface uniforme para acesso a múltiplas fontes de dados Permite ao usuário especificar o que ele deseja e o sistema determina como e onde a informação será conseguida Estudada no campo da Inteligência Artificial e de Banco de Dados

6 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 6 Integração de Dados Problemas da Integração de Dados Fontes são compostas por dados muito específicos (granularidade) Dados são armazenados em diferentes esquemas e modelos Dados podem ser não estruturados, semi- estruturados ou estruturados Fontes de dados têm diferentes linguagens de consulta

7 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 7 Integração de Dados Autonomia das Fontes de Dados Continuam a suportar aplicações locais Alterações podem ocorrer tanto nos dados quanto nos esquemas Um SID necessita lidar com as constantes mudanças nas fontes que estão sendo integradas

8 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 8 Integração de Dados Principais Abordagens Abordagem Virtual (Mediadores) Consulta às fontes em tempo de execução Abordagem Materializada Consulta um repositório com dados materializados Vantagens e desvantagens Dados atuais X Tempo de resposta

9 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 9 Arquiteturas Clássicas Arquitetura de Mediadores Abordagem virtual Características Domínio específico Mapeamentos Apenas consultas Fontes de dados de diferentes tipos

10 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 10 Arquiteturas Clássicas Arquitetura de Data Warehouse Abordagem materializada Estratégias de manutenção Rematerialização da visão integrada Manutenção incremental A Arquitetura de Data Warehouse será abordada nesta disciplina

11 Data Warehouse

12 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 12 Data Warehouse – Definições Coleção de dados orientada a assunto, integrada, não-volátil e variante no tempo, utilizada para tomada de decisões W. H. Inmon Repositório estruturado e corporativo de dados orientados a assunto, variantes no tempo e históricos, usados para recuperação de informações e suporte à decisão. O DW armazena dados atômicos e sumariados Oracle Corporation

13 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 13 Data Warehouse – Definições Uma cópia de dados transacionais estruturada especificamente para consulta e análise R. Kimball

14 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 14 Propriedades de um Data Warehouse Integrado Variante no Tempo Não-volátil Orientado a Assunto Data Warehouse

15 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 15 Orientado a Assunto Os dados são divididos e armazenados por áreas de negócio Aplicações OLTP Aposentadoria Investimento Seguro Empréstimo Poupança Data Warehouse Informações Financeiras dos Clientes

16 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 16 Integrado Data WarehouseAplicações OLTP Cliente Poupança Contas Empréstimos Os dados de um determinado assunto são definidos e armazenados apenas uma vez

17 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 17 Variante no Tempo Os dados são armazenados como uma série de fotografias, cada uma representando um período no tempo Data Warehouse

18 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 18 Não-Volátil Dados são materializados no DW Data Warehouse Leitura Carga Operacional Inserção, Atualização, Remoção e/ou Leitura

19 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 19 Alterando os Dados em um Data Warehouse Bancos de Dados OperacionaisBanco de Data Warehouse Primeira Carga Atualizar Eliminar ou Arquivar

20 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 20 Data Mart Data Warehouse departamental Espelho parcial de um Data Warehouse Oferece melhoria no desempenho Armazena menos dados Desenvolvimento Construído e povoado mais rapidamente Satisfação imediata do Cliente

21 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 21 Data Mart

22 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 22 Data Mart DW Corporativo Data Mart Vendas & MarketingData Mart Garantia & Suporte Clientes 1998 _ Vendas 1999_Vendas 2000 _ Vendas 1998_Garantia 1998_Suporte _Vendas 1999_Vendas 2000_Vendas _Garantia _Suporte...

23 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 23 Data Warehouse x Data Mart MesesMeses a anosTempo de Implementação PoucasVáriasFonte de Dados Um único assuntoVáriosAssuntos DepartamentoEmpresaEscopo Data MartData WarehousePropriedade

24 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 24 Movendo Dados de um Data Warehouse para Data Marts Vantagens Campos compartilhados Fonte comum Processamento distribuído Mart Suporte a clientes Mart Vendas DataWarehouse Mart Finanças Fonte 1 Fonte 2 Fonte 3 Desvantagens Tempo mais longo de desenvolvimento

25 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 25 Movendo Dados de Data Marts para um Data Warehouse DataWarehouse Mart Vendas Mart Finanças Mart Suporte a clientes Fonte 1 Fonte 2 Fonte 3 Vantagens Mais simples e rápido Dados específicos de cada departamento Desvantagens Duplicação de dados Data Marts incompatíveis

26 Processo de Data Warehousing

27 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 27 Componentes do Processo de Data Warehousing Fontes de Dados Área de Preparação Área de Armazenamento Ferramentas de Acesso ODS Operacional Externa Legado Repositório de Metadados Data Marts Data Warehouse

28 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 28 Um Sistema de Data Warehousing Dados no Ambiente OLAP Dados no Ambiente OLAP Data Marts Data Warehouse Dados de Sistemas Operacionais Dados de Sistemas Operacionais Compras Produção Contábil Dados da Empresa OLTP Vendas

29 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 29 Principais Profissionais Envolvidos em um Projeto de Data Warehousing Analista de Negócios Administrador de Dados Administrador de Banco de Dados Projetista de DW Desenvolvedor de DW Desenvolvedor de Relatórios OLAP Pessoal da própria empresa!

30 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 30 Coleção de Ferramentas Obtenção de dados Limpeza, integração,... Consulta, relatório, análise Mineração de dados Monitoração e administração do DW Monitoração do ETL

31 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 31 Processo de Extração, Transformação e Carga Extrai dados necessários das fontes a serem integradas, transforma-os e carrega-os no DW Extraction, Transformation and Load (ETL) Limpeza de Dados Corrige e pré-processa os dados OperacionalData WarehouseÁrea de Preparação

32 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 32 Transformação de Dados

33 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 33 Limpeza de Dados CódigoCandidatoProfissãoIdade 1José RobertoEngenheiro44 1Maria SilvaMédico67 2Pedro AlcântaraAdvogado1001 3P. AlcântaraBancário43 4Marta BorgesComerciante22 nullPriscila SouzaProfessor18 5Adolfo FariasDocente erros

34 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 34 Ferramentas de ETL: Oracle Warehouse Builder

35 Desenho Arquitetural UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 35 Diagrama de Fluxo de Dados

36 Mapeamento da Movimentação dos Dados UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 36 Fontes de Dados Transformações Destinos

37 Refinando a Movimentação dos Dados UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 37

38 Modelando um Data Warehouse

39 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 39 Comparando Ambientes de Modelagem Operacional: OLTP Analítico: Data Warehouse Entidades normalizadas Segue terceira forma normal ou maior Produz um design complexo de BD Armazena dados no nível transacional mais baixo Aumenta o nível de JOIN de tabelas em consultas Estrutura tipicamente estática Entidades desnormalizadas Produz um único design de BD mais facilmente compreensível pelos usuários Armazena dados Nível de transação Nível de sumário Diminui o número de JOINs de tabelas em consultas Estrutura dinâmica

40 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 40 Análise de Negócio Conjunto de atividades e técnicas utilizadas para servir como ligação entre partes interessadas no intuito de compreender a estrutura, políticas e operações de uma organização e para recomendar soluções que permitam que a organização alcance suas metas BABoK (Business Analysis Body of Knowledgement) Como analisar? Ponha-se no lugar de um Gerente de Vendas O que ele gostaria de analisar?

41 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 41 Modelagem Multidimensional Dados operacionais visualizados sob diversos ângulos Os ângulos são chamados dimensões do negócio Produto Loja Tempo Região Uma das dimensões é sempre o Tempo

42 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 42 Modelagem Multidimensional Outros Exemplos de Dimensões

43 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 43 Modelagem Multidimensional Atributos de Dimensão São atributos qualitativos que caracterizam os ramos do negócio envolvidos na medida de desempenho de determinado fato Exemplo Dimensão Produto Descrição, embalagem, preço, etc.

44 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 44 Modelagem Multidimensional Granularidade Define o nível de detalhe das dimensões Influencia o tamanho das dimensões Exemplo Dimensão Loja PaísMaior Granularidade Região Estado CidadeMenor Granularidade

45 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 45 Modelagem Multidimensional Hierarquias entre os atributos das dimensões Úteis para a geração de relatórios Dimensão Região Fornecedor Cidade Estado Região Dimensão Tempo Dia Semana Mês Trimestre Ano

46 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 46 Modelagem Multidimensional Associados a cada dimensão existem fatos: Vendas Compras Sinistro Fatos São valores quantitativos referentes ao desempenho de um grupo de dimensões Exemplo Fato Vendas (Loja, Produto e Tempo) Quantidade, lucro, valor, etc.

47 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 47 Processamento OLAP OLAP ( On-line Analytical Processing) Aplicado sobre estruturas multidimensionais O termos On-line significa que os resumos solicitados são obtidos rapidamente Difere substancialmente daquele utilizado por aplicações do nível operacional (OLTP)

48 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 48 Processamento OLAP x OLTP AnáliseProcessosAtividades Operacional, Interna, Externa Operacional, InternaFontes de Dados Grande para Muito Grande Pequeno para grandeTamanho Assunto, tempoAplicaçãoOrganização dos Dados Snapshots no tempo30 – 60 diasNatureza dos dados LeituraDMLOperações Segundos para horasMilisegundos para segundos Tempo de Resposta OLAPOLTPPropriedade

49 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 49 Modelagem Multidimensional Principais vertentes para Modelagem Multidimensional Multidimensional OLAP (MOLAP) Relational OLAP (ROLAP) Hybrid OLAP (HOLAP) Outras variações Web-based OLAP (WOLAP) Desktop OLAP (DOLAP) Real-Time OLAP (RTOLAP)

50 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 50 MOLAP (Multidimensional OLAP) Baseia-se nos Bancos de Dados Multidimensionais Estrutura utilizada: Cubo Multidimensional Cada aresta representa uma dimensão do negócio As células do cubo são preenchidas com valores quantitativos (medidas ou fatos) Data Warehouse ou Data Mart SGBD Cubo Dados MOLAP Agregações MOLAP Armazena cópia da tabela fato e dimensões Armazena agregações

51 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 51 MOLAP (Multidimensional OLAP) TEMPO CLIENTE PRODUTO Calça Tênis Casaco Meia Cliente 1 Cliente 2 Vendas Qual o total de vendas de Casacos' do 'Cliente 1' em '2001'? Mais informações:

52 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 52 ROLAP (Relational OLAP) Tabelas relacionais simulam o cubo multidimensional O esquema proposto concentra numa tabela as medidas ou fatos do negócio (tabela de fatos) Os componentes das dimensões são armazenados em outras tabelas (tabelas de dimensão) Data Warehouse ou Data Mart Dados ROLAP Agregações ROLAP SGBD Agregações são armazenadas em tabelas relacionais Dados-base são mantidos no SGBD-fonte Estrutura totalmente relacional

53 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 53 HOLAP (Hybrid OLAP) Data Warehouse ou Data Mart Dados ROLAP SGBD Cubo Agregações MOLAP Dados-base mantidos no BD fonte Agregações calculadas e armazenadas no cubo

54 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 54 MOLAP vs. ROLAP vs. HOLAP Perspectiva do Cliente MOLAPMOLAPHOLAPHOLAPROLAPROLAP ArmazenamentoArmazenamento Dados de base Agregações Desempenho de consulta Consumo em disco Manutenção do cubo MOLAPMOLAP Cubo Imediato Alto HOLAPHOLAP Tabela Relacional Cubo Mais rápido Médio ROLAPROLAP Tabela Relacional Rápido Baixo

55 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 55 Modelo Estrela (Star Schema) Dimensão Produto Produto_id Descrição,... Dimensão Tempo Tempo_id Dia Mês Ano,... Fatos Vendas Produto_id Loja_id Tempo_id Cliente_id Valor_vendas Total_vendas,... Dimensão Cliente Cliente_id Nome,... Dimensão Loja Loja_id Cidade,... Tabela de Fatos Dimensões Desnormalizadas

56 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 56 Modelo Estrela (Star Schema) Geográfica Produto Tempo Und. $ $ Tabelas de Dimensão GeográficaGeográfica ProdutoProduto TempoTempo Tabela-Fato Medidas FatosFatos DimensãoDimensão

57 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 57 Modelo Estrela (Star Schema) Tabela Fato Dimension Table Dim_TempoDim_Tempo Chave_Tempo Data. Data. Fato_Vendas Chave_Tempo Chave_Funcionario Chave_Produto Chave_Cliente Chave_Entregador Chave_Tempo Chave_Funcionario Chave_Produto Chave_Cliente Chave_Entregador Qtd-Prod Valor-Total ….. Qtd-Prod Valor-Total ….. Dim_FuncionarioDim_Funcionario Chave_Funcionario Codigo_Funcionario. Codigo_Funcionario. Dim_ProdutoDim_Produto Chave_Produto Codigo_Produto. Codigo_Produto. Dim_ClienteDim_Cliente Chave_Cliente Codigo_Cliente. Codigo_Cliente. Dim_EntregadorDim_Entregador Chave_Entreegador Codigo_Entregador. Codigo_Entregador.

58 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 58 Modelo Estrela (Star Schema)

59 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 59 Modelo Estrela (Star Schema)

60 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 60 Exercício de Sala A partir do Modelo Conceitual do Projeto da Disciplina, tente montar um esquema estrela Mostrar Fato, Dimensões e Relacionamentos, além dos atributos

61 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 61 Modelo Flocos de Neve (Snowflakes) Tabelas-Dimensão Secundárias Fato_Vendas Chave_Tempo Chave_Funcionario Chave_Produto Chave_Cliente Chave_Entregador Chave_Tempo Chave_Funcionario Chave_Produto Chave_Cliente Chave_Entregador RequiredDate. RequiredDate. MarcaProdutoMarcaProduto CodigoMarca CodigoCategoria CategoriaCategoria Nome Dim_ProdutoDim_Produto Chave_Produto Nome Tamanho CodigoMarca Tabela-Dimensão Principal

62 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 62 Modelo Flocos de Neve (Snowflakes) LOJA CLIENTE PRODUTO Vendas Custo TEMPO CIDADE ESTADO SUBCATEGORIA CATEGORIA Dimensões Normalizadas

63 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 63 Modelo Flocos de Neve (Snowflakes) store sType cityregion snowflake schema constellations Hierarquia entre Dimensões

64 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 64 Escolhendo uma Modelagem Multidimensional Star Schema SnowflakeSnowflake Clareza + fácil + difícil Número de tabelas < < > > Complexidade de consultas + simples + complexo Desempenho de consulta + rápido + lento

65 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 65 Exercício de Sala Montar um esquema snowflakes referente ao fato Vendas Responda a seguinte consulta no esquema snowflakes: Quantidade de vendas de carros da marca W, feitas ao cliente X, no ano de Z

66 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 66 Escolhendo a Granularidade Determinar requisitos dos dados Escolher o nível mais baixo de detalhe Requer espaço em disco Envolve maior tempo de processamento Provê capacidade detalhada de análise de dados Adaptar medidas à granularidade estabelecida Considerações de projeto Usar medidas aditivas e numéricas

67 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 67 Definindo Características de Dimensões Aplicar características às tabelas de dimensão Definir PRIMARY KEY Incluir colunas altamente correlacionadas e descritivas Projetando para Usabilidade e Extensibilidade Minimizar ou evitar uso de códigos e abreviações Criar colunas úteis para níveis de agregação Evitar valores nulos ou em branco Tratar os atributos que mudam ao longo do tempo

68 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 68 Identificando Hierarquias de Dimensões Hierarquia Consolidada Local da Loja ContinenteContinentePaísPaísRegiãoRegiãoCidadeCidadeLojaLoja Hierarquia em Separado Local da Loja Continente ContinenteContinente País PaísPaís Região RegiãoRegião Cidade CidadeCidade Loja LojaLoja 01

69 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 69 Dicas Importantes Levar a PK original da tabela fonte para a dimensão Carga incremental Durante a carga, carregar as dimensões primeiramente Dimensões são bem menores que os fatos Vale a pena desnormalizar

70 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 70 Tempo Produto Local Dimensão Q4 Q1Q2Q3 Uvas Maçãs Melões Cerejas Pêras Atlanta Denver Detroit Membro Célula Tempo Início Trimestre 1 1 deJulho Fim 30 de Setembro Trimestre 2 1 de Outubro 31 de Dezembro Trimestre 3 1 de Janeiro 31 de Março Trimestre 4 1 de Abril 30 de Junho Propriedades Dia 1 Dia Jan.Jan.Fev..Fev Níveis Terminologia

71 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 71 Q4 Tempo Q1Q2Q3 Produto Uvas Maçãs Melões Cerejas Peras Local Atlanta Denver Detroit Sales Produto Uvas Maçãs Melões Cerejas Peras Produto Uvas Maçãs Melões Cerejas Pêras Local Atlanta Denver Detroit Sales Operações no Cubo

72 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 72 Dimensões Compartilhadas Fatos 1 Dimensão 1 Dimensão 2 Dimensão 3 Dimensão 4 Fatos 2 Dimensão 5 Dimensão 6

73 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 73 Fatos & Fatos? Fatos 2 Dimensão 1 Dimensão 2 Fatos 1 Dimensão 5 Dimensão 6

74 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 74 Data Warehousing - Prof. Carlos Eduardo Santos Pires 74 Tamanho de um DW Fato: Vendas

75 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 75 Data Warehousing - Prof. Carlos Eduardo Santos Pires 75 Tamanho de um DW É medido pelo tamanho da Tabela de Fatos Em geral, o tamanho das dimensões é desprezado Dimensão Tempo: 2 anos x 365 dias = 730 dias (linhas) Dimensão Loja: 300 lojas Dimensão Produto: produtos

76 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 76 Data Warehousing - Prof. Carlos Eduardo Santos Pires 76 Tamanho de um DW Dimensão Promoção: cada item vendido está associado a uma única promoção Número de registros da tabela de fatos (média de itens (produtos) vendidos ao dia em cada loja): 730 (dias) x 300 (lojas) x 3000 (produtos/dia) x 1 (promoção)= 657 milhões de registros

77 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 77 Data Warehousing - Prof. Carlos Eduardo Santos Pires 77 Tamanho de um DW Número de campos chaves = 4 Número de campos fatos (medidas) = 4 Total de campos = 8 (de 4 bytes, cada um) Tamanho da Tabela de Fatos x 8 x 4 = 21GB

78 Ferramentas OLAP

79 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 79 Ferramentas OLAP DW BD Ferramentas de Apresentação Ferramentas OLAP Ferramentas de Mineração de Dados Ferramentas de Apresentação CAMADA DE FRONT-END Executivo

80 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 80 Ferramentas OLAP Admitem análise interativa de informações resumidas Fornecem ao usuário a visualização dos dados sob diferentes ângulos Comportam as necessidades da atividade de análise Características de um Relatório OLAP Séries temporais Comparações Ajuda à identificação de anomalias ou exceções Operações: Drill Up, Drill Down, Slicing/Dicing

81 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 81 Data Warehousing - Prof. Carlos Eduardo Santos Pires 81 Exemplo de Relatório OLAP

82 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 82 Data Warehousing - Prof. Carlos Eduardo Santos Pires 82 Exemplo de Relatório OLAP

83 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 83 Data Warehousing - Prof. Carlos Eduardo Santos Pires Exemplo de Relatório OLAP

84 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 84 Ferramentas OLAP: Oracle Discoverer TABULAÇÃO CRUZADA

85 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 85 Tabela Dinâmica no Excel É uma tabela interativa que resume uma grande quantidade de dados rapidamente, ou os combina de tabelas diferentes É possível girar suas linhas e colunas para ver resumos diferentes dos dados de origem, filtrar os dados exibindo páginas diferentes ou exibir os detalhes das áreas de interesse

86 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 86 Tabela Dinâmica no Excel Exemplo: AULAPED.xls (http://www.virtual.epm.br/material/tis/curr- med/tab_dinamica/tabdin.html) Selecione a área compreendida entre as células A1 e H1612 Menu Dados "Relatório da Tabela Dinâmica" Onde estão os dados para análise? BD ou Lista do Excel Intervalos de dados a serem usados? $A$1:$H$1612 Layout

87 SQL para OLAP

88 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 88 Extensões SQL para Ferramentas OLAP Comando Merge A partir de uma tabela origem, insere ou atualiza linhas em uma tabela destino Operador ROLLUP Produz um conjunto de resultados que contém as linhas agrupadas e os valores de subtotais Operador CUBE Produz um conjunto de resultados que contém as linhas de ROLLUP e as linhas de tabulação cruzada Operador Grouping Sets Extensão da cláusula GROUP BY Possibilita explicitar os agrupamentos desejados

89 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 89 Merge Sintaxe: MERGE INTO USING ON ( ) WHEN MATCHED THEN WHEN NOT MATCHED THEN [LOG ERRORS ];

90 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 90 Merge – Exemplo 01 ALUNOALUNO2 INSERT XOR UPDATE OrigemDestino

91 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 91 Merge – Exemplo 01 CREATE TABLE aluno ( codigo NUMBER PRIMARY KEY, nome VARCHAR2(10), curso VARCHAR2(10), telefone VARCHAR2(20)); INSERT INTO aluno VALUES (1,'JOSE','CC',' '); INSERT INTO aluno VALUES (2,'MARIA','EE',' '); INSERT INTO aluno VALUES (3,'PAULO','EM',' '); CREATE TABLE aluno2 ( id NUMBER PRIMARY KEY, nome VARCHAR(10), curso VARCHAR2(10), telefoneVARCHAR2(20), codigoNUMBER);

92 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 92 Merge – Exemplo 01 CREATE SEQUENCE seq_aluno; CREATE OR REPLACE PROCEDURE atualiza IS BEGIN MERGE INTO aluno2 a2 USING aluno a ON (a.codigo = a2.codigo) WHEN MATCHED THEN UPDATE SET a2.curso = a.curso, a2.telefone = a.telefone WHEN NOT MATCHED THEN INSERT (a2.id, a2.nome, a2.curso, a2.telefone, a2.codigo) VALUES (seq_aluno.nextval, a.nome, a.curso, a.telefone, a.codigo); COMMIT; END; EXECUTE atualiza; SELECT * FROM aluno2;

93 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 93 Merge – Exemplo 01 INSERT INTO aluno VALUES (4,'ZILDA','CC',' '); COMMIT; EXECUTE atualiza SELECT * FROM aluno2; UPDATE aluno SET curso = 'CC' WHERE codigo = 2;

94 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 94 Merge – Exemplo 02 CREATE TABLE employee ( employee_id NUMBER(5), first_nameVARCHAR2(20), last_nameVARCHAR2(20), dept_noNUMBER(2), salaryNUMBER(10)); INSERT INTO employee VALUES (1,'Dan', 'Morgan',10,100000); INSERT INTO employee VALUES (2,'Helen','Lofstr',20,100000); INSERT INTO employee VALUES (3,'Akiko','Toyota',20,50000); INSERT INTO employee VALUES (4,'Jackie','Stough',20,40000); INSERT INTO employee VALUES (5,'Richard','Foote',20,70000); INSERT INTO employee VALUES (6,'Joe', 'Johnson',20,30000); INSERT INTO employee VALUES (7,'Clark', 'Urling',20,90000);

95 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 95 Merge – Exemplo 02 CREATE TABLE bonuses ( employee_idNUMBER, bonusNUMBER DEFAULT 100); INSERT INTO bonuses (employee_id) VALUES (1); INSERT INTO bonuses (employee_id) VALUES (2); INSERT INTO bonuses (employee_id) VALUES (4); INSERT INTO bonuses (employee_id) VALUES (6); INSERT INTO bonuses (employee_id) VALUES (7); COMMIT; SELECT * FROM employee; SELECT * FROM bonuses;

96 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 96 Merge – Exemplo 02 MERGE INTO bonuses b USING ( SELECTemployee_id, salary, dept_no FROMemployee WHEREdept_no = 20) e ON (b.employee_id = e.employee_id) WHEN MATCHED THEN UPDATE SET b.bonus = e.salary * 0.1 WHEN NOT MATCHED THEN INSERT (b.employee_id, b.bonus) VALUES (e.employee_id, e.salary * 0.05); subconjunto de employee

97 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 97 Cubo 2D Fact table: Multi-dimensional cube: dimensions = 2 GROUP BY storeId, prodId

98 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 98 Cubo 3D day 2 day 1 dimensions = 3 Multi-dimensional cube:Fact table: GROUP BY storeId, prodId, date

99 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 99 Agregação Soma de quantidade (amt) em um dia (dia 1) Em SQL:SELECT SUM(amt) FROM sale WHERE date = 1; 81

100 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 100 Agregação Soma quantidade (amt) por dia Em SQL: SELECT date, SUM(amt) FROM sale GROUP BY date;

101 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 101 Agregação Soma quantidade (amt) por dia e produto Em SQL: SELECT date, prodId, SUM(amt) FROM sale GROUP BY date, prodId drill-down rollup Desconsidera storeId

102 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 102 Agregação Operadores SUM, COUNT, MAX, MIN, AVG Cláusula HAVING Eliminar determinados grupos Uso da hierarquia entre dimensões Média de vendas por região (região está dentro de loja (store)) Maior venda por mês (mês está dentro de ano)

103 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 103 Agregação no Cubo day 2 day drill-down rollup GROUP BY storeId, prodId, date GROUP BY storeId, prodId GROUP BY storeId GROUP BY prodId

104 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 104 Operadores do Cubo day 2 day sale(c1,*,*) sale(*,*,*) sale(c2,p2,*)

105 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 105 Operadores do Cubo day 2 day 1 * sale(*,p2,*)

106 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 106 Extensões SQL para Ferramentas OLAP Cláusula GROUP BY tradicional SELECT department_id, job_id, AVG(salary) FROM employees GROUP BY department_id, job_id

107 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 107 Operador ROLLUP SELECT department_id, job_id, SUM(salary) FROM employees WHERE department_id < 60 GROUP BY ROLLUP(department_id, job_id); Total de Combinações: n + 1

108 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 108 Operador CUBE SELECT department_id, job_id, SUM(salary) FROM employees WHERE department_id < 60 GROUP BY CUBE (department_id, job_id) ; Total de Combinações: 2 n

109 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 109 Grouping Sets SELECT department_id, job_id, manager_id,avg(salary) FROM employees GROUP BY GROUPING SETS ((department_id,job_id), (job_id,manager_id),()); …

110 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 110 Grouping Sets SELECT department_id, job_id, manager_id,avg(salary) FROM employees WHERE salary > GROUP BY GROUPING SETS ((department_id,job_id), (job_id,manager_id),()) DEPARTMENT_ID JOB_ID MANAGER_ID AVG(SALARY) MK_MAN SA_MAN AD_VP AD_PRES AD_VP MK_MAN SA_MAN AD_PRES ,6667

111 Otimizações

112 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 112 Visão (Virtual) Crie uma visão, EMPVU80, que contenha detalhes dos funcionários do departamento 80 CREATE VIEW empvu80 AS SELECT employee_id, last_name, salary FROM employees WHERE department_id = 80; View created.

113 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 113 Visões (Virtual) USER_VIEWS USER_VIEWS EMPVU80 SELECT employee_id, last_name, salary FROM employees WHERE department_id=80; Aplicação SELECT * FROM empvu80 ; EMPLOYEES Servidor de Banco de Dados

114 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 114 Visões Materializadas Armazenam fisicamente os resultados de uma consulta Podem ser atualizadas periodicamente Ajudam a aumentar a velocidade de resposta das consultas que envolvem funções de agregação ou junções entre tabelas Usadas em soluções de Data Warehousing e Replicação de Dados No SGBD Oracle, eram chamadas de snapshots

115 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 115 Visões Materializadas CREATE MATERIALIZED VIEW relatorio_cliente REFRESH COMPLETE ENABLE QUERY REWRITE AS SELECT c.nome_cliente, SUM(f.valor) AS total FROM fatos_vendas f, dim_cliente c WHERE f.cliente_id = c.cliente_id GROUP BYc.nome_cliente;

116 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 116 Visões Materializadas – Exemplo 1 INSERT INTO products VALUES (1,'NESCAU',null); INSERT INTO products VALUES (2,'AGUA MINERAL',null); INSERT INTO products VALUES (3,'DESODORANTE',null); INSERT INTO sales VALUES (101,1,20,450); INSERT INTO sales VALUES (100,1,10,225); INSERT INTO sales VALUES (100,2,5,30); INSERT INTO sales VALUES (100,3,30,160); INSERT INTO sales VALUES (102,2,2,10); COMMIT; CREATE TABLE products (id_product NUMBER PRIMARY KEY, nm_product VARCHAR2(40), ds_product VARCHAR2(200)); CREATE TABLE sales (id_sales NUMBER, id_product NUMBER, amount NUMBER, value NUMBER, PRIMARY KEY (id_sales, id_product));

117 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 117 Visões Materializadas – Exemplo 1 CREATE MATERIALIZED VIEW product_sales_mv BUILD IMMEDIATE REFRESH FAST ON COMMIT ENABLE QUERY REWRITE AS SELECT p.nm_product, SUM(s.value) FROM products p, sales s WHERE p.id_product = s.id_product GROUP BY nm_product; SELECT * FROM product_sales_mv; NM_PRODUCT SUM(S.VALUE) AGUA MINERAL 40 DESODORANTE 160 NESCAU 675

118 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 118 Visões Materializadas – Exemplo 1 INSERT INTO sales VALUES (103,2,3,14); SELECT * FROM product_sales_mv; NM_PRODUCT SUM(S.VALUE) AGUA MINERAL 40 DESODORANTE 160 NESCAU 675 COMMIT; SELECT * FROM product_sales_mv; NM_PRODUCT SUM(S.VALUE) AGUA MINERAL 54 DESODORANTE 160 NESCAU 675 Mesmo resultado anterior Resultado atualizado após o COMMIT Provoca a rematerialização da visão

119 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 119 Visões Materializadas – Exemplo 2 CONN SET autotrace traceonly CREATE MATERIALIZED VIEW dept_emp REFRESH COMPLETE ENABLE QUERY REWRITE AS SELECT d.department_name, SUM(e.salary) AS total FROM departments d, employees e WHERE d.department_id = e.department_id GROUP BY d.department_name;

120 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 120 Visões Materializadas – Exemplo 2 ALTER SESSION set query_rewrite_enabled = true; SELECT d.department_name, SUM(e.salary) AS total FROM departments d, employees e WHERE d.department_id = e.department_id GROUP BYd.department_name; 11 linhas selecionadas. Plano de Execução SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=327 Bytes=9810) 1 0 TABLE ACCESS (FULL) OF 'DEPT_EMP' (Cost=2 Card=327 Bytes=9810)

121 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 121 Visões Materializadas Vantagens Útil para sumarização, cálculos pré-computados e replicação de dados Acesso mais rápido para consultas envolvendo junções complexas Transparente para usuários finais Podem ser adicionadas ou eliminadas sem invalidar código SQL Desvantagens Custos de desempenho (rematerialização) Custos de armazenamento

122 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 122 Particionamento de Tabelas Tabelas Particionadas Decomposição de grandes tabelas em pedaços menores chamados partições Cada partição possui seu próprio nome e pode, opcionalmente, ter características de armazenamento próprias Benefícios Gerenciamento, o desempenho de consultas e a disponibilidade dos dados

123 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 123 Particionamento de Tabelas D o ponto de vista da aplicação, uma tabela particionada é idêntica a uma tabela não- particionada Não são necessárias modificações ao acessar uma tabela particionada utilizando comandos DML Chave de particionamento Conjunto de colunas que determina em qual partição estará cada linha

124 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 124 Particionamento de Tabelas Tipos de Particionamento Faixa Lista Hash

125 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 125 Particionamento de Tabelas CREATE TABLE employee_r ( empno NUMBER(10) PRIMARY KEY, name VARCHAR2(40), deptno NUMBER(2)) PARTITION BY RANGE (deptno) (PARTITION P1 VALUES LESS THAN (11) TABLESPACE p1_ts, PARTITION P2 VALUES LESS THAN (21) TABLESPACE p2_ts, PARTITION P3 VALUES LESS THAN (31) TABLESPACE p3_ts, PARTITION P4 VALUES LESS THAN (MAXVALUE) TABLESPACE p4_ts); Particionamento por Faixa de Valores

126 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 126 Exemplo CREATE TABLE exemplo ( id NUMBER, name VARCHAR2(30)) PARTITION BY RANGE (id) (PARTITION P1 VALUES LESS THAN (250000) TABLESPACE users, PARTITION P2 VALUES LESS THAN (500000) TABLESPACE users, PARTITION P3 VALUES LESS THAN (750000) TABLESPACE users, PARTITION P4 VALUES LESS THAN (MAXVALUE) TABLESPACE users);

127 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 127 Exemplo CREATE OR REPLACE PROCEDURE carrega IS BEGIN FOR i in LOOP INSERT INTO exemplo VALUES (i,'AAAA'||i); END LOOP; COMMIT; END; / EXEC carrega SELECT * FROM exemplo partition(p1) WHERE id = 25000;

128 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 128 Exemplo ANALYZE TABLE exemplo COMPUTE STATISTICS; SELECT table_name, partition_name, high_value, num_rows FROM user_tab_partitions WHERE table_name = 'EXEMPLO'; TABLE_NAME PARTITION_NAME HIGH_VALUE NUM_ROWS EXEMPLO P EXEMPLO P EXEMPLO P EXEMPLO P4 MAXVALUE

129 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 129 Particionamento de Tabelas CREATE TABLE cliente ( codigo NUMBER(5) NOT NULL, nome VARCHAR2(100), estado CHAR(2)) TABLESPACE users PARTITION BY LIST (estado) (PARTITION p_regional_sudeste VALUES ('SP', 'RJ', 'MG', 'ES') TABLESPACE users, PARTITION p_regional_nordeste VALUES ('BA', 'PE', 'PB', 'RN') TABLESPACE users); Particionamento por Lista de Valores

130 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 130 Exemplo BEGIN FOR i in LOOP IF MOD(i,2) = 0 THEN INSERT INTO cliente VALUES (i,'AAAAAA','SP'); ELSE INSERT INTO cliente VALUES (i,'BBBBBB','PB'); END IF; END LOOP; COMMIT; END; SELECT table_name, partition_name, high_value, num_rows FROM user_tab_partitions WHERE table_name = 'CLIENTE' TABLE_NAME PARTITION_NAME HIGH_VALUE NUM_ROWS CLIENTE P_REGIONAL_SUDESTE 'SP', 'RJ', 'MG', 'ES' 500 CLIENTE P_REGIONAL_NORDESTE 'BA', 'PE', 'PB', 'RN' 500 INSERT INTO cliente VALUES (1001, 'CCCCCC', 'RS'); ERRO na linha 1: ORA-14400: chave de partição inserida não está mapeada para partição alguma

131 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 131 Particionamento de Tabelas CREATE TABLE pessoa ( codigo NUMBER(7) NOT NULL, nome VARCHAR2(150) NOT NULL, nascimentoDATE, VARCHAR2(30)) PARTITION BY HASH (codigo) PARTITIONS 2 STORE IN (users, example); Particionamento por Hash Usa um algoritmo de dados para misturar os dados entre as partições, balanceando o volume de dados

132 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 132 Exemplo BEGIN FOR i IN LOOP INSERT INTO pessoa VALUES (i, 'NONO'||i, SYSDATE+i, END LOOP; COMMIT; END; / ANALYZE TABLE pessoa COMPUTE STATISTICS; SELECT table_name, partition_name, high_value, num_rows FROM user_tab_partitions WHERE table_name = 'PESSOA'; TABLE_NAME PARTITION_NAME HIGH_VALUE NUM_ROWS PESSOA SYS_P PESSOA SYS_P

133 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 133 Particionamento de Tabelas Vantagens Acelera o desempenho Baixa o tempo de consulta Aumenta a disponibilidade Acesso 24x7 a informações críticas Melhora a capacidade de gerenciamento Gerencia porções menores de dados Desvantagens Consultas devem usar os mesmos critérios do particionamento Partições podem ter mais dados do que outras

134 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 134 Indexação Índices de Bitmap... age index bit maps data records

135 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 135 Indexação Índices de Bitmap Considere a seguinte consulta: Recupere as pessoas com idade = 20 e nome = fred Mapa de bits para idade = 20: Mapa de bits para nome = fred: A resposta é a interseção:

136 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 136 Indexação Criando um Índice de Bitmap Deve ser usado Em tabelas com milhões de linhas e as colunas têm poucos valores distintos Quando tem pouca atualização de dados CREATE BITMAP INDEX emp_est_civil_idx ON empregado(estado_civil) TABLESPACE indx; CREATE BITMAP INDEX emp_est_civil_idx ON empregado(estado_civil) TABLESPACE indx;

137 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 137 Índices de Bitmap – Exemplo CREATE TABLE paciente ( codigo NUMBER PRIMARY KEY, nomeVARCHAR2(40), estcivilVARCHAR2(10), datanascDATE, sexoCHAR(1)); BEGIN FOR i in LOOP IF MOD(i,2) = 0 THEN INSERT INTO paciente VALUES (i,'AAAAAA'||i, 'CASADO',SYSDATE-i,'F'); ELSE INSERT INTO paciente VALUES (i,'OOOOO'||i, 'SOLTEIRO',SYSDATE- i,'M'); END IF; END LOOP; COMMIT; END;

138 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 138 Índices de Bitmap – Exemplo SELECT sexo, COUNT(*) FROM paciente GROUP BY sexo; SEXO COUNT(*) F 5000 M 5000 CREATE BITMAP INDEX paciente_sexo_idx ON paciente (sexo); CREATE BITMAP INDEX paciente_estcivil_idx ON paciente (estcivil);

139 UFCG/CEEI/DSC - Banco de Dados II - Prof. Carlos Eduardo Pires 139 Índices de Bitmap – Exemplo SELECT /*+ index(paciente paciente_sexo_idx, paciente paciente_estcivil_idx) */ COUNT(*) FROM paciente WHERE sexo = 'F' AND estcivil = 'CASADO'; Plano de Execução SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=10) 1 0 SORT (AGGREGATE) 2 1 BITMAP CONVERSION (COUNT) 3 2 BITMAP AND 4 3 BITMAP INDEX (SINGLE VALUE) OF 'PACIENTE_ESTCIVIL_IDX' 5 3 BITMAP INDEX (SINGLE VALUE) OF 'PACIENTE_SEXO_IDX'


Carregar ppt "Data Warehousing Disciplina: Banco de Dados II Professor: Carlos Eduardo Pires"

Apresentações semelhantes


Anúncios Google