Transcript Aula 4 - Sandra de Amo
Organização de Arquivos
Tipos de Indices Cálculo de Custos de I/O em Arquivos Heap RESUMO DA AULA 5
Profa. Sandra de Amo
GBC053 – BCC 2012-2
Arquivo de Indice
O que é ? estrutura auxiliar projetada para agilizar operações de busca, inserção e deleção Em que consiste ?
Uma coleção de registros Uma chave de busca k Cada entrada contém informação suficiente para localizar registros de dados contendo a chave de busca k.
Vantagens
Tamanho
:
normalmente
arquivo de dados é bem menor do que o
Organização optimizada
:
pode ser
sequencial, ordenado ou hashed
Método de Acesso rápido
:
pode ser
estruturado usando uma b tree ou hash (estático, dinâmico)
Indice: como são os registros ?
Alternativa 1 Entrada = registro inteiro de dados Neste caso, a única vantagem do índice é a forma como é organizado: ordenado, hash, com método de acesso ou não Alternativa 2 Entrada = (k,rid), k = chave Chave = conjunto de atributos Alternativa 3 Entrada = (k, lista de rids) Vantagem: ocupa menos espaço. Uma chave acessa diversos registros no arquivo de dados Desvantagem: registro de tamanho variável
Como organizar as entradas do índice ?
Entrada = registro Entradas podem ser ordenadas Entradas podem ser organizadas por Hash
Organização por
Hash
Páginas do arquivo de índice são agrupadas por
buckets
Bucket 1 Bucket 2 Bucket 3 Bucket é determinado aplicando-se uma função h ao campo de procura
Exemplo:
estamos procurando todos os empregados de salário = 5000 Como encontrá-los rapidamente ?
Indice organizado por hash no campo Salário
Função hash: mod 3 Onde estão os
rids
dos empregados com salário = 5000 ?
5000 mod 3 = 2 Resposta: bucket 2
Indices Agrupados
Agrupados : a ordem dos registros é compatível com a ordem das entradas no arquivo de índice.
Se entrada é do tipo ( por chave .
chave , rid) e o índice é agrupado então os registros de dados são ordenados Somente um índice agrupado do tipo ( chave ,rid) Indices do tipo ( chave , rid) baseados em Hash , não podem ser agrupados, pois não podem armazenar as entradas ordenadas pela chave .
Exemplo de Indice Agrupado
2000 2000 2000 2500 3000 3500 3500 4000 4000 5000
Entradas
Paulo, 44, 2000 Pedro, 35, 2000 Carlos, 44, 2000 José, 40, 2500 João, 35, 3000 Ilmério, 40, 3500 Rodrigo, 40, 3500 Maria, 30, 4000 Sara, 35, 4000 Sabrina, 31, 5000
Registros de dados
Indices Densos
Densos : se para cada valor v da chave de busca existe uma entrada ( v ,rid).
Não-denso = esparso
Exemplo de Indices denso e não denso André José Rodrigo
Indice Esparso e Agrupado
André, 44, 2000 Carlos, 44, 2000 Ilmério, 40, 3500 João, 35, 3000 José, 40, 2500 Maria, 30, 4000 Pedro, 35, 2000 Rodrigo, 40, 3500 Sabrina, 31, 5000 Sara, 35, 4000
Registros de dados
30 31 35 35 35 40 40 40 44 44
Indice Denso e não-agrupado
Indices Primários e Secundários
Primários : primária Chave do índice inclue a chave da relação. Não há entradas duplicadas (com mesmo valor da chave) Secundários : Não contém chave primária. Pode conter chave candidata Pode conter duplicatas ou não
Indices com chaves compostas
Indice em (Idade,Sal) 31,80 33,75 42,10 42,20 bob cal joe sue 42 31 42 33 10 80 20 75 Indice em Idade 31 33 42 42 10,42 20,42 75,33 80,31 Indice em (Sal,Idade) Indice em Sal 10 20 75 80
Custo de Operações em Arquivos Heap (sequenciais)
Scan B(RC+D) Sel = chave 0.5
B(RC+D) Sel = Nchave B(D+RC) Sel <> Insert B(D+RC) 2D+C Delete sel Sel + + D + C BD 0.5BD BD BD 2D Sel+D 24/04/2020 SBD Mestrado em Computação 13