1 / 13

Algoritmos para Projeção eliminando Duplicatas

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.

jadon
Download Presentation

Algoritmos para Projeção eliminando Duplicatas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algoritmos paraProjeção eliminando Duplicatas AULA 18 Profa. Sandra de Amo GBC053 – BCC 2012-2

  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)

  3. Projeção usando Ordenação Scan de R para produzir as tuplas projetadas (sem os campos indesejáveis) Ordena o resultado, utilizando a combinação de todos os atributos da projeção como chave da ordenação Scan do resultado ordenado para eliminação das tuplas adjacentes repetidas.

  4. 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

  5. Exemplo M = 1000 Cada tupla de M ocupa 40 bytes Cada tupla projetada ocupa 10 bytes Logo T = 250 páginas B = 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

  6. 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.

  7. Exemplo M = 1000 T = Relação projetada = 250 páginas B = 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

  8. 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.

  9. Fase do Particionamento e Projeção de R Relação R’ Particionada e Projetada Relação R Pt 1 Pt 2 Pt 3 Pt 6 Pt 5 Pt 4 Projeta e Distribui usando hash h Sobre a combinação dos atributos projetados Página de R Buffer tem capacidade para B páginas, onde B – 1 = número de partições Disco Disco T páginas M páginas

  10. Fase da Eliminação de Duplicatas Relação R’ particionada Relação R’ sem duplicatas Partição n de R’ (inteira) Página de R’ sem duplicatas Buffer tem capacidade para B páginas, onde B = tamanho de uma partição de R’ Disco Disco

  11. 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

  12. Exemplo M = 1000 T = Relação projetada = 250 páginas B = 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

  13. 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.

More Related