REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053...

55
REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação

Transcript of REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053...

Page 1: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

REVISÃO PARA 3a PROVA Gerência de Banco de Dados

Profa. Sandra de AmoDisciplina GBC053

Bacharelado em Ciência da Computação

Page 2: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Condições Gerais de Seleção

SELECT *FROM RWHERE (R.A op ‘a’ OR R.A op ‘a1)

AND (R.B op ‘b’ OR R.B op ‘b1’)

op: =, < , > , ≤ , ≥

Tamanho de R = M páginasNúmero de tuplas por página = Pr

Page 3: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Caso 1: sem OR• Um só índice

– Criar índice para atributo que aparece na condição de seleção, com maior “seletividade”

– utilizar este índice para obter os registros satisfazendo a condição da chave do índice

– A medida que se recupera as tuplas satisfazendo esta condição elimina-se as tuplas que não satisfazem alguma das outras condições.

• Diversos índices

– Utiliza-se diversos indices, sobre alguns atributos aparecendo na condição de seleção.

– Para cada condição Ai = ai recupera-se as páginas do arquivo de indice satisfazendo esta condição.

– Ordena-se as entradas de cada índice pelo page-id

– Faz-se a intersecção das entradas com os mesmos page-ids

– Recupera-se as tuplas contidas nas páginas indicadas pelos page-ids e elimina-se aquelas que não satisfazem as outras condições da seleção (para as quais não foram considerados indices).

Page 4: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Caso 2 : com OR

• A = a1 OR B = b1– Indice em A, não há indice em B– Melhor solução : scan (o indice em A não ajuda nada)

• (A = a1 OR B = b1) AND C = c1– Indice em A, não há indice em B, indice em C– Melhor solução: utilizar o indice em C

• A = a1 OR B = b1– Indice em A, indice em B– Melhor solução:

• recupera-se as entradas no arquivo de indice para A = a1 : • recupera-se as entradas no arquivo de indice para B = b1 :• Faz-se a união destes dois conjuntos de entradas• Ordena-se este conjunto pelo page-id

Page 5: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Projeção

SELECT DISTINCT R.A, R.BFROM R

Duas etapas principais : 1. Remover colunas indesejáveis2. Eliminar as duplicatas (o mais difícil)

Page 6: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Projeção usando Ordenação1. Scan de R para produzir as tuplas projetadas (sem os campos indesejáveis) Custo passo 1 = M + T2. Ordena o resultado, utilizando a combinação de todos os atributos da projeção como chave da ordenação

Custo passo 2 (Ordenação) = 2T ([logB-1T/B] + 1)

3. Scan do resultado ordenado para eliminação das tuplas adjacentes repetidas. Custo passo 3 = T 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 total = M + T + 2T ([logB-1T/B] + 1) +T

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: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

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 8: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computaçã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

Page 9: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

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 10: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

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 11: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

UNION: algoritmo baseado em ordenação

• Fase da Ordenação:– Ordena T1 por todos os atributos– Ordena T2 por todos os atributos

• Fase da Intercalação– Intercala as tuplas de T1 e T2 de modo a obter um

único arquivo ordenado e sem duplicatas.

Page 12: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Fase da Intercalação

Buffer pool

Página de T1 Página de T2 Página de output

115

79

11

226

89

13

1

25678911

CUSTO DA INTERCALAÇÃO = M + N M = número de páginas de T1N = número de páginas de T2

CUSTO TOTAL =2M ([LogB-1 M/B] + 1) + 2N ([LogB-1 N/B] + 1)+ M + N

13

Page 13: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

EXCEPT: algoritmo baseado em ordenação

• Fase da Ordenação:– Ordena T1 por todos os atributos– Ordena T2 por todos os atributos

• Fase da Diferença– Intercala as tuplas de T1 e T2 de modo a obter um

único arquivo ordenado e sem duplicatas.

Page 14: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Fase da Diferença

Buffer pool

Página de T1 Página de T2 Página de output

115

79

11

226

89

13

11. Se T1.r < T2.r Insere T1.r no Output Atualiza o marcador de T1 para o próximo registro de T1 diferente de T1.r2. Se T1.r = T2.r Atualiza os marcadores de T1 e T2 para os próximos registros de T1 dif. de T1.r e de T2 dif. de T2. r 3. Se T1.r > T2.r Atualiza o marcador de T2 para o próximo registro de T2, diferente de T2.r

Page 15: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Fase da Diferença

Buffer pool

Página de T1 Página de T2 Página de output

115

79

11

226

89

13

1

5

1. Se T1.r < T2.r Insere T1.r no Output Atualiza o marcador de T1 para o próximo registro de T1 diferente de T1.r2. Se T1.r = T2.r Atualiza os marcadores de T1 e T2 para os próximos registros de T1 dif. de T1.r e de T2 dif. de T2. r 3. Se T1.r > T2.r Atualiza o marcador de T2 para o próximo registro de T2, diferente de T2.r

Page 16: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Fase da Diferença

Buffer pool

Página de T1 Página de T2 Página de output

115

79

11

226

89

13

1

5

7

1. Se T1.r < T2.r Insere T1.r no Output Atualiza o marcador de T1 para o próximo registro de T1 diferente de T1.r2. Se T1.r = T2.r Atualiza os marcadores de T1 e T2 para os próximos registros de T1 dif. de T1.r e de T2 dif. de T2. r 3. Se T1.r > T2.r Atualiza o marcador de T2 para o próximo registro de T2, diferente de T2.r

Page 17: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Fase da Diferença

Buffer pool

Página de T1 Página de T2 Página de output

115

79

11

226

89

13

1

5

7

11

CUSTO DA DIFERENÇA = M + N M = número de páginas de T1N = número de páginas de T2

CUSTO TOTAL =2M ([LogB-1 M/B] + 1) + 2N ([LogB-1 N/B] + 1)+ M + N

1. Se T1.r < T2.r Insere T1.r no Output Atualiza o marcador de T1 para o próximo registro de T1 diferente de T1.r2. Se T1.r = T2.r Atualiza os marcadores de T1 e T2 para os próximos registros de T1 dif. de T1.r e de T2 dif. de T2. r 3. Se T1.r > T2.r Atualiza o marcador de T2 para o próximo registro de T2, diferente de T2.r

Page 18: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

UNION: algoritmo baseado em hash

• Fase da Particionamento:– Particiona T1 em B-1 partições usando o buffer– Particiona T2 em B-1 partições usando o buffer

• Fase da União– Carrega a partição inteira n de T1 no buffer: isto é possível se B > – Ordena internamente os elementos da partição n e elimina as duplicatas– Para cada página da partição n de T2, ordena internamente e elimina as

duplicatas.– Para cada tupla da partição n de T2, varre a partição n de T1 (que está em

memória) e verifica se t está nesta partição. Se não estiver, coloque-a no resultado.

– Retorna a partição n de T1 e as páginas construídas com os elementos da correspondente partição n de T2 que faltavam na partição n de T1.

T1

Page 19: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

EXCEPT: algoritmo baseado em hash

• Fase do Particionamento:– Particiona T1 em B-1 partições usando o buffer– Particiona T2 em B-1 partições usando o buffer

• Fase da Diferença– Carrega a partição inteira n de T2 no buffer: isto é possível se B >

(Prove !)– Ordena internamente os elementos da partição n e elimina as

duplicatas– Para cada página da partição n de T1, ordena internamente e elimina

as duplicatas.– Para cada tupla t da partição n de T1, varre a partição n de T2 (que

está em memória) e verifica se t está nesta partição. Se não estiver, coloca-a no resultado.

T2

Page 20: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Algoritmos para Operador GROUP BY

SELECT S.Status, AVG(S.Idade)FROM Sailors SGROUP BY S.Status

Técnicas: • Ordenação• Hashing

Page 21: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Algoritmo para GROUP BY baseado em ordenação

Etapa 1: Ordena-se a relação pelo atributo do Group byEtapa 2: Faz-se um scan da relação ordenada armazenando-se

na variável Agreg o resultado da operação de agregação para cada grupo

Custos:Etapa 1 = 2M([LogB-1 M/B] + 1)Etapa 2 = MCusto total = 2M([LogB-1 M/B] + 1) + M

Page 22: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Algoritmo para GROUP BY baseado em Hash

• Fase do Particionamento– Particiona a relação R pelos atributos de agrupamento – do GROUP BY– Desta maneira: elementos de um mesmo grupo só podem estar numa

mesma partição.– O particionamento é feito de modo que cada partição caiba inteira na

memória. – Para isso, é preciso que o tamanho do buffer (B) seja > M onde M = número de páginas da relação R.

• Fase do Agrupamento – Carrega partição inteira de R– Aplica algoritmo de ordenação interna pelos atributos do

agrupamento (Group By).– Varre a partição (ordenada) e calcula-se o resultado da função de

agregação sobre cada grupo• CUSTO = 2M + M = 3M

Page 23: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Esquema Geral do Otimizador

SQL Parser Consulta SQL

usuário

Coleção de blocos simplesB1, B2, ...., Bn

Otimizador

Melhor Plano de execução

Bloco SQL simples

Plano canônico

Cria planos alternativos

Planos alternativos

Estima custos

Melhor Plano de execução

Transforma em Algebra

Page 24: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Decompor consulta em blocos simples

• Um bloco SQL simples é um comando sem subconsultas aninhadas, onde aparece– somente um SELECT, – somente um FROM – no máximo um WHERE (em FNC) – no máximo um GROUP BY– no máximo um HAVING

Page 25: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Exemplo

SELECT DISTINCT S.sid, Min (R.day) FROM Sailors S, Reservas R, Boats B WHERE S.sid = R.sid AND R.bid = B.bid

AND B.color = ‘red’ AND S.rating = ( SELECT MAX (S2.rating)

FROM Sailors S2 ) GROUP BY S.sid HAVING COUNT (*) > 1

Page 26: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Exemplo• Bloco 1 : bloco interno

SELECT MAX (S2.rating) FROM Sailors S2 Resultado : Relação temporária T(A)

• Bloco 2 : bloco externo SELECT DISTINCT S.sid, Min (R.day) FROM Sailors S, Reservas R, Boats B, T WHERE S.sid = R.sid AND R.bid = B.bid

AND B.color = ‘red’ AND S.rating = T.A GROUP BY S.sid HAVING COUNT (*) > 1

Page 27: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Plano de Execução “Canônico”

σ

Π A,B,...,C

X

R1 R2 Rn

Resultado R é ordenado

O GROUP BY é executado sobre o resultado R ordenado.

O HAVING é aplicado para eliminar certos grupos.

Funções de agregação (MIN,MAX,...) são executadas sobre os grupos finais

Operador de Projeção é executado por último.

Resultado R

Page 28: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

PLANOS ALTERNATIVOS Equivalências de Expressões Algébricas

• Seleção– σ c1 ^ c2 ^ ... ^ cn (R) = σ c1 (σ c2 (... (σ cn (R))...)

Vantagens: Permite realizar uma única seleção, verificando todas as condições simultaneamente, em vez de se executar n seleções separadamente em sequência.

– σ c1 (σ c2 (R) ) = σ c2 (σ c1 (R) ) As condições podem ser executadas em qualquer ordem.Vantagem: executar a condição mais seletiva primeiro.

Page 29: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Equivalências de Expressões Algébricas

• Projeção – Π X1 (R) = Π X1 (Π X2 (... (Π Xn (R))...) Onde – cada Xi é um conjunto de atributos – Xi está contido em Xi+1

– Exemplo: Π A (R) = Π A (ΠAB (Π ABC (R)))

Vantagem: Reduz o número de execuções do algoritmo de projeção

Page 30: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Equivalências de Expressões Algébricas

• Produto Cartesiano e Junção– Associativa

R (S T) = (R S) TR (S T) = (R S) T

– Comutativa

(R S) = (S R)(R S) = (S R)

Page 31: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Equivalências de Expressões Algébricas

• Seleção e Projeção – ΠX σc (R) = σc ΠX (R)

Onde todos os atributos aparecendo na condição c estão contidos em X

Page 32: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Equivalências de Expressões Algébricas

• Seleção e Junção– R S = σc (R S)

– σc (R S) = (σc R S) • se todos os atributos de c são atributos de R e não de S

– σc (R S) = (σc R S) • se todos os atributos de c são atributos de R e não de S

Vantagens: junção pode ser feita entre relações menores.

c

Page 33: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Equivalências de Expressões Algébricas

• Projeção e Produto Cartesiano– ΠX (R S) = (ΠY R ΠZ S)

• Y = atributos de X que aparecem em R• Z = atributos de X que aparecem em S

– Exemplo: ΠAB (R S) = (ΠA R ΠB S) • onde R(AC) e S(BC)• Vantagem: Produto cartesiano pode ser feito entre

relações menores.

Page 34: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Equivalências de Expressões Algébricas

• Projeção e Junção – ΠX (R S) = (ΠY R ΠZ S)

• Y = atributos de X que aparecem em R• Z = atributos de X que aparecem em S• Os atributos envolvidos na condição de junção c devem aparecer

em X

– Exemplo : R(ACD), S(BEC), X = {A, B, C}, condição de junção : R.C = S.C

ΠABC (R S) = (ΠAC R ΠBC S)

c

c c

c

Page 35: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

ESTIMATIVAS DE CUSTOS DE PLANOS DE EXECUÇÃO

• Uso de estatísticas sobre tabelas e indices armazenadas no catálogo

• Uso de Histogramas atualizados periodicamente e mantidos no catálogo do sistema.

Page 36: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Estatísticas sobre tabelas e indices armazenadas no catálogo:

• NTuples (R) = Número de tuplas da tabela R• NPages(R) = Número de páginas da tabela R• NKeys(I) = número de chaves distintas do Indice I• INPages(I) = número de páginas do indice I (no caso de B+tree = número de folhas)• IHeight(I) = Altura do Indice (no caso de B+tree)• ILow(I) = menor valor de chave do indice I• IHigh(I) = maior valor de chave do indice I

Page 37: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Pipeline versus Tabelas Materializadas

• Pipeline : resultado de uma operação é transferido para a próxima operação sem a criação de uma tabela em disco.

• Economia de custos de armazenamento e de leitura posterior

• Sempre que o algoritmo do operador para o qual é transferido o resultado permitir, a técnica de pipeline é utilizada.

Page 38: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Estimativa de Custos de um Plano de Execução

Para cada nó da árvore N da árvore, seja Op(N) a operação associada a N.

Tarefas do Estimador de Custos• Estimar do custo de Op(N)• Estimar o tamanho do resultado de Op(N)

Page 39: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Estimativa do Tamanho do Resultado

SELECT <lista de atributos> FROM < lista de relações R1,...,Rk > WHERE <cond1 ^ cond2 ^....^condn>

• Número máximo de tuplas no resultado = M1.M2....Mk, onde Mi = tamanho de Ri • Cláusula WHERE atua como um redutor desta

estimativa • Cada condição do WHERE tem o seu fator de

redução próprio

Page 40: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Fatores de Redução• R.A = valor

– Fator de redução = 1/NKeys(I), caso exista um indice I com chave A para a relação R

– Fator de redução = 1/10, caso contrário (ou utiliza-se estatísticas mantidas no catálogo sobre a distribuição dos valores dos atributos)

• R.A = R.B– Fator de redução = 1/Max(NKeys(IA),NKeys(IB)) se existe

indices IA e IB com chave A e B respectivamente.– Fator de redução = 1/NKeys(I) se somente um dos

atributos é chave de um indice I– Fator de redução = 1/10 caso contrário.

Page 41: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Fatores de Redução

• R.A > valor– Fator de redução = (High(I) – valor) / High(I) – Low(I) caso

exista um indice I com chave A para a relação R– Fator de redução = fração < ½ caso não exista indice ou se

o valor não é aritmético

• R.A IN (Lista de valores) – Fator de redução =

• N*(fator de redução de R.A = valor), onde N = núm. de itens

– Fator de redução = fração < ½ caso não exista índice ou se o valor não é aritmético.

Page 42: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Fatores de Redução

• R.A IN (Subconsulta) – Fator de redução: M/N onde

• M = tamanho do resultado da Subconsulta• N = número de valores do atributo R.A

• NOT (Cond) – Fator de redução: (1 – Fator de Redução(Cond))

• Fator de Redução da Projeção = fração equivalente ao tamanho dos atributos que não são eliminados.

Page 43: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Histograma

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

2

3 3

12 22

3

1 10

8

4 4

9

3

3 3 33 3 3 3 33 3 3 3 3 3 3

Distribuição real

Distribuição uniforme

Page 44: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Histogramas

Supõe-se um conjunto de N tuplas, com valores do atributo A variando de v1 a v2.

Supõe-se que para cada valor v do atributo A, v1 ≤ v ≤ v2, temos o número de tuplas N(v) com este valor para

Estimativas do número de tuplas com valor x:• Estimativa exata : N(x)• Estimativa usando distribuição uniforme: Média aritméticas

dos valores

Page 45: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Histogramas por Largura Histograma por largura : • particiona-se o conjunto de valores em K grupos, com o mesmo número

de valores cada um. • Para cada grupo de valores, determina a média do número de tuplas do

grupo

Como estimar N(x) usando um histograma por Largura

• Estimativa do número de tuplas com valor x = média do número de tuplas do grupo ao qual x pertence.

Page 46: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Histograma por largura

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

2.671.33

5

1

5 5 5

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

2

3 3

12 22

3

1 10

8

4 4

9

3

Page 47: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Uso do Histograma por largura

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

2.671.33

5

1

5 5 5

Distribuição uniforme: 3 tuplas Distribuição histograma por largura: 5 tuplas

Qual a estimativa da quantidade de tuplas com AGE > 13 ?

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

3 3 33 3 3 3 33 3 3 3 3 3 3

Page 48: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Histogramas em ProfundidadeHistograma em Profundidade :

• particiona-se o conjunto de valores em X grupos, com aproximadamente o mesmo número de tuplas em cada um.

• Para cada grupo de valores, determina a média do número de tuplas para cada valor do grupo.

Como estimar N(x) usando um histograma por Comprimento

• Verifica em que grupo de valores o valor x se encaixa.• N(x) = média do número de tuplas associado aos valores deste grupo.

Page 49: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Histograma por profundidade

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

1.80

6

9

2.67

8 tuplas 7 tuplas

1.75

12 tuplas 9 tuplas 9 tuplas

6

Page 50: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Histograma por profundidade

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

1.80

6

9

2.67

8 tuplas 7 tuplas

1.75

12 tuplas 9 tuplas 9 tuplas

Distribuição histograma por profundidade = 9 tuplas

6

Distribuição uniforme: 3 tuplas

Distribuição histograma por largura: 5 tuplas

Qual a estimativa da quantidade de tuplas com AGE > 13 ?

Page 51: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Exercicio 4

100 tuplas, 20 valores variando de 1 a 98

1 3

4 10

6 4

10 3

22 8

31 9

35 2

43 5

47 7

53 8

58 2

60 7

63 3

65 4

76 3

78 7

80 2

84 4

93 3

98 6

1. Descrever uma distribuição uniforme paraestes dados.

2. Fazer um histograma por largura .

3. Estimar o número de tuplas com valores > 30, supondo uma distribuição uniformedos dados.

4. Estimar o número de tuplas com valores > 30, supondo uma distribuição de acordocom o histograma por largura.

Page 52: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

100 tuplas, 20 valores variando de 1 a 98

1 3

4 10

6 4

10 3

22 8

31 9

35 2

43 5

47 7

53 8

58 2

60 7

63 3

65 4

76 3

78 7

80 2

84 4

93 3

98 6

1. Fazer um histograma por profundidade .

2. Estimar o número de tuplas com valores > 30, supondo uma distribuição de acordocom o histograma por largura.

Page 53: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Histogramas comprimidos

• Histogramas por profundidade produzem melhores estimativas do que histogramas por largura

• Histogramas comprimidos– Mantém contadores para valores mais frequentes (por

exemplo idade = 7 e idade = 14)– Para os outros valores, mantém um histograma por

profundidade (de preferência) ou por largura.• Muitos SGBDs utilizam histograma por

profundidade, alguns utilizam mesmo histogramas comprimidos.

Page 54: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

GERAÇÃO DE PLANOS COM MÚLTIPLAS RELAÇÕES

A B C D

A B

C

D

A B

C

D

BA C D

PLANOS LINEARES

PLANO BUSHY

PLANO POR PROFUNDIDADE À ESQUERDA

Page 55: REVISÃO PARA 3a PROVA Gerência de Banco de Dados Profa. Sandra de Amo Disciplina GBC053 Bacharelado em Ciência da Computação.

Planos por profundidade à esquerda

• São os únicos a serem considerados:– Quanto maior o número de joins maior o número de planos

alternativos. Por isto opta-se por considerar somente os left-deep.

– Planos left-deep permitem utilizar estratégia pipeline à esquerda com a relação externa. A relação interna é sempre uma relação de base (materializada).

– Repare que não é possível utilizar pipeline à direita de um join. É sempre necessário que a relação interna esteja disponível em sua integralidade, pois é varrida diversas vezes.

– No caso de planos left-deep, este problema não acontece, pois o filho à direita de um Join é sempre uma relação de base (materializada).