Vous êtes sur la page 1sur 118

UNIVERSIDADE FEDERAL DE ITAJUB

Laboratrio de Banco de Dados


SIT 420

Indexao Aula 9

Vanessa Cristina Oliveira de Souza

Introduo

O usurio de um sistema de banco de dados est normalmente interessado no desempenho do sistema. Quo rpido esse sistema responde a uma requisio desse usurio? Portanto, o fator principal de satisfao (ou de insatisfao) o desempenho da base de dados se o tempo de resposta a uma consulta grande demais, o sistema desvalorizado.

Introduo

A performance do sistema de base de dados depende:


Da

eficincia das estruturas computacionais usadas para representar os dados na base e, como o sistema eficientemente capaz de operar nessas estruturas de dados.

De

Gerenciador de Arquivos

Componente funcional de um SGBD que gerencia a alocao do espao na armazenagem do disco e as estruturas de dados usadas para representar a informao armazenada no disco.

Gerenciador de Buffer

Componente funcional de um SGBD responsvel pela transferncia de informaes entre o disco de armazenagem e a memria principal.

UNIVERSIDADE FEDERAL DE ITAJUB

ORGANIZAO DE ARQUIVOS
CONCEITOS BSICOS

Arquivo de dados

Estrutura de dados que armazena o banco de dados propriamente dito.

Estrutura de um arquivo.

Operaes bsicas sobre arquivos

Insero
Adio

de um registro no arquivo

Alterao
Corresponde

a localizao (consulta) de determinado registro, a alterao de um ou mais de seus atributos e atualizao

Excluso
Eliminao

de um registro do arquivo

Operaes bsicas sobre arquivos

Consulta
Localizao

de um registro no arquivo.

Reorganizao/Ordenao
Dependendo

da organizao de arquivos utilizada necessrio reorganizar ou ordenar os registros, facilitando a sua manipulao.

Registros Lgicos x Registros Fsicos

O registro lgico corresponde s instncias (objetos) do mundo real, cujos atributos so representados pelos campos. Estes registros que so manipulados pelos programas (sistemas) de aplicao. O registro fsico corresponde organizao fsica onde as informaes so armazenadas (no HD, setores).

Organizao de Arquivos

Organizar um arquivo significa relacionar (mapear) a estrutura lgica e a estrutura fsica de um arquivo.

Mapeamento entre estrutura fsica e lgica.

Organizao de Arquivos

A organizao de arquivo trata do arranjo ou a forma de distribuio dos registros dentro do arquivo, objetivando agilizar o processo de armazenamento e recuperao de dados.

Arquivos Sequenciais

Em um arquivo sequencial, os registros so dispostos ordenadamente, obedecendo sequncia determinada por uma chave primria, chamada de chave de ordenao.

Arquivos Sequenciais

Para permitir uma recuperao rpida de registros na ordem da chave de busca, os registros so encadeados por ponteiros. O ponteiro em cada registro aponta para o prximo registro na ordem da chave de busca.

Arquivos Sequenciais

1 3 2 5 3 10 4 12 5 30 6 50

Ademar Roberto Gerson Yeda Bernardo ngela

32 25 43 23 21 29

5000 7500 6000 9000 4500 5000 Overflow

Arquivos Sequenciais

Vantagem: Acesso sequencial de conjunto de dados o mais rpido.

um

til quando preciso processar quase todos os elementos. Desvantagens: Incluso extremamente custosa. e Excluso

Arquivos Sequenciais
Exemplo de Insero
Ademar 32 5000

5
10 12

Roberto
Gerson Yeda

25
43 23

7500
6000 9000

30
50 15

Bernardo
ngela Vanessa

21
29 28

4500
5000 6000 Overflow

Inserir o registro de chave de ordenao 15.

Arquivos Sequenciais Consultas

Acesso serial (ou sequencial):

consiste na obteno do prximo registro, segundo a chave de ordenao. Este tipo de acesso extremamente eficiente por estarem os registros fisicamente armazenados de acordo com a sequncia que solicitada. O argumento de pesquisa comparado com cada registro lido de forma seqencial.

Arquivos Sequenciais Consultas

Busca Binria

Divide-se o arquivo pela metade e compara-se o argumento de pesquisa com o registro da diviso. Se este no for o registro desejado, determina-se para qual metade se far a prxima diviso (compara se o argumento de pesquisa maior ou menor que o registro da diviso), e novamente se faz a comparao com o registro divisor e assim sucessivamente.

UNIVERSIDADE FEDERAL DE ITAJUB

INDEXAO

Indexao Problema

Indexao Problema

Tempo para encontrar o livro aumenta significativamente com o nmero de livros que se tem na biblioteca em questo. Soluo:
Um

catlogo, organizado de alguma forma (por autor, por ttulo, ...) que diga onde encontrar o livro na prateleira.

Indexao Soluo em BD

Utilizao de ndices.

Objetivo:
Permitir

um rpido acesso aleatrio aos registros num arquivo.

O que um ndice?
Um

estrutura de dados adicional associada ao arquivo (tabela).

ndices

O uso de ndice conveniente aos processos que precisam de um desempenho mais gil, mesmo para os registros que no se encontrem ordenados fisicamente.

ndices

ndices so, portanto, estruturas de dados auxiliares cujo nico propsito tornar mais rpido o acesso a registros baseados em certos campos, chamados campos de indexao.

ndices

Um ndice permite localizar um registro sem ter que examinar mais que uma pequena frao dos registros possveis; O(s) campo(s) cujos valores o ndice se baseia formam a chave de pesquisa;

ndices

Cada ndice formado pelo valor de um atributo chave do registro e pela sua localizao fsica no interior do arquivo. A estrutura com a tabela de ndices tambm armazenada e mantida em disco.

ndices

Cada estrutura de ndice est associada a uma chave de busca particular.

ndices

No exemplo da biblioteca, poderamos ter os seguintes ndices:


Sobrenome

do autor Ttulo do livro Assunto do livro ...

Tipos bsicos de ndices

Ordenados
Baseiam-se

na ordenao dos valores.

Hash
Baseiam-se

na distribuio uniforme dos valores determinados por uma funo (funo de hash).

Classificao de ndices Ordenados

Considerando a quantidade de entradas


Denso

Esparso

Considerando a organizao do arquivo


Primrio

Clustering
Secundrio

Considerando os nveis de indirecionamento


Mononvel Multinvel

UNIVERSIDADE FEDERAL DE ITAJUB

NDICES ORDENADOS

DENSO X ESPARSO

ndices sobre arquivos sequenciais

Os ponteiros em um arquivo de ndices podem se referir a cada registro do arquivo ou a um bloco de disco, originando dois tipos de ndices:
ndice

denso ndice esparso

ndice Denso

H uma entrada no ndice para cada valor de chave que ocorre em um registro de dados.
Esse registro de ndice contm o valor da chave de busca e um ponteiro para o registro.

ndice Esparso

H um entrada no ndice apenas para alguns valores de chave (um para cada bloco).
Para localizar um registro com chave K, procura-se a entrada E do ndice com o maior valor de chave menor ou igual a K e pesquisa-se o arquivo a partir do registro apontado por E.

ndice Esparso

ndice Esparso x ndice Denso

Um ndice esparso utiliza menos espao para armazenamento ao custo de um tempo um pouco maior para encontrar um registro dada sua chave. No ndice esparso, inseres e remoes so menos custosas quando comparadas ao ndice denso.

Exerccios

Considere uma relao com 1.000.000 registros (ou tuplas) que cabem dez a dez em um bloco de 4.096 bytes.
a) b)
a) b)

Qual o espao necessrio para os dados? Se o campo da chave tem 32 bytes e um ponteiro 8 bytes.
Quantos pares chave-ponteiro cabem em um bloco? Qual o espao ocupado por um ndice denso para esta relao? E se um ndice esparso for utilizado, qual o espao gasto pelo ndice?

c)

UNIVERSIDADE FEDERAL DE ITAJUB

NDICES ORDENADOS

PRIMRIO X CLUSTERING X SECUNDRIO

ndice Primrio

No arquivo sequencial, um campo chave usado para ordenar fisicamente os registro de arquivos em disco. Se a chave de ordenao for um campo exclusivo (sem duplicatas), ento o ndice chamado de ndice Primrio.

ndice Primrio

A chave de busca de um ndice primrio usualmente a chave primria.

ndice Primrio

Vantagens
Economia

de acesso aos blocos Busca binria

Desvantagem
Incluso

e remoo de registros

ndices primrios em geral so esparsos


igual ao nmero de blocos do arquivo de dados)

(o nmero de entradas

ndice Primrio Esparso

ndice Clustering

Se a chave de ordenao for um campo no chave (com duplicatas), ento o ndice chamado de ndice Clustering. Existe uma entrada no ndice clustering para cada valor distinto do campo clustering. O ndice contm o valor e um ponteiro para o primeiro bloco no arquivo de dados que possua um registro com aquele valor para seu campo clustering.

ndice de Clustering
Campo Clustering

No ndice de Cluster os registros de um arquivo so fisicamente ordenados por um campo de ordenao que permite duplicatas.

(o nmero de entradas igual ao nmero de valores distintos do atributo de clustering)

ndices de clustering so esparsos

ndice de Clustering

Vantagens
Economia

de acesso aos blocos

Desvantagem
Incluso

e remoo de registros

ndices sobre arquivos sequenciais

Um arquivo pode possuir, no mximo, um ndice primrio ou um ndice de clustering, porm no ambos. Porque um arquivo pode possuir, no mximo, um campo de ordenao fsica.

ndice Secundrio

Frequentemente desejamos ter vrios ndices em uma relao, a fim de facilitar consultas variadas. Um terceiro tipo de ndice, chamado de ndice secundrio, pode ser especificado sobre qualquer campo no-ordenado de um arquivo. Um arquivo pode possuir diversos ndices secundrios, alm de seu mtodo de acesso principal.

ndice Secundrio

Um ndice secundrio um ndice cuja chave no aquela da ordem sequencial do arquivo. Portanto, a diferena entre ndice secundrio e ndice primrio est no fato de que o ndice secundrio no determina a colocao de registros no arquivo de dados.

ndices secundrios so sempre densos!!!

Projeto de ndices secundrios

Um ndice secundrio um ndice denso, normalmente com duplicatas. O ndice consiste em pares chave-ponteiro.

Os pares no arquivo de ndices classificados pelo valor da chave.

so

ndices Secundrios Exemplo


ndice Registro no Disco

Os dados no esto classificados pela chave de pesquisa. As chaves no arquivo de ndices esto classificadas.

UNIVERSIDADE FEDERAL DE ITAJUB

NDICES ORDENADOS
SECUNDRIO PARA NO CHAVE PRIMRIA

ndice Secundrio

Se o campo chave que estiver sendo indexado possuir duplicatas, dizemos que temos um ndice Secundrio para No Chave Primria.

ndice Secundrio para No Chave Primria


Neste tipo de ndice, vrios registros do arquivo de dados podem ter o atributo chave com o mesmo valor, haja vista que o mesmo no chave primria. Nesse caso, o ndice aponta para o registro.

ndice Secundrio para No Chave Primria


ndice Registro no Disco

ndice Secundrio para No Chave Primria

Como as ordens da chave secundria e da chave fsica diferem, ao tentarmos varrer o arquivo sequencialmente na ordem da chave secundria, a leitura de cada registro provavelmente requerer a leitura de um novo bloco do disco.

ndice Secundrio
ndice Registro no Disco

Selecione todos os registros de valor 20. Recuperar 2 blocos de ndice + 3 blocos de dados.

ndice Secundrio

Problema:
O

uso de um ndice secundrio pode resultar em muito mais operaes de E/S do disco.

ndice Secundrio para No Chave Primria

Soluo:
estruturas que agrupem os valores de chave. Uma forma conveniente de evitar a repetio de valores usar um nvel de carter indireto, chamado depsito (bucket), entre o arquivo de ndices secundrios e o arquivo de dados.
Criar

Carter indireto em ndices secundrios.

Carter indireto em ndices secundrios


Chave Pont. 10 20 30 40 50 60 ... ... Pont. Chave 20 40 10 20 50 30 10 50 60 70 ...

Carter indireto em ndices secundrios


Chave Pont. 10 20 30 40 50 60 ... ... Pont. Chave 20 40 10 20 50 30 10 50 60 20 ...

Exemplo ndice Secundrio


Arquivo Sequencial Pont. NomeNumero agncia -conta
Brighton Downtown Downtown Mianus Perryridge Perryridge Perryridge 217 101 110 215 102 201 218

ndice secundrio esparso Chave Pont.

Bloco de Pont.
Deposito

Nomecliente
Green Johnson Peterson Smith Hayes Willians Lyle

saldo
750 500 600 700 400 900 700

Green Lindsay Smith

Redwood
Round Hill

222
305

Lindsay
Turner

700
350

ndice Secundrio para No Chave Primria

Exemplo ndice Secundrio

Um mesmo arquivo pode ter vrios ndices secundrios.


Arquivo Sequencial
Pont. Nomeagncia
Brighton

ndice secundrio sobre o campo nome-cliente.


Deposito Chave Green Lindsay Smith Pont.

ndice secundrio sobre o campo saldo.


Nomecliente
Green Johnson Peterson Smith Hayes Willians Lyle Lindsay Turner

Numero -conta
217 101 110 215 102 201 218 222 305

sald o
750 500 600 700

Deposito Pont. Chave 350 500 700

Downtown Downtown Mianus Perryridge Perryridge Perryridge Redwood Round Hill

400 900 700 700 350

ndices Secundrios

A cada mudana no banco de dados, todos os ndices secundrios (e depsitos) precisam ser modificados.

Fatores que tornam a pesquisa baseada em ndices mais eficiente do que parece

O nmero de blocos de ndices em geral pequeno quando comparado com o nmero de blocos de dados. Tendo em vista que as chaves so classificadas, podemos usar a pesquisa binria para encontrar uma determinada chave. Se houver n blocos do ndice, bastar examinar log2n deles.

O ndice pode ser pequeno o bastante para ser mantido permanente em buffers da memria principal.

UNIVERSIDADE FEDERAL DE ITAJUB

NDICES ORDENADOS

MONONVEL X MULTINVEL

ndice Mononvel

Todos os ndices visto at agora possuem apenas um nvel de indireo.


ndice Registro no Disco

ndice Multinvel

Um ndice pode cobrir sozinho muitos blocos (ndices muito grandes).

Se esses blocos no estiverem em algum lugar onde saibamos que possvel encontr-los, por exemplo em cilindros designados de um disco, ento talvez seja necessria outra estrutura de dados para localiz-los.
Mesmo que isto ocorra, talvez ainda seja preciso executar muitas operaes de E/S de disco para alcanar o registro que queremos localizar. Inserindo um ndice no ndice, poderemos tornar o uso do primeiro nvel de ndices mais eficiente.

ndice Multinvel

Um ndice multinvel considera o arquivo ndice, o qual chamaremos agora de primeiro nvel (ou base) do ndice multinvel, como um arquivo ordenado com um valor distinto para cada k(i). Portanto, podemos criar um ndice principal para o primeiro nvel.

Esse ndice para o primeiro nvel chamado de segundo nvel do ndice multinvel.
Uma vez que o segundo nvel um ndice principal, podemos utilizar ncoras de blocos de forma que o segundo nvel possua uma entrada para cada bloco do primeiro nvel.

ndice Multinvel
ndice Nvel Secundrio ndice Primeiro Nvel (base)

Arquivo de dados

ndice Multinvel

D-se o nome de fator de bloco do ndice (bfri) para o nmero de registros lgicos que cabem em um registro fsico. O valor de bfri chamado de fan out (fo) do ndice multinvel. Um ndice multinvel com r entradas de primeiro nvel ter aproximadamente t nveis, onde t = log fo(r).

ndices Multinvel t = 2
Primeiro Nvel (BASE)
2 8 15 24

Chave Primria
2 5 8 12 15 21

TABELA DE DADOS

35

24 29

Segundo Nvel (TOPO)


2 35 55 85

39 44 51

35 36 39

55 63 71 80

41 44 46 51 52

85 93 95 100

. . .

ndices Multinvel t = 2
Primeiro Nvel (BASE)
2 8 15 24

Chave Primria
2 5 8 12 15 21

ARQUIVOS DE DADOS

35

24 29

Segundo Nvel (TOPO)


2 35 55 85

39 44 51

35 36 39

55 63 71 80

41 44 46 51 52

Bloco de memria
85 93

Fan-out = 4
(bfrndice ou fo)

95 100

. . .

ndice Multinvel

Embora um ou dois nveis de ndices sejam com frequencia muito teis para acelerar consultas, h uma estrutura mais geral usada comumente em SGBDs comerciais por serem mais flexveis e escalveis. A famlia geral de estruturas de dados chamada rvore B, e a variante utilizada com mais frequncia conhecida como rvore B+.

ndice Multinvel

Basicamente, a rvore B:
Automaticamente

mantm os nveis balanceados para a quantidade de dados que est sendo indexada, e,
o espao usado por seus blocos para que eles sempre estejam ocupados com pelo menos a metade de sua capacidade.

Gerencia

UNIVERSIDADE FEDERAL DE ITAJUB

NDICES ORDENADOS

RVORE B X RVORE B+

MULTINVEL

rvore B

As rvores B so rvores balanceadas que visam otimizar as operaes de entrada e sada nos dispositivos. Em uma aplicao comum de uma rvore B, a quantidade de dados to grande que provavelmente no caberia na memria principal. A rvore B copia blocos especficos para a memria principal quando necessrio e os grava no disco se os blocos tiverem sido alterados.

rvore B

O n raiz tem no mnimo 2 sub-rvores e no mximo, n sub-rvores.


n

a ordem da rvore B

rvore B

Exemplo ordem 2 (mnimo)

rvore B

Exemplo ordem 3

rvore B

Exemplo ordem 4

N de uma rvore B
Ponteiro de rvore Ponteiro de dados Ponteiro de rvore Ponteiro de dados Ponteiro de rvore

P1

ki

Pri

P2

kj

P3

Prj

P4

Ponteiro de n rvore Ponteiro de dados


Ns Intermedirio

5
8 < Ki < 5

8
Ki > 8

Ponteiro de rvore nulo

Ki < 5
Ns Folhas

12

Exemplo - Relao

Relao depsito no banco de dados bancrio.


Registro 0 1 2 3 4 5 6 Nome-agncia Perryridge Round Hill Mianus Downtown Redwood Round Hill Brighton Numero-conta 102 305 215 101 222 201 217 Nome-cliente Hayes Turner Smith Johnson Lindsay Willians Green saldo 400 350 700 500 700 900 750

Clearview

218

Lyle

700

Exemplo

Downtown

Redwood
Redwood 222 Lindsay 700

Downtown 101 Johnson 500

Brighton

Clearview

Mianus

Perrydge

Round Hill

Brighton 217 Green 750 Clearview 218 Lyle 700

Mianus 215 Smith 700

Perryridge 102 Hayes 400 Round Hill 201 Willians 900

A rvore B gerencia o espao usado por seus blocos para que eles sempre estejam ocupados com pelo menos a metade de sua capacidade.

Exemplo E se a chave se repetir?


Downtown
Bucket de Downtown

Redwood
Bucket de Redwood

Brighton

Clearview

Mianus
Bucket de Mianus

Perrydge

Round Hill

Bucket de Brighton Bucket de Clearview

Bucket de Perryridge Bucket de Round Hill

rvore B+

Na rvore B, uma chave somente entrada uma vez em algum nvel da rvore.

J na rvore B+, todos os dados s so armazenados nas folhas. Desta maneira, a estrutura conceitual das folhas difere da estrutura dos ns internos. As folhas da rvore B+ esto ligadas em sequncia, tornando possvel o acesso ordenado a seus campos.

N de uma rvore B
A chave 5 aparece uma nica vez na rvore. O n da rvore B tem um ponteiro para os dados referentes a chave.

Ponteiro de n rvore Ponteiro de dados


Ns Intermedirio

5
8 < Ki < 5

8
Ki > 8

Ponteiro de rvore nulo

Ki < 5
Ns Folhas

12

rvore B+

N de uma rvore B+
Ponteiro de rvore Ponteiro de rvore

ki

P1

kj

P2

Ponteiro de n rvore Ponteiro de dados


Ponteiro de rvore nulo
Ki 8

Ns Intermedirio

5
8 Ki < 5

Ki 5
Ns Folhas

1 3

6 7

9 12

N de uma rvore B+
Ponteiro de rvore Ponteiro de rvore

ki

P1

kj

P2

Ponteiro de n rvore Ponteiro de dados


Ponteiro de rvore nulo

Ns Intermedirio

6
Ns Folhas

12

Exemplo - Relao

Relao depsito no banco de dados bancrio.


Registro 0 1 2 3 4 5 6 Nome-agncia Perryridge Round Hill Mianus Downtown Redwood Round Hill Brighton Numero-conta 102 305 215 101 222 201 217 Nome-cliente Hayes Turner Smith Johnson Lindsay Willians Green saldo 400 350 700 500 700 900 750

Clearview

218

Lyle

700

Exemplo
Perrydge Downtown Mianus Redwood

Brighton

Clearview

Downtown

Mianus

Perrydge

Redwood

Round Hill

Nome-agncia Brighton Clearview

Numero-conta 217 218

Nome-cliente Green Lyle

saldo 750 700

Downtown
Mianus Perryridge Redwood Round Hill

101
215 102 222 305

Johnson
Smith Hayes Lindsay Turner

500
700 400 700 350

Vantagens rvore B+

Embora a insero e remoo em rvore B+ sejam complicadas, elas requerem relativamente poucas operaes. a velocidade de operaes em rvores B+ que as torna uma estrutura de ndice usada frequentemente em implementaes de bancos de dados.

Vantagens rvore B sobre a B+

Ausncia de armazenamento redundante de chaves de busca; Possibilidade de encontrar uma chave sem chegar at um n folha;
Busca

mais rpida

Vantagens rvore B+ sobre a B

N folha e no-folha so do mesmo tamanho


Facilita

o gerenciamento do armazenamento para o ndice;

A remoo mais simples, pois a entrada a ser removida sempre estar numa folha.

UNIVERSIDADE FEDERAL DE ITAJUB

NDICES DIRETOS
HASH ESTTICO X HASH DINMICO

Hashing

Uma desvantagem de esquemas de ndice que precisamos fazer o acesso a uma estrutura de ndice a fim de localizar dados. A tcnica de hashing evita o acesso a uma estrutura de ndice. Os arquivos seriam organizados por meio de uma funo de hash.

Hashing

A organizao de arquivos hashing oferece:

Acesso direto ao endereo do bloco de disco que contm o registro desejado; Aplica-se uma funo sobre o valor da chave de procura do registro para encontrar o bloco de disco correto;

Utiliza-se do conceito de bucket para representar uma unidade de armazenamento de um ou mais registros;
Normalmente equivalente a um bloco de disco, porm ele pode denotar um valor maior ou menor que um bloco de disco.

Funo de Hashing

Seja K o conjunto de todos os valores da chave de busca em uma relao; Seja B o conjunto de todos os endereos de buckets. Uma funo de hashing uma funo de K para B.
h(K)

Funes de Hashing

Uma funo Hash ideal distribui as chaves armazenadas uniformemente por todos os buckets, de forma que todos os buckets tenham o mesmo nmero de registros. Pior funo:
Mapeia

todos os valores de chave de busca para o mesmo bucket.

Funes de Hashing

Funo ideal:
Distribui

as chaves armazenadas uniformemente por todos os buckets.


A cada bucket seja designado o mesmo nmero de valores da chave de busca do conjunto de todos os valores dessa chave.

Distribuio

aleatria

O valor de hash no estar relacionado a qualquer ordenao externamente visvel sobre os valores da chave de busca.

Exemplo - Relao

Relao depsito no banco de dados bancrio.


Registro 0 1 2 3 4 5 6 Nome-agncia Perryridge Round Hill Mianus Downtown Redwood Brighton Clearview Numero-conta 102 305 215 101 222 217 218 Nome-cliente Hayes Turner Smith Johnson Lindsay Green Lyle saldo 400 350 700 500 700 750 700

Exemplo

Funo de Hashing
Decidimos

ter 24 buckets A funo ir mapear a i-sima letra do alfabeto para o i-simo bucket.

Bucket 0

Bucket 1 Brighton

Bucket 2 Clearview

Bucket 3 Downtown

Nome-agncia Perryridge Round Hill Mianus Downtown Redwood Brighton Clearview

...
Bucket 12 Mianus Bucket 15 Perryridge

Bucket 17 Redwood

Round Hill

...

Bucket 23

Exemplo

Se a busca for pela agncia Perrydge, a funo computa o inteiro que o P representa, vai at o bucket (bloco) correto e varre o bloco at encontrar o registro correspondente chave de busca. Se uma agncia chamada Lavras for inserida, o registro referente a essa agncia ser gravado no bucket nmero 11. A remoo de qualquer registro tambm direta. Ou seja, para remover o registro de chave Ki, calcula-se h(Ki) para localizar o bucket para aquele registro e varre o bucket procurando pelo registro de chave Ki.

Funo de Hashing

A funo de hashing escolhida no momento da implementao do sistema e no se pode mud-la mais tarde. A funo h mapeia valores de chave de busca para um conjunto fixo B de endereos de buckets.
Se

B for muito grande, desperdia-se espao. Se B for muito pequeno, o bloco conter valores muito diferentes da chave de busca.

Hashing Dinmico

A necessidade de fixar o conjunto B de endereos de buckets um problema srio com a tcnica de hashing esttico. A maioria dos bancos crescem muito com o tempo.

Hashing Dinmico

Divide e une os buckets enquanto o banco de dados cresce e encurta Eficincia do espao mantida Funo gera valores relativamente grandes por intervalos

Buckets criados por demanda

Hashing Dinmico
Hashing dinmico inicial

Hashing dinmico aps 3 inseres

Hashing Dinmico

Vantagens
Desempenho

mantido quando o arquivo aumenta Sobrecarga de espao mnima Buckets no precisam ser reservados

Desvantagem
Pesquisa

com um nvel de indireo adicional

UNIVERSIDADE FEDERAL DE ITAJUB

EXERCCIO

EXERCCIOS
4 lista de exerccios No site

Exerccio rvore B e B+

Atividade em Grupo (3 pessoas) Valor: 5 pontos


a)

Crie uma tabela no banco de dados MySQL, que tenha:


Um atributo como chave primria Um atributo como UNIQUE Pelo menos mais trs atributos Pelo menos dez registros

b)

Esquematize e justifique:

O arquivo sequencial Os ndices das chaves primria e unique Mais dois ndices secundrios, sendo um mononvel e um multinvel

Entregar impresso:

Dump da tabela + esquemas Data: 06/06/2011

Indexao e Hashing

Criar ao menos um ndice secundrio sobre o banco de dados do trabalho final da disciplina.
Justificar

a criao de tal(is) ndice(s).