Algoritmos para Projeção eliminando Duplicatas
description
Transcript of Algoritmos para Projeção eliminando Duplicatas
Algoritmos paraProjeção eliminando
Duplicatas
AULA 18Profa. Sandra de Amo
GBC053 – BCC2012-2
Projeção SELECT DISTINCT R.A, R.B
FROM R
Duas etapas principais :
1. Remover colunas indesejáveis
2. Eliminar as duplicatas (o mais difícil)
Projeção usando Ordenação1. Scan de R para produzir as tuplas projetadas
(sem os campos indesejáveis)
2. Ordena o resultado, utilizando a combinação de todos os atributos da projeção como chave da ordenação
3. Scan do resultado ordenado para eliminação das tuplas adjacentes repetidas.
Custo Scan de R = M I/Os T = número de páginas produzidas da relação projetada (T =
c.M onde c < 1) T depende do número e do tamanho dos campos removidos em cada tupla.
Custo passo 1 = M + T Custo passo 2 (Ordenação) = 2T ([logB-1T/B] + 1) Custo passo 3 = T
Custo total = M + T + 2T ([logB-1T/B] + 1) +T
ExemploM = 1000Cada tupla de M ocupa 40 bytesCada tupla projetada ocupa 10 bytesLogo T = 250 páginasB = 40 páginas Custo passo 1 = 1250 Custo passo 2 = 2. 250 ([log39 250/40]+ 1) = 2. 250 ([log39 6,25] + 1) = 2.250. 2 = 1000 Custo passo 3 = 250 Custo total = 2500 I/Os
Otimização Pode-se projetar as tuplas durante a primeira
iteração da ordenação. A partir da segunda iteração da ordenação já
vai-se eliminando as duplicatas à medida que são criados os subarquivos ordenados.
ExemploM = 1000T = Relação projetada = 250 páginasB = tamanho do buffer = 40 páginas Passo 0 da ordenação:
1000 páginas são lidas em memória durante 1000/40 = 25 etapas A cada etapa é criado um subarquivo em disco, ordenado com 40/4 =
10 páginas No total, são 250 páginas escritas no disco, divididas em 25 subarquivos
ordenados e projetados com 10 páginas cada um. Passo 1 da ordenação:
Há espaço suficiente na memória (40 > 25) para se fazer o merge dos 25 subarquivos e simultaneamente eliminar-se as duplicatas.
São lidas 250 páginas Resultado: um único arquivo ordenado, projetado e onde as duplicatas foram
eliminadas. Custo total = 1250 + 250 = 1500 I/Os
Projeção usando Hashing Usada quando se tem um tamanho de buffer B razoável com relação ao
tamanho da relação R. Usa a idéia do algoritmo de Hash Join de Junção Fase do Particionamento + Projeção: produz como resultado a relação
R projetada (ainda sem a eliminação de duplicatas), organizada em partições, segundo uma função hash h, calculada sobre os atributos da projeção.
Fase da Eliminação das Duplicatas. Supomos que tamanho de uma partição ≤ B Para cada partição carregada no buffer, varre-se a partição e elimina-
se as duplicatas. Todos os registros de dados com valores duplicados estão numa mesma partição.
Fase do Particionamento e Projeção de R
Buffer tem capacidade para B páginas,onde B – 1 = número de partições
Página de R
Relação R
Disco Disco
Relação R’ Particionada e Projetada
Pt 1 Pt 2 Pt 3 Pt 6Pt 5Pt 4
Projeta eDistribui usando hash h Sobre a combinação dos atributos projetados
M páginas T páginas
Fase da Eliminação de Duplicatas
Buffer tem capacidade para B páginas,onde B = tamanho de uma partição de R’
Relação R’particionada
DiscoDisco
Relação R’ semduplicatas
Partição n de R’ (inteira)
Página deR’ sem duplicatas
Tamanho mínimo de Buffer Fase do Particionamento + Projeção
Cria-se B-1 partições Registros de cada partição são projetados T = tamanho da relação projetada R’ Tamanho de uma partição = T/B-1
Fase de Eliminação das Duplicatas B ≥ T/B-1 (B-1).B ≥ T (B-1).B > (B-1).(B-1) ≥ T Se B-1 ≥ T teremos que (B-1).B ≥ T Logo, basta considerar B ≥ T + 1 ou equivalentemente B > T
ExemploM = 1000T = Relação projetada = 250 páginasB = tamanho do buffer = 40 páginas Fase de Particionamento
1000 páginas são lidas em memória 250 páginas são gravadas 250 = 15,81 40 > 15,81. Logo, temos espaço suficiente no buffer para
realizar a fase de eliminação de duplicatas Fase de Eliminação de Duplicatas
250 páginas são lidas Custo total = 1250 + 250 = 1500 I/Os
Projeção nos SGBDs comerciais Informix: usa o algoritmo baseado em hash IBM DB2, Oracle 8 e o Sybase ASE: usa o
algoritmo baseado em ordenação Microsoft SQL Server, Sybase ASIQ:
implementam os algoritmos baseados em Hash e ordenação.