Cálculo de Custos de Operações
I/O – Arquivos Ordenados
AULA 6
Profa. Sandra de Amo
GBC053 – BCC
Estudaremos nesta aula
 Estimativa de custos de I/O para operações
de:





Scan no arquivo
Inserção de tuplas em arquivos ordenados
Remoção de tuplas em arquivos ordenados
Busca em arquivos ordenados pelo atributochave de busca
Busca em arquivos ordenados por atributos
diferentes do atributo-chave de busca
Arquivos Ordenados : SCAN
 Cada página deve ser transferida do disco
 Tempo de transferência = D
 Cada página deve ser processada no buffer (R
registros são processados)

Tempo de processamento = RC
 Custo total por página = D + RC
 Custo total da operação SCAN = B(D+RC)
Atenção
 Nas operações de busca em arquivos ordenados, vamos supor
que:
 O arquivo está ordenado por um atributo A
 A busca é feita pelo atributo A
 O atributo A pode ou não ser chave da relação onde está sendo
feita a busca
 Caso a busca seja feita por um atributo diferente de A, o custo é
o mesmo de um SCAN
Arquivos Ordenados : Busca
Seleção A = a
A : atributo chave (da relação)
Atenção: Chave = chave da relação !!
Arquivo é ordenado pela chave da relação.
1)
2)
Busca binária no arquivo
Cada passo = uma operação de input + 1 registro processado no
buffer
• Custo de cada operação de Input = D
• Custo para processar todas as páginas necessárias na busca
binária até encontrar a página onde está o registro procurado =
D(log2B)
3) Uma vez encontrada a página onde está o registro, fazer busca binária
na página
Custo = C(log2R)
Custo total = D (log2B) + C (log2R)
Arquivos Ordenados : Busca
Seleção A = a
A : atributo não-chave (da relação)
Os registros satisfazendo a condição são adjacentes
(pois o arquivo é ordenado pelo atributo da seleção )
1) Localizar o primeiro registro satisfazendo a condição
CUSTO = Dlog2B + C log2R
2) Ler todos os registros subsequentes em ordem sequencial
Em média tais registros satisfazendo a condição cabem em uma página.
Em média, o primeiro registro satisfazendo a condição encontra-se no meio da
página.

Custo = D log2B + C log2R + custo de ler o resto

Custo total estimado = D log2B + C log2R + RC/2
Arquivos Ordenados : Busca
Seleção A > a
A : atributo chave (da relação)
1) Localizar o primeiro registro
Custo = Dlog2B + C log2R
2) Ler todos os registros subsequentes em ordem
sequencial
Custo = Dlog2B + C log2R + custo de ler o resto
Custo estimado= Dlog2B + C log2R + B/2(D+RC)
Arquivos Ordenados : Inserção
 Inserção


Suponhamos que o arquivo esteja ordenado pela chave da relação
(A)
Encontrar a posição onde deve ser inserido o registro
(a1, a2, …, an)





Custo de uma busca A = a1, onde A é chave da relação =
D (log2B) + C(log2R)
Inserir registro (em média, encontra-se na metade do arquivo)
Reescrever todos os registros subsequentes da página onde foi
feita a inserção (shift nos demais registros)
Custo = Busca posição + 2*0.5*B(D + RC) =
Custo estimado = D (log2B) + C(log2R)+ B(D+RC)
Arquivos Ordenados : Deleção
 Deleção:
 supondo que o arquivo está ordenado pelo atributo de que
seleciona os registros a serem removidos
 Encontrar a página do primeiro registro satisfazendo a condição de
deleção




Custo = tempo da busca pelo registro
 (depende da condição da operação de deleção: A = a ,
A > a, se A é chave da relação ou não)
Remover o(s) registro(s) das páginas
Escrever a(s) página(s) modificada(s)
Reescrever todos os registros subsequentes aos que foram
removidos, somente nas páginas onde ocorreram remoções
Se for um único registro a ser removido A = a :
 Custo estimado = Busca registro + 2.0.5B(D + RC) =
D (log2B) + C(log2R) + B(D+RC)
Importante :
 Para efeito dos cálculos de custos, estamos
supondo que a condição de seleção é
especificada no atributo pelo qual o arquivo
está ordenado.
 Caso a condição de seleção não seja sobre o
atributo pelo qual o arquivo é ordenado, os
custos são os mesmos que para os arquivos
Heap.
Resumo - Ordenados
Scan
Sel =
chave
Sel =
Nchave
Sel <>
Insert
Delete
Sel =
chave
B(D+RC)
Dlog2B +
Clog2R
Dlog2B +
Clog2R
+
RC/2
Dlog2B +
Clog2R
+
B/2(D+RC)
D(log2B)+
C(log2R)
+
B(D+RC)
D(log2B)+
C(log2R)
+
B(D+RC)
BD
Dlog2B
Dlog2B Dlog2B + Dlog2B+
DB/2
BD
Dlog2B+
BD
Só I/O
Download

Slides - Sandra de Amo