Algoritmos para Projeção eliminando Duplicatas

13
Algoritmos para Projeção eliminando Duplicatas AULA 18 Profa. Sandra de Amo GBC053 – BCC 2012-2

description

Algoritmos para Projeção eliminando Duplicatas. AULA 18 Profa. Sandra de Amo GBC053 – BCC 2012-2. Projeção. SELECT DISTINCT R.A, R.B FROM R Duas etapas principais : Remover colunas indesejáveis Eliminar as duplicatas (o mais difícil). Projeção usando Ordenação. - PowerPoint PPT Presentation

Transcript of Algoritmos para Projeção eliminando Duplicatas

Page 1: Algoritmos para Projeção eliminando Duplicatas

Algoritmos paraProjeção eliminando

Duplicatas

AULA 18Profa. Sandra de Amo

GBC053 – BCC2012-2

Page 2: Algoritmos para Projeção eliminando Duplicatas

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)

Page 3: Algoritmos para Projeção eliminando Duplicatas

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.

Page 4: Algoritmos para Projeção eliminando Duplicatas

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

Page 5: Algoritmos para Projeção eliminando Duplicatas

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

Page 6: Algoritmos para Projeção eliminando Duplicatas

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.

Page 7: Algoritmos para Projeção eliminando Duplicatas

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

Page 8: Algoritmos para Projeção eliminando Duplicatas

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.

Page 9: Algoritmos para Projeção eliminando Duplicatas

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

Page 10: Algoritmos para Projeção eliminando Duplicatas

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

Page 11: Algoritmos para Projeção eliminando 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

Page 12: Algoritmos para Projeção eliminando Duplicatas

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

Page 13: Algoritmos para Projeção eliminando Duplicatas

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.