Organização de Arquivos
Tipos de Indices
Cálculo de Custos de I/O
AULA 5
Profa. Sandra de Amo
GBC053 – BCC
Parte I : Indices Densos, Primários,
Compostos,...
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é, 44, 2000
30
Carlos, 44, 2000
31
Ilmério, 40, 3500
35
José
João, 35, 3000
35
Rodrigo
José, 40, 2500
35
Maria, 30, 4000
40
Pedro, 35, 2000
40
Rodrigo, 40, 3500
Sabrina, 31, 5000
40
44
Sara, 35, 4000
44
André
Indice Esparso e Agrupado
Registros de dados
Indice Denso
e não-agrupado
Vantagens e desvantagens
 Esparso tem que ser agrupado
 Vantagens de esparso : arquivo de indice
ocupa menor espaço.
 Desvantagem de esparso : técnicas de
otimização de busca são apropriadas para
indices densos.
Indices Primários e Secundários
 Primários : Chave do índice inclue a chave
primária 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)
Indice em Idade
31,80
31
33,75
33
42,10
bob
42
10
42
42,20
cal
31
80
42
joe
42
20
sue
33
75
Indice em Sal
10,42
10
20,42
20
75,33
80,31
75
Indice em (Sal,Idade)
80
Consultas
 Consultas com igualdade

Chave composta (Idade, Sal)
Idade = 10, Sal = 80

Arquivos Hashed só são convenientes para consultas com
igualdade
 Consultas Range

Chave composta (Idade, Sal)



Idade = 10
Idade < 10, Sal > 80
Arquivos Ordenados são convenientes para consultas com
igualdade
Indices em SQL
 CREATE INDEX IndAgeGrau ON Estudantes
With Structure = BTREE,
Key = (Idade, Média)
Parte II : Cálculo de Custos de I/O
Heap Files
Modelo de Custo
Hipóteses
B
= Número de Páginas
R = Número de registros por página
D = Tempo médio para ler ou escrever uma página
no disco
± 25 msec
C = Tempo médio para processar um registro
± 1 a 10 microsec
Custo = número de acessos ao disco
05/11/2015
11
Operações em Arquivos
 Scan : ler todos os registros de um arquivo


Páginas devem localizadas no disco e serem carregadas no Buffer
Pool
Registros devem ser localizados nas páginas
 Busca com seleção =


Páginas com os registros selecionados devem ser localizadas e
carregadas
Registros devem ser localizados nas páginas
 Busca com seleção > ou <


05/11/2015
Páginas com os registros selecionados devem ser localizadas e
carregadas
Registros devem ser localizados nas páginas
12
Operações
 Inserção
 Identificar a página na qual registro deve ser inserido
 Carregar esta página no buffer pool
 Incluir novo registro
 Escrever a página modificada no disco
 Deleção
 Identificar a página contendo o registro
 Carregar esta página no buffer pool
 Modificar a página
 Escrever a página modificada no disco
05/11/2015
13
Lembrando...
 B = Número de Páginas
 R = Número de registros por página
 D = Tempo médio para ler ou escrever uma página no disco


Ler = localizar no disco + carregar
Escrever = localizar posição no disco + transferir
dados para o disco
 C = Tempo médio para processar um registro no buffer
05/11/2015
14
Heap Files
 Scan
 Cada
página deve ser lida
 Processar R registros por página
 Custo = B(D+RC)
05/11/2015
15
Heap Files
 Procura (Sel « = « na chave)





Atenção: Chave primária ou candidata da tabela !!
Encontrou, pára !
Em média, metade do arquivo deve ser
escaneado para se encontrar a página
correspondente ao registro.
Carregar a página
Escanear a página à procura do registro
 Custo
05/11/2015
= 0.5B(D + RC)
16
Heap Files
 Procura (Sel « = « não-chave)
 Todo o arquivo deve ser escaneado
 Tempo = B(D+RC)
 Procura (Sel <)
 Todo o arquivo deve ser escaneado
 Tempo = B(D+RC)
 Inserção
 Registros são inseridos sempre no final do arquivo
 Página final deve ser carregada, modificada e escrita
de volta no disco
 Tempo = 2D + C
05/11/2015
17
Heap Files
 Deleção de um registro




Encontrar a página do registro
Remover o registro da página
Escrever a página modificada
Tempo = Sel + D + C
Tempo para alterar o registro
Tempo de localizar o registro e
trazer a página correspondente
para o buffer pool.
05/11/2015
Tempo para escrever a página
no disco
18
Resumo – Heap Files
Scan
Sel =
Sel =
chave
Nchave
B(RC+D)
0.5
B(RC+D)
B(D+RC)
BD
0.5BD BD
05/11/2015
Sel <> Insert
Delete
sel
B(D+RC)
2D+C
Sel +
+D+C
BD
2D
Sel+D
19
Download

Aula 4 - Sandra de Amo