Вы находитесь на странице: 1из 48

UNIVERSIDADEESTADUALDESANTACRUZ(UESC)

CriadapelaLei6.344,de05.12.1991, ereorganizadapelaLei6.898,de18.08.1995e pelaLei7.176,de10.09.1997

CET091 Banco de Dados II Prof. Dr. Marcelo Ossamu Honda


Departamento de Cincias Exatas e Tecnolgicas (DCET) mohonda(at)nbcgib(.)uesc(.)br

Indexao e Hashing Acesso por Chave Mltipla

Prof. Dr. Marcelo Ossamu Honda

2/48

Acesso por Chave Mltipla


Utilizar vrios ndices; ndice baseado em chaves de busca de mltiplos atributos;

Prof. Dr. Marcelo Ossamu Honda

3/48

Mltiplos ndices de Chave nica

Dado a consulta:

SELECT EMPRESTIMO_ID FROM CONTA WHERE NOME_AGENCIA = SHOPPING AND SALDO = 1000,00;

Prof. Dr. Marcelo Ossamu Honda

4/48

Mltiplos ndices de Chave nica

Trs estratgias para processar a consulta:

Usar o ndice sobre NOME_AGENCIA e encontrar todos os registros pertencentes a agncia SHOPPING;

Examinar cada um desses registros para verificar se o SALDO=1000,00;

Usar o ndice sobre SALDO para encontrar todos os registros com saldo igual a 1000,00;

Examinar cada um desses registros para verificar se o NOME_AGENCIA=SHOPPING;


5/48

Prof. Dr. Marcelo Ossamu Honda

Mltiplos ndices de Chave nica

Trs estratgias para processar a consulta (cont.):

Usar o ndice sobre NOME_AGENCIA e encontrar todos os registros pertencentes a agncia SHOPPING; Usar o ndice sobre SALDO para encontrar todos os registros com saldo maior igual a 1000,00; Calcular a interseo dos dois conjuntos de ponteiros, o qual determina os valores procurados; Essa a nica estratgia que tira proveito da existncia de vrios ndices;

Prof. Dr. Marcelo Ossamu Honda

6/48

Mltiplos ndices de Chave nica

Pode ser uma escolha fraca se:

Existem muitos registros pertencentes a agncia SHOPPING; Existem muitos registros pertencentes a contas comum saldo igual a 1000,00; Existem apenas alguns registros pertencentes a ambas as condies;

Nessas condies necessrio varrer uma grande quantidade de ponteiros para produzir resultados pequenos;
7/48

Prof. Dr. Marcelo Ossamu Honda

ndices Sobre Chaves Mltiplas

Chave de busca composta;

Chaves de busca contendo mais de um atributo (lista de atributos);

ndice sobre a chave de busca (NOME_AGENCIA,SALDO);

A ordenao dos valores da chave de busca a ordenao lexicogrfica;

basicamente o mesmo que a ordenao alfabtica;


(a1, a2) < (b1, b2) se; a1 < b1, ou; a1=b1 e a2 < b2;
8/48

Prof. Dr. Marcelo Ossamu Honda

ndices Sobre Chaves Mltiplas

ndice (NOME_AGENCIA,SALDO) podem retornar somente os registros que satisfaam ambas as condies:

SELECT EMPRESTIMO_ID FROM CONTA WHERE NOME_AGENCIA = SHOPPING AND SALDO = 1000,00

Uso de ndice separado podem resultar em menor eficincia, visto que podem retornar registros que contm somente uma das condies;
9/48

Prof. Dr. Marcelo Ossamu Honda

ndices Sobre Chaves Mltiplas

Uso eficiente:

SELECT EMPRESTIMO_ID FROM CONTA WHERE NOME_AGENCIA = SHOPPING AND SALDO < 1000,00; SELECT EMPRESTIMO_ID FROM CONTA WHERE NOME_AGENCIA = SHOPPING ;

Tambm no caso:

Prof. Dr. Marcelo Ossamu Honda

10/48

ndices Sobre Chaves Mltiplas

Uso No eficiente:

SELECT EMPRESTIMO_ID FROM CONTA WHERE NOME_AGENCIA < SHOPPING AND SALDO = 1000,00;

Vrios registros que satisfaam a primeira condio, mas no a segunda condio;

Prof. Dr. Marcelo Ossamu Honda

11/48

Chaves de Busca No Exclusivas

So chaves de buscas que podem lidar com mais de um registro combinado;

A criao de buckets de ponteiros de registros para lidar com chaves de busca no exclusivas;

Difcil implementao; Operaes extras de I/O;

Acrescentando um atributo exclusivo extra a chave de busca;

Tornar chaves de busca exclusivas;


Se o sistema admitir ids de registro; Ou um nmero que seja exclusivo entre todos os registros com o mesmo valor de chave;

Espao extra para armazenamento;


12/48

Prof. Dr. Marcelo Ossamu Honda

ndice de Cobertura

So ndices que armazenam valores de alguns atributos (fora os atributos da chave de busca) junto com os ponteiros do registro;

Armazenar valores de atributo extra til com os ndices secundrios, pois podem responder algumas perguntas usando apenas o ndice, sem sequer pesquisar os registros reais;

Prof. Dr. Marcelo Ossamu Honda

13/48

ndices Secundrios e Relocao de Registros

Algumas organizaes de arquivos (exemplo rvores B+), podem mudar o local dos registros mesmo quando os registros no foram atualizados;

Exemplo: quando uma pgina de folha dividida em uma organizao de arquivo de rvore B+;

Essa operao pode exigir muitas operaes de I/O para atualizar todos os ndices secundrios afetados;

Uma tcnica para lidar com esse problema nos ndices secundrios, no lugar de ponteiros para os registros indexados, armazenamos os valores dos atributos de chave de busca do ndice primrio;
14/48

Prof. Dr. Marcelo Ossamu Honda

ndices Secundrios e Relocao de Registros

Assim, a relocao de registros devido a divises de pgina de folha no exige qualquer atualizao sobre tal ndice secundrio;

Porm, localizar um registro usando o ndice secundrio exige duas etapas:


Primeiro, usado o ndice secundrio para encontrar os valores de chave de busca do ndice primrio; Segundo, usar o ndice primrio para encontrar os registros correspondentes;

Essa tcnica reduz o custo da atualizao de ndice embora aumente o custo do acesso aos dados, usando ndice secundrio;
15/48

Prof. Dr. Marcelo Ossamu Honda

Indexao e Hashing Hashing Esttico

Prof. Dr. Marcelo Ossamu Honda

16/48

Hashing Esttico

Desvantagem da organizao de arquivo sequencial o acesso a estrutura de ndice para localizar dados, ou uma busca binria; As organizaes de arquivo baseadas na tcnica de hashing permitem evitar o acesso a uma estrutura de ndice;

O hashing tambm oferece um modo de construir ndices; Bucket:

Indica uma unidade de armazenamento que pode armazenar um ou mais registros; Normalmente um bloco de disco;
17/48

Prof. Dr. Marcelo Ossamu Honda

Hashing Esttico

Hashing pode ser usado:

Em uma organizao de arquivo de hash, obtemos o endereo do bloco de disco contendo um registro desejado diretamente calculando uma funo sobre o valor de chave de busca do registro; Em uma organizao de ndice de hash, organizamos as chaves de busca, com seus ponteiros associados, para uma estrutura de arquivo de hash;

Prof. Dr. Marcelo Ossamu Honda

18/48

Hashing Esttico

Funo de hashing (h) uma funo para um conjunto de todos os valores de busca (K) para o conjunto de todos os endereos de bucket (B);

Para inserir um registro com chave de busca Ki, calculamos h(ki), que oferece o endereo do bucket para esse registro; Para realizar uma pesquisa sobre o valor de chave de busca Ki, simplesmente calculamos h(ki), depois pesquisamos o bucket com esse endereo;

Da mesma maneira usado para pesquisa usado para operaes de excluso e insero;

Prof. Dr. Marcelo Ossamu Honda

19/48

Hashing Esttico

Registros com diferentes chaves de busca podem ser mapeados para o mesmo bucket;

Nesses casos, temos de verificar o valor de chave de busca de cada registro no bucket para verificar se o registro o que procuramos;

Prof. Dr. Marcelo Ossamu Honda

20/48

Funes de Hash

A pior funo de hash possvel mapeia todos os valores de chave de busca para o mesmo bucket; A funo de hash ideal distribui as chaves armazenadas uniformemente por todos os buckets, de modo que cada um tenha o mesmo nmero de registros;

Prof. Dr. Marcelo Ossamu Honda

21/48

Funes de Hash

Qualidade da distribuio:

Uniforme:

A funo hash atribui a cada bucket o mesmo nmero de valores de chave de busca do conjunto de todos os valores de chave de busca possvel; No caso mais comum, cada bucket ter quase o mesmo nmero de valores atribudos a ele, independente da distribuio real dos valores de chave de busca;

Aleatria:

O valor de hash no estar relacionado a qualquer ordenao exteriormente visvel sobre os valores da chave de busca;
22/48

Prof. Dr. Marcelo Ossamu Honda

Funes de Hash

As funes hash tpicas realizam clculos sobre a representao de mquinas binrias interna dos caracteres na chave de busca; Uma funo hash simples desse tipo, primeiro calcula a soma das representaes binrias dos caracteres de uma chave, depois retorna o mdulo da soma dos nmeros dos buckets;

Prof. Dr. Marcelo Ossamu Honda

23/48

Funes de Hash

As funes hash exigem um projeto cuidadoso:

Uma funo hash errada pode resultar em um tempo de pesquisa proporcional ao nmero de chaves de busca no arquivo; Uma funo bem projetada oferece um tempo de pesquisa mdio constante (e pequeno), independente do nmero de chaves de busca no arquivo;

Prof. Dr. Marcelo Ossamu Honda

24/48

Tratamento de Estouro de Bucket

Estouro de bucket quando um bucket no tiver mais espao suficiente; Motivos para estouro de bucket:

Bucket insuficientes:

O nmero de buckets deve ser suficiente para armazenar o nmero total de registros pelo nmero de registros que podem ser armazenados em um bucket; Quando armazenado mais registros em um determinado bucket do que nos demais;

Distoro:

Vrios registros com mesma chave de busca; Distribuio no uniforme pela funo hash;

Prof. Dr. Marcelo Ossamu Honda

25/48

Tratamento de Estouro de Bucket

Para determinar a probabilidade de estouro de bucket:

( nr / fr ) * ( 1 + d ), onde:

nr o nmero total de registros; fr o nmero de registros suportado por um bucket; d o fator de fudge, normalmente 0,2; Mas diminui a probabilidade de estouro;

Espao estra nos baldes;

Prof. Dr. Marcelo Ossamu Honda

26/48

Tratamento de Estouro de Bucket

Buckets de estouro;

Usados para tratar o estouro de bucket;

Todos os buckets de estouro de determinado bucket so encadeados em uma lista interligada; Chamado de encadeamento de estouro;
27/48

Prof. Dr. Marcelo Ossamu Honda

Tratamento de Estouro de Bucket

Hashing fechado;

Quando existe bucket de estouro, como descrito; Usual em banco de dados;

Facilidades em operaes de excluso de registros;

Hashing aberto:

Conjunto de buckets fixo; Quando um bucket estiver cheio, o sistema insere registros em algum outro bucket no conjunto inicial de buckets;

Politica usual de inserir no prximo bucket, chamada de sonda linear;

Facilidade em incluso de registros;

Prof. Dr. Marcelo Ossamu Honda

28/48

ndices de Hash

O hashing pode ser usado no apenas para organizao de arquivo, mas tambm para criao da estrutura de ndice; Um ndice de hash organiza as chaves de busca, com seus ponteiros associados em uma estrutura de arquivo de hash; aplicado uma funo hash sobre uma chave de busca para identificar um bucket;

armazenado a chave e seus ponteiros associados no bucket, ou em buckets de estouro;


29/48

Prof. Dr. Marcelo Ossamu Honda

ndices de Hash

ndice de hash;

O termo indica as estrutura de arquivo alm de ndices de hash secundrios;


Estritamente, os ndices de hash so apenas estruturas de ndice secundrias: Um ndice de hash nunca necessrio como uma estrutura de ndice agrupado;

Se um arquivo j estiver organizado por hashing, no ser necessria uma estrutura de ndice de hash separada sobre este arquivo; Mas podemos utilizar um arquivo organizado de hashing tambm possuindo um ndice de hash agrupado;
30/48

Prof. Dr. Marcelo Ossamu Honda

Indexao e Hashing Hashing Dinmico

Prof. Dr. Marcelo Ossamu Honda

31/48

Hashing Dinmico

So tcnicas que permitem que a funo de hash seja modificada dinamicamente para acomodar o crescimento ou encolhimento do banco de dados; Usando hashing esttico, temos as opes:

Escolha uma funo hash com base no tamanho do arquivo atual, depreciando o desempenho quando o banco de dados crescer: Escolha uma funo hash com base no tamanho antecipado do arquivo em algum tempo futuro, alocando espao extra inicialmente; Reorganizao peridica da estrutura de hash em resposta ao crescimento do arquivo;

Escolha de nova funo hash, recalculo da nova funo hash e gerando novas organizao dos buckets;

Operao demorada e necessita de lock no banco;


32/48

Prof. Dr. Marcelo Ossamu Honda

Estrutura de Dados

O hashing extensvel lida com as mudanas no tamanho do banco de dados, dividindo e unindo os buckets enquanto o banco de dados cresce;

Mantem a eficincia de espao alocado; Como a reorganizao realizada somente em um bucket de cada vez, a sobrecarga resultante no desempenho aceitavelmente baixa;

Prof. Dr. Marcelo Ossamu Honda

33/48

Estrutura de Dados

Com o hash extensvel, escolhemos uma funo de hash h com as propriedades desejveis de uniformidade e aleatoriedade;

Porm, essa funo de hash gera valores por um intervalo relativamente grande;

Inteiros binrios de b bits, sendo um valor tpico de b 32, o que seria 232 mais de 4 bilhes; No usado os b bits inteiros de hash inicialmente;

usado i bits, onde: 0 i b;

Esses i bits so usados como um deslocamento para uma tabela adicional de endereos de buckets;

O valor de i cresce e encurta com o tamanho do banco de dados;


34/48

Prof. Dr. Marcelo Ossamu Honda

Estrutura de Dados

O i que aparece acima da tabela de endereos de buckets indica que i bits do valor de hash h(k) so necessrios para determinar o bucket correto para k; Esse nmero mudar de acordo com o tamanho do arquivo; Embora i bits sejam necessrios para encontrar a entrada correta na tabela de endereos de bucket, vrias entradas de tabela consecutivas podem apontar para o mesmo bucket;

Prof. Dr. Marcelo Ossamu Honda

35/48

Consultas e Atualizaes

Prof. Dr. Marcelo Ossamu Honda

36/48

Hashing Esttico X Hashing Dinmico

Hash extensvel vantagem:


Desempenho no diminui quando o arquivo aumenta; Sobrecarga mnima de espao; Embora a tabela de endereos de buckets gere uma sobrecarga adicional, contm um ponteiro de para cada valor de hash para o tamanho de prefixo atual; Nenhum bucket precisa ser reservado para crescimento futuro:

Buckets podem ser alocados dinamicamente;

Prof. Dr. Marcelo Ossamu Honda

37/48

Hashing Esttico X Hashing Dinmico

Hash extensvel desvantagem:

A pesquisa envolve um nvel de indireo adicional;

O sistema precisa acessar a tabela de endereos de bucket antes de acessar o prprio bucket;

Hash extensvel:

Tcnica altamente atraente;

Quando aceitvel a complexidade adicional envolvida na implementao;

Prof. Dr. Marcelo Ossamu Honda

38/48

Indexao e Hashing Indexao Ordenada X Hashing

Prof. Dr. Marcelo Ossamu Honda

39/48

Indexao Ordenada X Hashing

Considerar as questes:

O custo da reorganizao peridica da organizao de ndice ou hash aceitvel? Qual a frequncia relativa de insero ou excluso? desejvel otimizar o tempo mdio de acesso as custas de aumentar o tempo de acesso no pior caso? Que tipo de consultas os usurios provavelmente realizaram?
40/48

Prof. Dr. Marcelo Ossamu Honda

Indexao Ordenada X Hashing

Indexao ordenada, a menos que se saiba com antecedncia que as consultas de intervalos sero pouco frequentes, quando seria escolhido o hashing; As organizaes de hash so particularmente teis para arquivos temporrios criados durante o processamento da consulta, se as pesquisas baseadas em um valor de chave forem exigidas, mas nenhuma consulta de intervalo ser realizada;

Prof. Dr. Marcelo Ossamu Honda

41/48

Indexao e Hashing ndices de Mapa de Bits

Prof. Dr. Marcelo Ossamu Honda

42/48

ndices de Mapa de Bits

So um tipo especializado de ndice projetado para facilitar a consulta sobre chaves mltiplas;

Embora cada ndice de mapa de bits seja baseado em uma nica chave;

Os registros em uma relao precisam ser numerados sequencialmente;

Particularmente fcil de se conseguir se os registros tiverem tamanho fixo e alocados em blocos consecutivos de um arquivo;

O nmero de registro pode ser traduzido para um nmero de bloco e um nmero de bloco que identifica o registro dentro do bloco;

Prof. Dr. Marcelo Ossamu Honda

43/48

ndices de Mapa de Bits

Prof. Dr. Marcelo Ossamu Honda

44/48

Estrutura de ndice de Mapa de Bits

Um mapa de bits simplesmente um array de bits;

Em sua forma mais simples, um ndice de mapa de bits sobre o atributo A da relao r consiste em um mapa de bits para cada valor que A pode assumir; Cada mapa de bits possui tantos bits quanto quanto o nmero de registros da relao; Os ndices de mapa de bits so teis para selees principalmente quando existem selees sobre chaves mltiplas;

Se a frao for grande, a varredura da relao continua sendo a alternativa mais barata;

Importante estratgia quando se quer determinar o nmero de tuplas que satisfaz determinada restrio;

Prof. Dr. Marcelo Ossamu Honda

45/48

Estrutura de ndice de Mapa de Bits

Um mapa de bits geralmente no passa de uma frao do tamanho real da relao; A excluso de registros cria lacunas nas sequencias de registros, pois seria dispendioso;

Mapa de bits de existncia;

Prof. Dr. Marcelo Ossamu Honda

46/48

Mapa de Bits e rvores B

Os mapas de bits podem ser combinados com os ndices normais de rvores B+ ;

Para relaes em que alguns valores de atributo so extremamente comuns; E tambm, para valores com um frequncia muito baixa;

Prof. Dr. Marcelo Ossamu Honda

47/48

Referncias

[ELMSARI-2005] Ramez Elmasri e Shamkant B, Navathe, Sistemas de Banco de Dados, Pearson Addison Wesley, 2005; [SILBERSCHATZ-2006] Abraham Silverschatz, Henry F. Korth e S. Sudarshan, Sistema de Banco de Dados, Editora Campus, 2006;

Prof. Dr. Marcelo Ossamu Honda

48/48

Вам также может понравиться