A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Optimização - 1 Manipulação algébrica Linguagens de alto nível servem para exprimir a intenção do utilizador - leitura declarativa leitura procedimental:

Apresentações semelhantes


Apresentação em tema: "Optimização - 1 Manipulação algébrica Linguagens de alto nível servem para exprimir a intenção do utilizador - leitura declarativa leitura procedimental:"— Transcrição da apresentação:

1 Optimização - 1 Manipulação algébrica Linguagens de alto nível servem para exprimir a intenção do utilizador - leitura declarativa leitura procedimental: pergunta especifica ordem de execução das operações Ao nível da execução a preocupação é a eficiência pode implicar reescrita da pergunta original noutra equivalente Equivalência de duas relações considera-se (neste capítulo) que os atributos têm nome e portanto a ordem por que aparecem na relação é irrelevante, sem introdução de ambiguidade relação enquanto conjunto de mapeamentos em vez de conjunto de tuplos

2 Optimização - 2 Ordem das junções Exemplo: PESSOA( bi, nome, prédio ) CARRO( matricula, marca, dono ) PREDIO( P#, rua, cidade ) pergunta: quais as ruas e cidades onde moram as pessoas proprietárias de veículos de marca Renault? Estratégias de resolução (diferem na ordem de execução das junções) a) passagem sequencial de CARRO, com selecção marca=Renault junção com PESSOA pela chave junção com PREDIO pela chave b) passagem sequencial de PESSOA junção com PREDIO pela chave pesquisa sequencial da selecção de CARRO Mais eficiente: começa por relações pequenas, selecções da forma A=c

3 Optimização - 3 Árvores de análise Res= {t| t=(r,c) PESSOA(bi,n,p) CARRO(m,Renault,bi) PREDIO(p,r,c) opção entre a) (mais eficiente) e b) não pode ser deixada ao utilizador captura-se a intenção, quer a formulação seja algébrica quer em cálculo aplica-se algoritmo de optimização, se não for excessivamente pesado rua, cidade predio=P# dono=bi marca=Renault PESSOA CARRO PREDIO rua, cidade predio=P# dono=bi marca=Renault PESSOA CARRO PREDIO a) b)

4 Optimização - 4 Leis de transformação algébrica 1Leis comutativas para junções e produtos E 1 E 2 E 2 E 1 E 1 E 2 E 2 E 1 E 1 F E 2 E 2 F E 1 2Leis associativas para junções e produtos (E 1 E 2 ) E 3 E 1 (E 2 E 3 ) (E 1 F1 E 2 ) F2 E 3 E 1 F1 (E 2 F2 E 3 ) 3Cascata de projecções A1,...,An ( B1,...,Bm (E)) A1,...An (E) 4Cascata de selecções F1 ( F2 (E)) F1.F2 (E) 5Comutação de selecções e projecções A1,...,An ( F (E)) F ( A1,...An (E))

5 Optimização - 5 Leis de transformação algébrica 6Comutação de selecções e produtos F (E 1 E 2 ) F3 [ F1 (E 1 ) F2 (E 2 )] 7Comutação de selecções e reuniões F (E 1 E 2 ) F (E 1 ) F (E 2 ) 8Comutação de selecções e diferenças F (E 1 - E 2 ) F (E 1 ) - F (E 2 ) 9Comutação de selecções e junções naturais F (E 1 E 2 ) F (E 1 ) F (E 2 ) 10Comutação de projecções e produtos A1,...,An (E 1 E 2 )) B1,...,Bm (E 1 ) C1,...Ck (E 2 ) 11Comutação de projecções e reuniões A1,...,An (E 1 E 2 ) A1,...An (E 1 ) A1,...An (E 2 )

6 Optimização - 6 Princípios da manipulação algébrica Executar as selecções tão cedo quanto possível Combinar selecções com um produto cartesiano anterior para obter junções Combinar sequências de operações unárias Procurar subexpressões comuns numa expressão (vistas) Passos de um programa: Aplicação de uma projecção ou selecção simples Aplicação de uma selecção seguida de uma projecção Aplicação de um produto, reunião ou diferença, conjuntamente com selecções e/ou projecções nos operandos ou no resultado da operação binária, (trabalhando ao nível do tuplo)

7 Optimização - 7 Algoritmo de optimização Entrada: expressão de álgebra relacional Saída: programa para avaliar a expressão Método: executar, por ordem, cada um dos seguintes passos Usar a lei 4 para transformar cada selecção F1... Fn (E) na cascata F1 (... Fn (E)...) Leis 4 a 9 puxar selecções para baixo Leis 3, 10, 11, 5 puxar as projecções para baixo Leis 3 a 5, simplificar cascatas Partição em grupos dos nós internos da árvore resultante, agrupando cada operador binário com os unários acima (e com os debaixo se estes atingirem as folhas) Cada grupo origina um passo do programa, avaliar das folhas para a raiz

8 Optimização - 8 Exemplo de optimização Esquema da BD Livros( título, autor, enome, num ) Editores( enome, emorada, ecidade ) Utentes( nome, morada, cidade, cartão ) Requisições( cartão, num, data ) Vista Empréstimos = S [ F (Livros Utentes Requisições)] em que S: título, autor, enome, num, nome, morada, cidade, cartão, data F: U.cartão=R.cartão L.num=R.num Pergunta: quais os livros emprestados antes de ? título [ data< (Empréstimos)]

9 Optimização - 9 Árvores de análise data < Livros título título, autor, enome, L.num, nome, morada, cidade, U.cartão, data U.cartão=R.cartão L.num=R.num RequisiçõesUtentes data < Livros título U.cartão=R.cartão Requisições Utentes L.num=R.num Árvore inicial Árvore intermédia

10 Optimização - 10 Programa data < Livros título U.cartão=R.cartão Requisições Utentes L.num=R.num Árvore final título, L.num R.num R.num, R.cartão U.cartão Grupo 1 Grupo 2


Carregar ppt "Optimização - 1 Manipulação algébrica Linguagens de alto nível servem para exprimir a intenção do utilizador - leitura declarativa leitura procedimental:"

Apresentações semelhantes


Anúncios Google