Manipulação algébrica

Slides:



Advertisements
Apresentações semelhantes
Base de Dados para a Gestão de Informação de Natureza Pedagógica
Advertisements

Algoritmo e Programação
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Resolução de equações não lineares
AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Álgebra Relacional Marcelo Mendes Manaus
Modelo Relacional.
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Prof.: Bruno Rafael de Oliveira Rodrigues
Producto x Processo x Projecto
10º CAPÍTULO Segmentação de imagem.
Linguagens relacionais
Conjuntos disjuntos Objectivo
Modelo Entidade-Relacionamento
Introdução a Algoritmos Seqüenciais
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Cálculo Relacional Datalog não-recursivo
Algebra relacional nomeada e não-nomeada
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Subconsultas ou Consultas Aninhadas
Universidade Federal de Santa Catarina
Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Modelo Relacional parte 1
SQL – DML Consultas envolvendo relacionamentos entre tabelas
Soma de Produtos Soma de produtos é uma forma padrão de representação de funções Booleanas constituida pela aplicação da operação lógica OU sobre um conjunto.
ÁLGEBRA RELACIONAL Cada operador da álgebra relacional toma uma ou duas relações como sua entrada e gera uma nova relação como saída. São oito os operadores.
Álgebra Relacional – Parte 2
Álgebra Relacional – Parte 3
Pesquisa em Memória Primária
Medida do Tempo de Execução de um Programa
Pesquisa em Memória Primária
Métodos de Pesquisa: Seqüencial e Binária
FLG Análise Espacial e Geoprocessamento
Complexidade de Algoritmos
FORMAS DE REPRESENTAÇÃO QUE SERVEM PARA DESCREVER AS ESTRUTURAS DAS INFORMAÇÕES CONTIDAS EM UM BD. Modelos de Dados.
Modelo Relacional Uma base de dados é Uma relação é
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Colégio da Imaculada Curso Técnico em Informática Álgebra Relacional
PROGRAMAÇÃO I UNIDADE 1.
Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC
Produto cartesiano Mais parâmetros dos dados Algoritmo
Estruturas de Dados com Jogos
Autoria de Aplicações Hipermídia Daniel Schwabe Departamento de Informática PUC-Rio [ Parte 6 ]
AULA 26 Profa. Sandra de Amo GBC053 – BCC
Otimizador de consultas
Introdução a Programação
Universidade Católica de Pelotas Mestrado em Ciência da Computação
Otimização de Consultas em SQL Planos de Execução
Formas Normais e Resolução
Algoritmos de Processamento e Otimização de Consultas
Lógica de Programação/ Algoritmos Engenharia Produção 2014
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Álgebra Relacional (Exemplos)
Conceitos Programas Programação Linguagens de Programação SQL.
Princípios da Programação em Prolog
Operadores Relacionais e Lógicos
Programação de PIC em C Exposição das funções básicas para
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
Algoritmos.
AOBD 07/08 Mini-Projecto 2 Soluções. 1) Considere que existem três relações R1=(A,B,C), R2=(C,D) e R3=(D,E) com chaves primárias A, C e D, respectivamente.
Optimização - 1 Optimização de perguntas 1 Processamento de selecções 2 Processamento de junções 3 Manipulação algébrica.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Banco de Dados I Unidade 6 Processamento de Consultas Otimização Lógica.
©Silberschatz, Korth and Sudarshan (Modificado)3.2.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
Bases de dados relacionais
Métodos de Pesquisa: Sequencial e Binária
 O Modelo E-R (Entidade-Relação)
Codificadores e Decodificadores Prof. Lucas Santos Pereira
1 Estruturas Condicionais Aula – Tópico 3 Algoritmos e Estruturas de Dados I (DCC/003)
Modelagem de Dados Aula 3.
Transcrição da apresentação:

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

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 pesquisa sequencial da selecção de CARRO Mais eficiente: começa por relações pequenas, selecções da forma A=c

Árvores de análise a) rua, cidade rua, cidade b) ⋈ ⋈ predio=P# dono=bi ⋈ PREDIO marca=‘Renault’ ⋈ dono=bi predio=P# marca=‘Renault’ PESSOA CARRO PESSOA PREDIO CARRO 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

Leis de transformação algébrica 1 Leis comutativas para junções e produtos E1 E2 E2  E1 E1⋈ E2 E2 ⋈ E1 E1⋈F E2 E2 ⋈F E1 2 Leis associativas para junções e produtos (E1 E2)  E3  E1  (E2  E3) (E1⋈ E2) ⋈ E3  E1 ⋈ (E2 ⋈ E3) (E1⋈F1 E2) ⋈F2 E3  E1 ⋈F1 (E2 ⋈F2 E3) 3 Cascata de projecções A1,...,An (B1,...,Bm(E))  A1,...An(E) 4 Cascata de selecções F1 (F2 (E))  F1 .F2(E) 5 Comutação de selecções e projecções A1,...,An (F (E))  F (A1,...An(E))

Leis de transformação algébrica 6 Comutação de selecções e produtos F (E1 E2)  F3 [F1 (E1) F2 (E2)] 7 Comutação de selecções e reuniões F(E1  E2)  F(E1)  F(E2) 8 Comutação de selecções e diferenças F(E1 - E2)  F(E1) - F(E2) 9 Comutação de selecções e junções naturais F(E1 ⋈ E2)  F(E1) ⋈ F(E2) 10 Comutação de projecções e produtos A1,...,An (E1  E2))  B1,...,Bm(E1)  C1,...Ck(E2) 11 Comutação de projecções e reuniões A1,...,An (E1  E2)  A1,...An(E1)  A1,...An(E2)

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)

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

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 2000-03-21? título[data<2000-03-21(Empréstimos)]

Árvores de análise título título  L.num=R.num data < 2000-03-21   título, autor, enome, L.num, nome, morada, cidade, U.cartão, data  U.cartão=R.cartão Livros  U.cartão=R.cartão  L.num=R.num   data < 2000-03-21 Utentes  Livros Requisições Requisições Utentes Árvore inicial Árvore intermédia

Programa título Grupo 2  L.num=R.num  R.num título, L.num Grupo 1  U.cartão=R.cartão Livros  R.num, R.cartão U.cartão data < 2000-03-21 Utentes Árvore final Requisições