Buscar

Indexação de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Unidade 3 - Indexação 
2
Unidade 3: Indexação 
n Conceitos básicos
n Índices ordenados
n Arquivos de índice de árvore B+
n Arquivos de índice de árvore binária
n Exercícios
3
Conceitos básicos 
n Mecanismos de indexação usados para agilizar o acesso aos dados desejados.
l Por exemplo, catálogo de autores na biblioteca
n Chave de busca - atributo ou conjunto de atributos para pesquisar registros em um 
arquivo.
n Um arquivo de índice consiste em registros (chamados entradas de índice) na forma
n Arquivos de índice normalmente são muito menores do que o arquivo original
n Dois tipos básicos de índices:
l Índices ordenados: chaves de busca são armazenadas em ordem classificada
l Índices de hash: chaves de busca são distribuídas uniformemente entre “baldes” 
usando uma “função de hash”.
chave de busca ponteiro
4
Métrica de avaliação de índice 
n Tipos de acesso admitidos com eficiência. Por exemplo, 
l registros com um valor especificado no atributo
l ou registros com um valor de atributo caindo em um 
intervalo especificado de valores.
n Tempo de acesso
n Tempo de inserção
n Tempo de exclusão
n Sobrecarga de espaço
5
Índices ordenados 
n Em um índice ordenado, as entradas de índice são 
armazenadas classificadas pelo valor da chave de busca. 
Por exemplo, catálogo de autor na biblioteca.
n Índice primário: em um arquivo ordenado seqüencialmente, 
o índice cuja chave de busca especifica a ordem seqüencial 
do arquivo.
l Também chamado índice de agrupamento
l A chave de busca de um índice primário normalmente, mas não 
necessariamente, é a chave primária.
n Índice secundário: um índice cuja chave de busca 
especifica uma ordem diferente da ordem seqüencial do 
arquivo. Também chamado índice não de agrupamento.
n Arquivo seqüencial indexado: arquivo seqüencial ordenado 
com um índice primário.
6
Arquivos de índice denso 
Índice denso — O registro de índice aparece para cada valor de 
chave de busca no arquivo. 
7
Arquivos de índice esparso 
n Índice esparso: contém registros de índice para somente alguns valores de 
chave de busca.
l Aplica-se quando os registros são ordenados seqüencialmente por 
chave de busca
n Para localizar um registro com o valor de chave de busca K:
l Encontramos o registro de índice com o maior valor de chave de busca 
< K
l Pesquisamos o arquivo seqüencialmente, começando no registro para o 
qual o registro de índice aponta
n Menos espaço e menos sobrecarga de manutenção para inserções e 
exclusões.
n Geralmente mais lento do que o índice denso para localizar registros.
n Boa escolha: índice esparso com uma entrada de índice para cada bloco no 
arquivo, correspondente ao menor valor de chave de busca no bloco.
8
Exemplo de arquivos de índice esparso 
9
Índice multinível 
n Se o índice primário não couber na memória, o acesso se torna dispendioso.
n Para reduzir o número de acessos de disco aos registros de índice, trate o 
índice primário mantido em disco como um arquivo seqüencial e construa 
um índice esparso sobre ele.
l índice externo – um índice esparso do índice primário
l índice interno – o arquivo de índice primário
n Se até mesmo o índice externo for muito grande para caber na memória 
principal, outro nível de índice pode ser criado, e assim por diante.
n Os índices em todos os níveis precisam ser atualizados na inserção ou 
exclusão no arquivo.
10
Índice multinível (cont.) 
11
Atualização de índice: exclusão 
n Se o registro excluído foi o único registro no arquivo com seu 
valor de chave de busca específico, a chave de busca também é 
excluída do índice.
n Exclusão de índice de único nível:
l Índices densos a exclusão da chave de busca é semelhante à ‑
exclusão de registro do arquivo.
l Índices esparsos se houver uma entrada para a chave de ‑
busca no índice, ela é excluída substituindo a entrada no índice 
pelo próximo valor de chave de busca no arquivo (em ordem de 
chave de busca). Se o próximo valor de chave de busca já tiver 
uma entrada de índice, a entrada é excluída em vez de ser 
substituída.
12
Atualização de índice: inserção 
n Inserção de índice de único nível:
l Realize uma pesquisa usando o valor de chave de busca que 
aparece no registro a ser inserido.
l Índices densos se o valor da chave de busca não aparecer no ‑
índice, insira-o.
l Índices esparsos se o índice armazena uma entrada para ‑
cada bloco do arquivo, nenhuma mudança precisa ser feita no 
índice, a menos que um novo bloco seja criado. Nesse caso, o 
primeiro valor de chave de busca que aparece no novo bloco é 
inserido no índice.
n Algoritmos de inserção multinível (além de exclusão) são simples 
extensões dos algoritmos de único nível
13
Índices secundários 
n Freqüentemente, alguém deseja encontrar todos os registros cujos 
valores em um certo campo (que não seja a chave de busca do índice 
primário) satisfazem alguma condição.
l Exemplo 1: No banco de dados conta armazenado seqüencialmente 
por número de conta, podemos querer encontrar todas as contas em 
determinada agência
l Exemplo 2: como antes, mas onde queremos encontrar todas as 
contas com um saldo especificado ou intervalo de saldos
n Podemos ter um índice secundário com um registro de índice para 
cada valor de chave de busca; o registro de índice aponta para um 
balde que contém ponteiros para todos os registros reais com esse 
valor de chave de busca específico.
14
Índice secundário sobre o campo saldo
de conta 
15
Índices primários e secundários 
n Índices secundários precisam ser densos.
n Índices oferecem benefícios substanciais quando procuram 
registros.
n Quando um arquivo é modificado, cada índice no arquivo precisa 
ser atualizado. A atualização de índices impõe sobrecarga na 
modificação do banco de dados.
n A varredura seqüencial usando índice primário é eficiente, mas 
uma varredura seqüencial usando um índice secundário é 
dispendiosa.
l cada acesso a registro pode apanhar um novo bloco do disco
16
Arquivos de índice de árvore B+ 
n Desvantagem dos arquivos seqüenciais indexados: o desempenho 
diminui quando o arquivo aumenta, pois muitos blocos de estouro 
são criados. É preciso reorganizar periodicamente o arquivo inteiro.
n Vantagem dos arquivos de índice B+: reorganiza-se 
automaticamente com pequenas mudanças locais, em face a 
inserções e exclusões. A reorganização do arquivo inteiro não é 
necessária para manter o desempenho.
n Desvantagem das árvores B+: trabalho extra de inserção e exclusão, 
sobrecarga de espaço.
n Vantagens das árvores B+ superiores às desvantagens, e por isso 
software muito usadas.
17
Arquivos de índice de árvore B+ (cont.) 
Uma árvore B+ é uma árvore com raiz satisfazendo as
seguintes propriedades:
n Todos os caminhos da raiz até a folha são do mesmo 
tamanho
n Cada nó que não é uma raiz ou uma folha tem entre [n/2] e n 
filhos.
n Um nó de folha tem entre [(n–1)/2] e n–1 valores
n Casos especiais: 
l Se a raiz não for uma folha, ela tem pelo menos 2 filhos.
l Se a raiz for uma folha (ou seja, não houver outros nós 
na árvore), ela pode ter entre 0 e (n-1) valores.
18
Estrutura de nós da árvore B+ 
n Nó típico
l Ki são os valores de chave de busca
l Pi são ponteiros para os filhos (para nós não de folha) ou 
ponteiros para registros ou baldes de registros (para nós de 
folha)
n As chaves de busca em um nó são ordenadas
 K1 < K2 < K3 < . . . < Kn–1
19
Nós de folha nas árvores B+ 
n Para i = 1, 2, . . ., n–1, o ponteiro Pi ou aponta para um registro de arquivo com valor de 
chave de busca Ki, ou para um balde de ponteiros para registros de arquivo, cada registro 
tendo valor de chave de busca Ki. Só precisa de estrutura de balde se a chave de buscanão 
formar uma chave primária.
n Se Li, Lj forem nós de folha e i < j, os valores de chave de busca de Li são menores que os 
valores de chave de busca de Lj
n Pn aponta para o próximo nó de folha na ordem da chave de busca
20
Nós não de folha nas árvores B+ 
n Os nós não de folha formam um índice esparso multinível sobre os nós de 
folha. Para um nó não de folha com m ponteiros:
l Todas as chaves de busca na sub-árvore à qual P1 aponta são 
menores que K1
l Para 2 ≤ i ≤ n – 1, todas as chaves de busca na sub-árvore à qual Pi 
aponta têm valores maiores ou iguais a Ki–1 e menores que Km–1
21
Exemplo de uma árvore B+ 
Árvore B+ para arquivo conta (n = 3)
22
Exemplo de árvore B+ 
n Árvore B+ para arquivo conta (n = 5)
n Nós de folha precisam ter entre 2 e 4 valores
((n–1)/2 e n –1, com n = 5).
n Nós não de folha diferentes da raiz precisam ter entre 3 e 5 filhos 
((n/2 e n com n =5).
n Raiz precisa ter pelo menos 2 filhos.
23
Observações sobre árvores B+ 
n Como as conexões entre nós são feitas por ponteiros, blocos 
“logicamente” próximos não precisam estar “fisicamente” 
próximos.
n Os níveis não de folha da árvore B+ formam uma hierarquia de 
índices esparsos.
n A árvore B+ contém uma quantidade relativamente pequena de 
níveis (logarítmica no tamanho do arquivo principal), de modo que 
as buscas podem ser conduzidas de modo eficiente.
n Inserções e exclusões no arquivo principal podem ser tratadas de 
modo eficiente, pois o índice pode ser reestruturado em tempo 
logarítmico (conforme veremos).
24
Consultas em árvores B+ 
n Encontre todos os registros com um valor de chave de busca k.
H Comece com o nó raiz
4 Examine o nó em busca do menor valor de chave de busca > k.
4 Se esse valor existir, considere que é Kj. Depois siga Pi até o nó 
filho
4 Caso contrário, k ≥ Km–1, onde existem m ponteiros no nó. Depois, 
siga Pm até o nó filho.
H Se o nó alcançado seguindo-se o ponteiro acima não for um nó de 
folha, repita o procedimento sobre o nó e siga o ponteiro 
correspondente.
H Por fim, alcance um nó de folha. Se, para algum i, a chave Ki = k, siga 
o ponteiro Pi até o registro ou balde desejado. Se não, não há um 
registro com valor de chave de busca k.
25
Consultas em árvores B+ (cont.)
n No processamento de uma consulta, um caminho é atravessado na árvore 
da raiz até algum nó de folha.
n Se houver K valores de chave de busca no arquivo, o caminho não será 
maior do que log n/2(K).
n Um nó geralmente tem o mesmo tamanho de um bloco de disco, 
normalmente 4 kilobytes, e n normalmente fica em torno de 100 (40 bytes 
por entrada de índice).
n Com 1 milhão de valores de chave de busca e n = 100, no máximo 
log50(1.000.000) = 4 nós são acessados em uma pesquisa.
n Compare isso com uma árvore binária balanceada com 1 milhão de valores 
de chave de busca cerca de 20 nós são acessados em uma pesquisa.‑
l a diferença acima é significativa, pois o acesso a cada nó pode 
precisar de uma E/S de disco, custando em torno de 20 milissegundos!
26
Exercícios
1. Suponha que uma chave inteira utilize 2 bytes, um ponteiro utilize 4 
bytes e um registro de uma certa tabela utilize 20 bytes. Considere 
blocos de 60 bytes (ignore os cabeçalhos). Considere índices 
contendo pares chave-ponteiro. Quantos blocos serão necessários 
para armazenar dados e índice se a tabela possuir 90 registros, 
utilizando-se: a) um índice denso; b) um índice esparso.
2. Esquematize e explique como se pode montar uma estrutura de 
índice secundário com 2 níveis de índice.
3. Por que uma árvore B recupera registros dos nós intermediários 
mais rapidamente que uma árvore B+?
4. Esquematize um nó folha de uma árvore B+.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26

Outros materiais