UNDB BANCO DE DADOS II Prof Alessandro Gonalves
UNDB BANCO DE DADOS II Prof. Alessandro Gonçalves Alessandro. inovacao@gmail. com 1
Data mining 2
Data mining Introdução Os SGBD proveem uma maneira segura e eficiente de se guardar informações. As informações servem para fazer a empresa funcionar adequadamente. Mas as informações podem passar de um nível operacional para estratégico. Query Operacional Data mining BD Estratégico 3
Data mining Justificativas 1) Muitas consultas podem ser expressas com SQL mas não todas (pelo menos não facilmente). Várias extensões ao SQL ANSI (padrão) foram propostos a partir do final da década de 1990, como forma de facilitar a extração dos dados. Surge o OLAP – Online Analytical Processing – processamento analítico online. 2) As linguagens de consulta não são adequadas para análises estatísticas detalhadas dos dados. Vários pacotes foram lançados para fazer esta “ponte” entre a análise estatística e banco de dados. 3) As grandes empresas possuem muitas informações a serem acessadas, em bases muitas vezes separada. Para consultar dados dispersos, as empresas organizaram os “datawares”, depósitos de dados em um só esquema em um único local. 4
Data mining Justificativas 4) Implementação eficiente + técnicas de descoberta de dados a partir da IA ou análise estatística = mineração de dados (data mining) 5) A partir de agrupamentos, obtém-se tabelas resumo, com informações pouco conhecidas, ajudando na construção do BI. 6) Deve prover um mecanismo rápido, eficiente e simples de usar 5
OLAP Introdução O Olap (Online Analytic Processing) é uma estratégia de extração de dados (data mining), de forma sintética. Permite análise interativa de informações de resumo, ao contrário de relatórios por exemplo. Apesar da linguagem SQL ser muito poderosa, nem sempre poderá responder a todas as perguntas do nível estratégico de forma rápida e fácil. Existem diversas ferramentas OLAP para Oracle, DB 2, MS Sql Server, Mysql (algumas gratuitas) para implantação de OLAP nas empresas. 6
OLAP Funcionamento O Olap (Online Analytic Processing) é uma estratégia de extração de dados (data mining), de forma sintética. Permite análise interativa de informações de resumo, ao contrário de relatórios por exemplo. Apesar da linguagem SQL ser muito poderosa, nem sempre poderá responder a todas as perguntas do nível estratégico de forma rápida e fácil. Agrupamentos de diversas visões podem ser necessários 7
OLAP Exemplo Uma loja quer saber quais artigos são mais populares As roupas são caracterizadas por: nome_item, cor e tamanho Existe a relação vendas (nome_item, cor, tamanho, número) Nome_item pode ser: skirt, dress, shirt, pant Cor pode ser: dark, pastel, white Tamanho: small, medium, large 8
OLAP Exemplo Alguns atributos são de medida (measurement). Ex: número (quantidade) Este atributo mede o número de vendas. Existem outros que servem para analisar sob determinado prisma. São chamados de atributos de dimensão (dimension). Definem as dimensões em que os atributos de medida e resumos dos atributos são vistos. Ex: nome_item, cor, tamanho. . . Os dados modelados como atributos de dimensão e atributos de medidas são chamados dados multidimensionais. 9
OLAP Exemplo Tabulação cruzada com totais 10
OLAP Exemplo A tabela resultado anterior pode ser obtida através de queries com Group by Quando generalizamos uma tabulação cruzada para n dimensões, temos um cubo multidimensional. O cubo pode ter 3, 4 … n dimensões. 11
OLAP skirt dark all 8 skirt pastel all 35 skirt white all 10 skirt all 53 dress dark all 20 dress pastel all 10 dress white all 5 dress all 35 shirt dark all 14 shirt pastel all 7 shirt white all 28 shirt all 49 pant dark all 20 pant pastel all 2 pant white all pant all 27 all dark all 62 all pastel all 54 5 12
OLAP – Sistema interativo para ver diferentes resumos dados multidimensionais Cada tabulação cruzada é uma visão bidimensional em um cubo multidimensional. Ex: pode-se selecionar uma tabulação cruzada sobre nome_item e tamanho ou sobre cor e tamanho Mudar as dimensões do cubo se chama pivotar 13
OLAP Se o analista quiser ver uma tabulação cruzada sobre nome_item e cor, para um valor fixo de tamanho em vez da soma de todos os tamanho. Isto se chama slicing (fatiar) ou dicing. Sistemas OLAP permitem escolher granularidade. Sair da granularidade mais detalhada para mais esparsa se chama subir. Sair da agregação para o detalhamento se chama descer. Podemos gerar granularidade detalhada a partir de dados gerados exclusivamente com granularidade esparsa ? Não 14
OLAP Hierarquia Níveis de detalhes podem ser agrupados em hierarquia, dependendo do atributo. Ex: data/hora, região geográfica. . . 15
OLAP Hierarquia No exemplo das roupas, poderia-se agrupar por categorias 16
OLAP Tipos de cubos MOLAP – Olap multidimensional – usam arrays. Foram os primeiros ROLAP – Olap relacional – dados armazendados em um bd relacional HOLAP – Híbrido de MOLAP e ROLAP – armazenam parte em memória e parte em um banco de dados Originalmente, todos os dados do cubo eram calculados, levandose muito tempo na geração. Em compensação, as consultas demoravam poucos segundos. Atenção: para n atributos de dimensão, temos 2 n agrupamentos. Se considerarmos a hierarquia, este número aumenta muito. 17
OLAP Otimização O cubo pode calcular alguns agrupamentos chave. A partir destes, pode gerar os outros, ganhando tempo uma vez que nem todas as consultas podem interessar ao analista. Ex: agrupa-se por (nome_item, cor). Com este resultado em mãos, se junta com tamanho e teremos (nome_item, cor, tamanho) 18
OLAP Agregação estendida A agregação simples do SQL (padrão SQL: 92) não consegue montar todas as dimensões. Foi gerada a SQL: 1999 estende os agrupamentos de consultas. Os mais importantes são: desvio-padrão (stddev) e variância (variance). Na teoria da probabilidade e na estatística, a variância de uma variável aleatória é uma medida da sua dispersão estatística, indicando quão longe em geral os seus valores se encontram do valor esperado. O desvio padrão é a raiz quadrada da variância 19
OLAP Cube e Rollup nas consultas Select nome_item, cor, tamanho, sum(numero) From vendas Group by cube(nome_item, cor, tamanho) Produz a combinação dos itens definidos em cube (nome_item, cor, tamanho), (nome_item, cor), (nome_item, tamanho), (cor, tamanho), (nome_item), (cor), (tamanho), () () representa uma lista group by vazia 20
Bancos de dados Distribuídos 21
Banco de dados distribuídos Considerações 1) O banco de dados é armazenado em vários computadores, com características semelhantes ou não 2) Podem estar fisicamente próximos ou não, comunicando-se por redes de alta velocidade ou telefônica 3) Cada computador participante recebe o nome de NÓ ou SITE, dependendo do contexto 4) É diferente de banco de dados paralelo pois NÃO COMPARTILHA memória, discos, processadores. . . 5) Normalmente separados geograficamente, administrados separadamente e conexão mais lenta que o banco de dados paralelo Figura a seguir 22
Banco de dados distribuídos Modelo 23
Banco de dados distribuídos Transação local É aquela em que acessa dados apenas do site no qual a transação foi iniciada Transação global É aquela em que acessa dados de outros site além do qual a transação foi iniciada ou mesmo de vários sites 24
Banco de dados distribuídos Vantagens 1) Compartilhamento de dados Às vezes é necessário acessar dados de outras bases, como por exemplo um banco de dados bancário distribuído, em que cada agência armazena suas próprias informações. Ao transferir uma quantia para outra agência, os dados devem ser extraídos de sites diferentes. 2) Autonomia Ao contrário do sistema centralizado, eu fica sob a responsabilidade de um administrador único, os bancos distribuídos podem conceder autonomia a administradores (em diversos níveis). 3) Disponibilidade Em caso de falha, os sites restantes podem ser capazes de continuar operando. Imagine a situação de uma companhia áerea. E a recuperação em caso de falhas ? 25
Banco de dados distribuídos Exemplo Existem 04 agências bancárias em 04 cidades diferentes. Cada agência tem seu próprio servidor, com um BD com todos os dados da sua própria agência. Cada instalação é um considerada um site. Há também um único site que mantém informações sobre todas as agências. Cada agência mantém uma relação Conta (esquema_conta) Esquema_conta = (número_conta, nome_agência, saldo) O site contendo todas as agências do banco mantém a relação: Esquema_agencia = (nome_agencia, cidade_agencia, ativos) 26
Banco de dados distribuídos Exemplo SITE GERAL SITE 1 SITE 2 SITE 3 SITE 4 27
Banco de dados distribuídos Exemplo Caso queira somar R$ 50, 00 à conta 1234 de São Luis. Se a transação foi iniciada em São Luis, a transação é local Se a transação fosse iniciada em Itapecuru, a transação é global pois dois sites são acessados. Em um sistema ideal: 1) Os sites compartilham um esquema global comum 2) Todos os sites executariam o mesmo software 3) Talvez seja possível obter o sistema ideal, desde que o BD seja criado a partir do zero. 28
Banco de dados distribuídos Tipos de bancos de dados distribuídos Homogêneos 1) Usam mesmo software SGBD 2) Sites se conhecem e colaboram 3) Sites trocam parte da autonomia para trocas de esquemas ou software de SGBD 29
Banco de dados distribuídos Tipos de bancos de dados distribuídos Heterogêneos 1) Não precisam usar mesmo software SGBD 2) Sites podem não se conhecer 3) Oferecer cooperação limitada no processamento de transações 30
Banco de dados distribuídos Armazenamento distribuído Existem duas técnicas para armazenamento de uma relação R no BD: Replicação O sistema contém várias cópias (réplicas) armazenadas em cada site Fragmentação O sistema particiona a relação em vários fragmentos e armazena cada fragmento em um site diferente As duas técnicas acima podem ser combinadas (vários fragmentos que são replicados em diversos sites). 31
Banco de dados distribuídos Replicação Vantagens/desvantagens Disponibilidade – Se um site contém a relação R e este falhar, o outro site que contém a relação também pode prover a informação, apesar da falha Maior Paralelismo – Em caso de leituras, a chance de encontrar os dados no próprio site que originou a consulta aumenta (transação local). Diminui a troca de mensagens entre os sites. Maior sobrecarga na atualização – O sistema precisa garantir que todas as réplicas de uma relação r sejam consistentes. Sempre que r for atualizada, a atualização precisa ser propagada a todos os sites. 32
Banco de dados distribuídos Replicação Em geral, a replicação garante o bom desempenho das operações de leitura, aumentando a disponibilidade dos mesmos. Mas as atualizações levam a uma severa sobrecarga, além de dificultar o controle de concorrência, mais complexo que em um sistema centralizado. 33
Banco de dados distribuídos Fragmentação Se a relação r for fragmentada, será dividida em uma série de fragmentos: r 1, r 2. . . rn, que unidos, permitem a reconstrução da relação original r. Existem a fragmentação horizontal e a vertical. Horizontal – cada tupla de r a um ou mais fragmentos Vertical – divide a relação, decompondo o esquema R da relação r 34
Banco de dados distribuídos Fragmentação horizontal Esquema_conta = (numero_conta, nome_agencia, saldo) Cada linha abaixo é um fragmento: Conta 1 = σ nome_agencia = “Renascença” Conta 2 = σ nome_agencia = “São Francisco” A fragmentação horizontal normalmente é usada para manter as tuplas nos sites em que são mais usadas, minimizando transferência de dados. r = r 1 U r 2 … U r n Exemplo anexo 35
Banco de dados distribuídos 36
Banco de dados distribuídos 37
Banco de dados distribuídos Fragmentação vertical As chaves devem sempre ser copiadas para cada subconjunto Na fragmentação vertical, a divisão não é por lina mas por colunas. Exemplo anexo 38
Banco de dados distribuídos 39
Banco de dados distribuídos Transparência de dados O usuário de um BD distribuído não precisa saber onde os dados estão localizados fisicamente. Algumas características que podem assumir: Transparência de fragmentação – usuários não precisam saber como uma relação r foi fragmentada Transparência de replicação – Os usuários veem cada objeto de dados como logicamente exclusivos. O sistema distribuído pode replicar um objeto para aumentar o desempenho. Os usuários não precisam saber quais objetos de dados foram replicados ou onde as réplicas foram colocadas. Transparência de local – Os usuários não precisam saber a localização física dos dados. O SGBD deve ser capaz de encontrar quaisquer dados. 40
UNDB BANCO DE DADOS II Prof. Alessandro Gonçalves Alessandro. inovacao@gmail. com 41
- Slides: 41