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

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

Prof. Dr. Marcelo Ossamu Honda

2/73

Conceitos Bsicos

Mecanismos de ndex so usados para acelerar o processo de busca de um dado;

Exemplo: ndice no final de livro; Atributo ou conjunto de atributos utilizados para pesquisar registros em um arquivo;

Chave de busca:

Diferente definio de Chave Primria, Candidata, etc;

Arquivo ndices:

Registros de ndices;

So os registros na seguinte estrutura;

Prof. Dr. Marcelo Ossamu Honda

3/73

Conceitos Bsicos

Arquivo ndices:

Muito menores que os arquivos originais; ndices ordenados:

Tipos bsicos:

Chave de busca so armazenadas ordenadamente; Chave de busca so distribudas uniformemente em buckets de acordo com um funo hash;

ndices Hash:

Prof. Dr. Marcelo Ossamu Honda

4/73

Mtrica de Avaliao

Tipos de acesso:

Localizao de registros;

Valor de atributo especfico; Valores de atributos se encontrem em um intervalo;

Localizao de registros;

Medidas:

Tempo de acesso; Tempo para inserir novo registro; Tempo para apagar registro existente; Espao extra (overhead);
5/73

Prof. Dr. Marcelo Ossamu Honda

Tabelas e Estrutura de Dados (CREATE INDEX)

Prof. Dr. Marcelo Ossamu Honda

6/73

Oracle CREATE INDEX

Estruturas que permitem uma recuperao rpida de dados; Colunas simples ou grupos de colunas podem ser indexados;

Um ndice pode conter at 16 colunas; Exemplo


A organizao das colunas afeta a eficincia:

ndice composto pelas colunas 1, 2 e 3; Somente as consultas que acessem as colunas 1, 2 e 3 ou 1 e 2 ou 1;

Clusula WHERE estaro utilizando o ndice;

Prof. Dr. Marcelo Ossamu Honda

7/73

Oracle CREATE INDEX

Convm criarmos ndices para colunas que, dentre outras caractersticas:


Pesquisas frequentes; Chave estrangeira; Colunas utilizadas regularmente em joins; Colunas usadas com frequncia em clusulas WHERE; Demanda de pesquisas em intervalo grande;
8/73

Prof. Dr. Marcelo Ossamu Honda

Oracle CREATE INDEX

No convm criarmos ndices:


Se a tabela pequena; Tabela alterada com frequncia; Retorno de uma consulta for muito alta: Exemplo: uma coluna somente com dois valores (Masculino e Feminino);

Prof. Dr. Marcelo Ossamu Honda

9/73

Oracle CREATE INDEX


Nome do ndice Campo(s), poderia ser ordenado DESC Tabela indexada

Prof. Dr. Marcelo Ossamu Honda

10/73

Oracle CREATE INDEX

UNIQUE:

Opcional e define que para aquela coluna no existiro valores duplicados;

Prof. Dr. Marcelo Ossamu Honda

11/73

Oracle DROP INDEX


Comando para eliminarmos somente o ndice; Qualquer ndice de uma tabela eliminado automaticamente quando a tabela eliminada; A tabela ou viso onde foi criado o ndice no afetada pela sua eliminao; O ndice no pode ser alterado, para modificlo preciso excludo e depois inclu-lo novamente;
12/73

Prof. Dr. Marcelo Ossamu Honda

Oracle DROP INDEX

Prof. Dr. Marcelo Ossamu Honda

13/73

Oracle INDEX

Recuperando informaes sobre os ndices;

Prof. Dr. Marcelo Ossamu Honda

14/73

Oracle - Hints

INDEX Hints:

/* comment */

Todos os hints usam o sinal: + SELECT /*+{hint} */ ........ ;

Utilizado informar ao Sistema Gerenciador de Banco Oracle, caractersticas dos dados ou aplicao;

Plano de Execuo de Consultas (estatstico);

Pode estar desatualizado;

Pode ser usado:

SELECT, DELETE e UPDATE;

Prof. Dr. Marcelo Ossamu Honda

15/73

Oracle - Hints

INDEX Hints:

CREATE INDEX idx_customers_id ON customers(cust_id); SELECT * FROM customers WHERE cust_id = 99999; SELECT /*+ INDEX_ASC(customers idx_customers_id) */ * FROM customers WHERE cust_id=99999;
16/73

Prof. Dr. Marcelo Ossamu Honda

Oracle - Hints

INDEX Hints:

INDEX; INDEX_ASC; INDEX_DESC; INDEX_FFS;

Processa uma varredura total utilizando ndices;


Estratgia: leitura somente das folhas; Sada ordenada: ORDER BY;

Prof. Dr. Marcelo Ossamu Honda

17/73

Oracle - Hints

INDEX Hints:

INDEX_JOIN:

Utilizado para combinar vrios ndices; Combinar as tabelas, sem acessa-las propriamente dito; Utilizado para combinar vrios ndices de mapa de bits em operaes booleanas;

INDEX_COMBINE;

Grandes consultas:

SELECT /*+ INDEX_COMBINE(e geo_dmnsn_idx proft_dmnsn_idx) */ * FROM fact_trans_amt WHERE (geo_id = 108 OR proft_ctr_id = 110);

Prof. Dr. Marcelo Ossamu Honda

18/73

Oracle - Hints

INDEX Hints:

FULL;

Ignora os ndices, realizando uma leitura completa das tabelas; Especifica quais ndices no podem ser utilizados;

NO_INDEX;

Prof. Dr. Marcelo Ossamu Honda

19/73

ndices Ordenados

ndices Ordenados:

Estrutura de ndice est associada a uma chave de busca; ndice Ordenado armazena os valores das chaves de busca em ordem classificada e associada a cada chave de busca os registros que a contem; Os prprios registros no arquivo indexado podem ser armazenados em alguma ordem classificada; Um arquivo pode ter vrios ndices em diferentes chaves de busca;
20/73

Prof. Dr. Marcelo Ossamu Honda

ndices Ordenados

ndice Primrio / Agrupamento:

um ndice cuja chave de busca tambm define a ordem sequencial do arquivo; Pode ser como base qualquer chave de busca;

Normalmente utilizado a chave primria; Mas, no somente sobre a chave primria;

ndice Secundrio / No Agrupamento:

Os ndices cuja chave de busca especifica uma ordem diferente da ordem sequencial do arquivo;
21/73

Prof. Dr. Marcelo Ossamu Honda

ndices Ordenados

Arquivos Sequencialmente Indexados:

Arquivos ordenados sequencialmente por uma chave de busca; Projetados para aplicaes:

Processamento sequencial do arquivo; Acesso aleatrio a registros individuais;

Prof. Dr. Marcelo Ossamu Honda

22/73

ndices Densos e Esparsos

Registro de ndice ou Entrada de ndice:


Consiste de chave de busca; Ponteiros para um ou mais registros com os valores;

O ponteiro para o registro consiste em um identificador de um bloco de disco e um deslocamento dentro do bloco de disco;

Prof. Dr. Marcelo Ossamu Honda

23/73

ndice Denso

Um registro de ndice aparece para cada valor da chave de busca no arquivo;

O registro de ndice contem o valor para o primeiro registro de dados com o valor em especfico;

Como ndice agrupado, os registros so classificados sobre a mesma chave de busca;

Prof. Dr. Marcelo Ossamu Honda

24/73

ndice Esparso

Os registros de ndice aparece somente para alguns dos valores da chave de busca;

Como no ndice Denso, os registros so classificados sobre a mesma chave de busca; Busca:

Encontrar a entrada de ndice com o maior valor de chave de busca;

Menor ou igual ao valor que estamos procurando;

Buscar sequencialmente no arquivo o registro procurado;

Prof. Dr. Marcelo Ossamu Honda

25/73

ndice Esparso

Prof. Dr. Marcelo Ossamu Honda

26/73

Comparao ndice Denso X ndice Esparso

ndice Denso:

Rpido para localizar um registro; Menor espao; Menor sobrecarga (Incluses e Excluses);

ndice Esparso:

Prof. Dr. Marcelo Ossamu Honda

27/73

Comparao ndice Denso X ndice Esparso

Melhor soluo:

ndice Esparso com uma entrada de ndice de bloco

Usando esse ndice esparso, localizado o bloco que contm o registro;

Uma vez em memria o tempo mnimo para varrer todo o bloco; Quando os dados estiverem em um bloco de estouro;

Problema:

Prof. Dr. Marcelo Ossamu Honda

28/73

ndices Multinveis

Quando o ndice primrio no mais pequeno o suficiente para ser mantido na memria principal;

O ndice deve ser mantido como arquivos sequenciais em disco; O processo de busca de um ndice grande pode ser dispendioso; Tratamos o ndice primrio como qualquer outro arquivo sequencial em disco; Definimos um ndice esparso sogre o ndice agrupado;

Soluo:

Prof. Dr. Marcelo Ossamu Honda

29/73

ndices Multinveis

Todos os nveis devem ser atualizados quando se tem uma transao de incluses e excluses de registros;

Prof. Dr. Marcelo Ossamu Honda

30/73

Atualizao do ndice

Independentemente da forma com que o ndice utilizado, cada ndice precisa ser atualizado sempre que um registro inserido ou excludo do arquivo;

Prof. Dr. Marcelo Ossamu Honda

31/73

Atualizao do ndice - Excluso

pesquisado o registro a ser excludo;

ndices Densos:

Se o registro excludo for o nico registro com seu valor especfico de chave de busca:

Ento o sistema retira o registro de ndice correspondente; Se o registro de ndice armazena ponteiros para todos os registros com o mesmo valor de chave de ndice: O sistema exclui do registro de ndice o ponteiro para o registro excludo; O registro de ndice armazena ponteiros somente para o primeiro registro com o valor da chave de busca: Se o registro a ser excludo for o primeiro registro com o valor da chave de busca, o sistema atualiza o registro de ndice para que aponte para o prximo registro;

Caso contrrio:

Prof. Dr. Marcelo Ossamu Honda

32/73

Atualizao do ndice - Excluso

pesquisado o registro a ser excludo;

ndices Esparsos:

Se o ndice no tiver um registro de ndice com o valor de chave de busca do registro excludo:

Nada precisa ser feito com o ndice; Se o registro excludo for nico registro com sua chave de busca: O sistema substitui o registro de ndice correspondente para o prximo valor da chave de busca; Se o prximo j tiver uma entrada de ndice, ento a entrada excluda; O sistema atualiza o registro de ndice para que aponte para o prximo com o mesmo valor da chave de busca;

Caso contrrio:

Prof. Dr. Marcelo Ossamu Honda

33/73

Atualizao do ndice - Insero

Insero em ndices de nico nvel:

O sistema realiza uma pesquisa usando o valor de chave de busca que aparece no registro a ser inserido; ndices Densos:

Se o valor da chave de busca no aparece no ndice;

O sistema insere um registro de ndice, na posio apropriada; Se o registro de ndice armazena ponteiro para todos os registros com o mesmo valor: O sistema acrescenta um ponteiro para o novo registro; Caso contrrio: O sistema acrescenta o registro sendo inserido aps os outros registros com o mesmos valores de chave de busca;

Caso contrrio:

Prof. Dr. Marcelo Ossamu Honda

34/73

Atualizao do ndice - Insero

Insero em ndices de nico nvel:

ndices Esparsos:

Se um novo bloco criado:

Insere no ndice o primeiro valor de chave de busca que aparece no novo bloco; Se o novo registro tiver o menor valor de chave de busca em seu bloco: O sistema atualiza a entrada de ndice apontado para o bloco; Caso contrrio: O sistema no faz qualquer mudana no ndice;
35/73

Caso contrrio:

Prof. Dr. Marcelo Ossamu Honda

Atualizao do ndice Insero / Excluso

ndices Multinvel:

Os algoritmos so uma extenso simples do esquemas vistos;


O sistema atualiza o nvel mais baixo como visto; Ao segundo nvel:

O ndice de menor nvel simplesmente um arquivo contendo registros; Caso ocorra qualquer mudana no ndice de menor nvel: O sistema atualiza o ndice de segundo nvel;

Assim sucessivamente, no caso de outros nveis;

Prof. Dr. Marcelo Ossamu Honda

36/73

ndices Secundrios

Frequentemente, pesquisamos todos os registros que os valores de um determinado campo satisfaam certas condies;

Esses campos no fazendo parte dos ndice primrio;

ndices Secundrios podem indexar outros valores de busca;

Prof. Dr. Marcelo Ossamu Honda

37/73

ndices Secundrios

ndices Secundrios precisam ser ndices densos;

ndices Secundrios precisa ter ponteiros para todos registros;

No chave candidata:

Os registros restantes, com o mesmo valor de chave de busca, podem estar em qualquer lugar do arquivo;

Prof. Dr. Marcelo Ossamu Honda

38/73

ndices Secundrios

Nvel extra de indireo:

Usado para implementar ndices secundrios sobre chaves de busca que no so chaves candidatas; O ponteiro nesse caso no apontam diretamente para o arquivo;

Cada um aponta para um bucket que contm ponteiros para o arquivo;

Prof. Dr. Marcelo Ossamu Honda

39/73

ndices Secundrios

Prof. Dr. Marcelo Ossamu Honda

40/73

ndices Secundrios

Insero / Excluso:

Segue o modelo descritas para ndices densos; Se um arquivo tiver vrios ndices, sempre que o arquivo for modificado, cada ndice ter de ser atualizado;

Prof. Dr. Marcelo Ossamu Honda

41/73

ndices Secundrios

Melhoram o desempenho das consultas que usam chaves diferentes da chave de busca do ndice agrupado; Impem sobrecarga nas transaes de incluso e excluso; Buscas sequenciais usando ndices primrios so eficiente, mas buscas sequenciais usando ndices secundrios so exaustivos; Deve ser implementado com base em uma estimativa da frequncia relativa das consultas e modificaes.
42/73

Prof. Dr. Marcelo Ossamu Honda

Arquivos de ndice de rvore B

Comparao com a organizao de arquivo sequencial:

A principal desvantagem que o desempenho diminui enquanto o arquivo cresce:


Para pesquisas de ndice; Buscas sequenciais de dados; Necessitam de uma reorganizaes peridicas dos arquivos;

Prof. Dr. Marcelo Ossamu Honda

43/73

Arquivos de ndice de rvore B

a estrutura de ndice mais utilizada;


Forma de uma rvore balanceada; Cada n no-folha na rvore tem entre [n/2] e n filhos;

Onde n fixo para uma rvore particular;

Prof. Dr. Marcelo Ossamu Honda

44/73

Arquivos de ndice de rvore B

Vantagens:

Mantem eficincia mesmo com insero e excluso de dados; No necessitam de reorganizaes dos arquivos para manter o desempenho; Overhead para insero e excluso; Overhead de armazenamento;

Desvantagens (aceitveis):

Podem conter ns vazios;


45/73

Prof. Dr. Marcelo Ossamu Honda

Estrutura de uma rvore B

Um ndice de rvore B+ um ndice multinvel, mas tem uma estrutura diferente dos arquivos sequenciais indexado multinvel; N tpico de uma rvore B :

Os valores de chave de busca dentro de um n so mantidos em ordem classificada;

A estrutura de bucket usada somente se a chave de busca no formar uma chave candidata e se arquivo no for classificado na ordem de valor da chave de busca;

Prof. Dr. Marcelo Ossamu Honda

46/73

Estrutura de uma rvore B

N tpico de uma rvore B+:

Sendo:

P: possui n ponteiros de rvore; K: possui n-1 valores de chave de busca;

Prof. Dr. Marcelo Ossamu Honda

47/73

Estrutura de uma rvore B

N de folha de uma rvore B+:


Sendo n = 3; Como o arquivo conta ordenado por nome_agencia, os ponteiros no n folha apontam diretamente para o arquivo;

Prof. Dr. Marcelo Ossamu Honda

48/73

Estrutura de uma rvore B

Cada folha pode manter:


Pode manter n 1 valores; Os ns de folha contenham pelo menos [( n-1)/2] valores; Os intervalos de valores em cada folha no se sobrepem; Se o ndice da rvore B+ tiver de ser um ndice denso, cada valor de chave de busca precisa aparecer em algum n de folha;
49/73

Prof. Dr. Marcelo Ossamu Honda

Estrutura de uma rvore B

O ponteiro P:

Como existe uma ordem linear nas folhas, com base nos valores de chave de busca que elas contm; P pode encadear os ns de folha na ordem da chave de busca;

Permite o processamento sequencial eficiente do arquivo;

Prof. Dr. Marcelo Ossamu Honda

50/73

Estrutura de uma rvore B

Os ns no-folha da rvore B+:

Formam um ndice multinvel (esparso) sobre os ns de folha; A estrutura dos ns no-folha igual a dos ns da folha, exceto que todos os ponteiros so para ns de folha; Um n no-folha pode manter at n ponteiros;

E ao menos [ n / 2 ] ponteiros;

O nmero de ponteiros em um n chamado de fanout do n;


51/73

Prof. Dr. Marcelo Ossamu Honda

Estrutura de uma rvore B

Os n raiz da rvore B+:

Pode manter menos de [ n / 2 ] ponteiros;


Porm, precisa manter pelo menos dois ponteiros; A menos que a rvore tenha apena 1 n;

possvel construir uma rvore para qualquer n;

Prof. Dr. Marcelo Ossamu Honda

52/73

Estrutura de uma rvore B

Exemplo de n = 3:

Para simplificar foram omitidos:


Ponteiros do prprio arquivo; Ponteiros nulos;

Prof. Dr. Marcelo Ossamu Honda

53/73

Estrutura de uma rvore B

Exemplo de n = 5:

Para simplificar foram omitidos:


Ponteiros do prprio arquivo; Ponteiros nulos;

Prof. Dr. Marcelo Ossamu Honda

54/73

Estrutura de uma rvore B

Os exemplos esto balanceados;

O tamanho de cada caminho da raiz para o n de folha igual; Requisito para uma rvore B+;

Onde B de balanceado; Balanceamento que garante o bom desempenho;


Busca; Insero; Excluso;

Prof. Dr. Marcelo Ossamu Honda

55/73

Consultas em rvores B

Busca nvel por nvel; Buscando por valores de busca;

Utilizando o n de onde foi determinado o valor de busca;

Prof. Dr. Marcelo Ossamu Honda

56/73

Consultas em rvores B

Um n geralmente do mesmo tamanho do bloco de disco;


Usualmente 4 kilobytes; Usualmente n e em torno de 100;

Prof. Dr. Marcelo Ossamu Honda

57/73

Atualizaes em rvores B

Insero:

Buscar o n de folha, como utilizado em pesquisa; Se houver uma diviso:


Insira o novo n no pai do n; Se essa insero causar uma diviso:

Aplique recursivamente pela rvore at que uma insero no cause uma diviso ou uma nova raiz seja criada;

Prof. Dr. Marcelo Ossamu Honda

58/73

Atualizaes em rvores B

Insero:

Prof. Dr. Marcelo Ossamu Honda

59/73

Atualizaes em rvores B

Excluso:

Buscar o n de folha, como utilizado em pesquisa; Se o n for muito pequeno, excludo do seu n pai;

Essa excluso resulta na aplicao recursiva do algoritmo de excluso at que a raiz seja alcanada; Um n pai permanece adequadamente cheio aps a excluso;

Ou aps a redistribuio;

Prof. Dr. Marcelo Ossamu Honda

60/73

Atualizaes em rvores B

Excluso:

Prof. Dr. Marcelo Ossamu Honda

61/73

Organizao de Arquivos de + rvores B

Problemas:

ndice de Arquivos:

Resolvido utilizando ndices de rvores B+; Resolvido utilizando organizao de Arquivos de rvores B+;

Registros em Arquivos:

Os ns de folha da rvore armazenam registros;

Em vez de ponteiros para registros;


62/73

Prof. Dr. Marcelo Ossamu Honda

Organizao de Arquivos de + rvores B

Os ns de folha precisam estar cheios pelo menos at a metade;

Como os registro so maiores que os ponteiros;

O nmero de registros que podem ser armazenados em um n folha menor que o nmero de ponteiros em um n no-folha;

A insero e a excluso de registros;

Ocorre da mesma maneira de ndices em rvore B +;

Prof. Dr. Marcelo Ossamu Honda

63/73

Organizao de Arquivos de + rvores B

Utilizao do espaos importante ponto;

Pois registros ocupam mais espao que ponteiros;

Para melhora a utilizao de espaos utilizado mais ns (mesmo nvel) na redistribuio durante as divises e mesclagens;

Prof. Dr. Marcelo Ossamu Honda

64/73

Organizao de Arquivos de + rvores B

Exemplo:

Prof. Dr. Marcelo Ossamu Honda

65/73

Indexando Strings

Problemas:

As strings podem ter tamanho variado;


Gerando chaves de busca de tamanho variado; Diferentes ns podem ter diferentes fanout;

Mesmos que estejam cheios;

As strings podem ser longas:


Baixo fanout; Altura de rvore maior;

Prof. Dr. Marcelo Ossamu Honda

66/73

Indexando Strings

Compactao de prefixo:

No armazenado o valor inteiro da chave de busca nos ns internos; S armazenado um prefixo de cada valor de chave de busca que seja suficiente para distinguir entre os valores de chave nas subrvores que ela separa; Exemplo:

Marcela, Marcello e Marcelo; Pode utilizar o prefixo Marcel;


67/73

Prof. Dr. Marcelo Ossamu Honda

Arquivos de ndice de rvore B

Semelhante as rvores B+, mas rvore B elimina o armazenamento redundante de valores de chave de busca;

Nas rvores B+, cada valor de chave de busca aparece em algum n de folha;

Vrias so repetidas no ns no folha;

Como as chaves de busca no so repetidas na rvore B, podemos armazenar o ndice em menos ns de rvore;

Necessrio um campo ponteiro adicional para cada chave de busca em n no folha;

Apontam para os registros de arquivo ou buckets para chave associada;

Prof. Dr. Marcelo Ossamu Honda

68/73

Arquivos de ndice de rvore B

Prof. Dr. Marcelo Ossamu Honda

69/73

Arquivos de ndice de rvore B


P: ponteiros de rvore; K: valores de chave de busca; B: ponteiros de bucket ou registro de arquivos;

Prof. Dr. Marcelo Ossamu Honda

70/73

Arquivos de ndice de rvore B

Excluso:

mais complexo do que as rvores B+;

A entrada excluda sempre aparece em uma folha; A entrada excluda pode aparecer em um n no-folha; O valor correto precisa ser selecionado como um substituto a partir da subrvore do n contendo a entrada excluda;

Em uma rvore B:

Principalmente se a chave de busca ki for excluda;

Prof. Dr. Marcelo Ossamu Honda

71/73

Arquivos de ndice de rvore B

Vantagens do ndice de rvore B:


Pode ter menos ns que a rvore B+; Algumas vezes, possvel determinar o valor de busca antes de chegar ao ltimo n; Somente uma pequena frao dos valores de busca podem ser determinados precocemente; Fanout reduzido (grandes ns intermedirios); Complexo para tratar operaes;
72/73

Desvantagens do ndice de rvore B:

Prof. Dr. Marcelo Ossamu Honda

Referncias

KORTH, H. F., SILBERSCHATZ, A. Sistema de Banco de Dados, Makron Books DATE, C. J. Introduo a Sistemas de Banco de Dados. Traduo da 7. Edio Americana. Editora Campus. DATE, C.J. Bancos de Dados, Tpicos Avanados, Editora Campus GARCIA-MOLINA, H. ULLMAN, J.D., WIDOM, J. Implementao de Sistemas de Bancos de Dados. Editora Campus Manuais Tcnicos e Livros voltados para Bancos de Dados especficos.
73/73

Prof. Dr. Marcelo Ossamu Honda

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