Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join
|
|
|
- Neusa Brezinski Medina
- 7 Há anos
- Visualizações:
Transcrição
1 Bases de Dados Algoritmos para junção Algoritmos para junções Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join A escolha é baseada no custo de cada um deles 2 1
2 Nested-loop join Para calcular a junção-θ (r θ s) for each tuplo t r in r for each tuplo t s in s se o par (t r,t s ) satisfaz a condição θ então adicionar t r t s ao resultado Custos transferência: b r + n r * b s localização: b r + n r 3 Block nested-loop join for each bloco B r of r for each bloco B s of s for each tuplo t r in B r for each tuplo t s in B s se o par (t r,t s ) satisfaz a condição θ então adicionar t r t s ao resultado Custos transferência: b r + b r * b s localização: b r + b r 4 2
3 Indexed nested-loop join Para calcular a junção natural (r s) for each tuplo t r in r usar índice para encontrar tuplos de s que têm o mesmo valor que t r no atributo da junção Custo: b r (t T + t S ) + n r c onde c é o custo de uma operação de selecção com índice depe do índice e do atributo da junção ver algoritmos de selecção A3, A4, A5 5 Merge-join Para calcular a junção natural (r s) 1. ordenar relações r e s pelo atributo da junção 2. fundir as duas relações numa só (merge) semelhante ao passo 2 da ordenação Custos (*) transferência: b r + b s localização: b r + b s e ainda os custos de ordenação (*) assumindo que os registos com o mesmo valor do atributo cabem todos num bloco 6 3
4 Hash-join Para calcular a junção natural (r s) não requer ordenação abordagem build-and-probe Se a relação mais pequena couber em memória 1. build criar índice hash em memória para essa relação 2. probe pesquisar os elementos da outra relação no índice Se nenhuma das relações couber em memória 7 Hash-join Para calcular a junção natural (r s) subdividir os registos de r e s em n partições função de hash diz qual é a partição para um dado registo a função calcula a partição com base no atributo da junção aplicar build-and-probe a cada par de partições custos transferência: 3*b b r + 3*b b s localização: 2*b r + 2*b s + 2*n h n h = nº de partições 8 4
5 Junções com múltiplos critérios Junção com conjunção de critérios (r θ1 Λ θ 2 Λ θ n s) usar nested-loop join, block nested-loop join, ou aplicar diferentes algoritmos para cada (r θi s) e no final fazer a intersecção dos resultados de cada junção Junção com disjunção de critérios (r θ1 V θ 2 V θ n s) usar nested-loop join, block nested-loop join, ou aplicar diferentes algoritmos para cada (r θi s) e no final fazer a união dos resultados de cada junção 9 Algoritmos de junção no Postgres indexed nested-loop join merge join hash join 10 5
6 Bases de Dados Algoritmos para outras operações Outras operações Eliminação de duplicados ordenar e apagar tuplos adjacentes em duplicado optimização: durante própria ordenação, não colocar na saída tuplos duplicados select distinct customer_name from depositor; 12 6
7 Outras operações Agregações exemplo: branch_name G sum(balance) (account) usando ordenação ou hashing é possível agrupar tuplos pelo atributo branch_name depois aplica-se a função de agregação (sum) a cada grupo optimização: durante a própria ordenação (passos 1 e 2) ir calculando agregações "parciais" com tuplos que estejam no mesmo grupo funciona para as funções count, min, max, sum para a função avg, calcular via agregações parciais de sum e count e no fim dividir um resultado pelo outro 13 Outras operações Operações com conjuntos (r U s, r s, r s) podem ser implementadas como variantes do algoritmo hash-join dividir ambas as relações em partições para cada partição i construir um índice do tipo hash para r i e agora r U s : colocar no índice todos os tuplos de s i excepto os que já lá estiverem r s : devolver os tuplos de s i mas apenas aqueles que já estão no índice r s : retirar do índice os tuplos de s i que já lá estiverem adicionar conteúdo do índice ao resultado 14 7
8 Outras operações Junções externas (r s, r s, r s) pode ser implementadas como variantes do algoritmo merge-join r s : durante o merge cada tuplo de r que não encontra correspondente em s é colocado no resultado com nulls nos lugares dos atributos de s junções externas à direita e completas implementadas de forma semelhante 15 Bases de Dados Avaliação de expressões 8
9 Avaliação de expressões Existem duas técnicas para avaliação de expressões materialização resolver uma operação de cada vez resultados intermédios são guardados em disco pipelining resolver todas as operações ao mesmo tempo assim que saia um tuplo de uma operação, é logo passado para o cálculo da operação seguinte, mesmo antes da primeira i ter terminado 17 Materialização Π customer_name (σ balance < 2500 (account) customer) 1. selecção 2. guardar resultado 3. junção 4. guardar resultado 5. projecção 6. mostrar resultado custos em materialização soma dos custos das operações individuais mais o custo de transferência de resultados intermédios 18 9
10 Pipelining Π customer_name (σ balance < 2500 (account) customer) 1. procurar um registo com balance < fazer junção natural desse registo com os registos em customer 3. projectar os resultados (se houver) para customer_name 4. colocar o resultado (se houver) na saída 5. voltar a 1. e repetir para todos os registos com balance < 2500 não é necessário guardar resultados intermédios menor custo que a materialização mas nem sempre o pipelining pode ser usado p.ex. em ordenações e hash-joins 19 Materialização e pipelining no Postgres select customer_name from depositor natural join account group by customer_name having sum(balance) >= all (select sum(balance) from depositor natural join account group by customer_name); 20 10
Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL
Sistemas de Informação e Bases de Dados 2012/2013 Linguagem SQL Alberto Sardinha Sumário Linguagem SQL 1 Operações com strings operador like Exemplo: nomes dos clientes cuja rua possui a sequência Main
A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge
Bases de Dados Elementos da linguagem SQL Ordenação de tuplos orderby A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de
Ordenação de tuplos order by
Bases de Dados Elementos da linguagem SQL Ordenação de tuplos order by A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de
Bases de Dados. Junção de relações. Junção de relações
Bases de Dados Junção de relações Junção de relações Tipicamente usadas na cláusula from SQL oferece várias possibilidades condição da junção determina quais são os atributos a comparar tipo de junção
Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas
Capítulo 4: SQL Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas Junções Vistas Modificação da Base
Sumário SELECT + FROM
Sumário 1 Introdução SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 2 3 Operadores de Conjuntos 4 5 Agregações 6 Ordenações e Limites 7 Sub-perguntas 8
SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012
SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Perguntas February 24, 2012 1 / 46 Sumário 1 Introdução 2 Seleccionar e Filtrar
de Bases de Dados Exame 1
Ano lectivo 2011/2012 2 o semestre Administração e Optimização de Bases de Dados Exame 1 Regras O exame tem a duração de 2 horas. O exame é individual e com consulta. Poderá consultar o livro, slides da
- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.
2.3 Linguagens relacionais (continuação) SQL Structured Query Language 1) "Query block" Select From Where - Um "query block" permite a implementação
INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados
Número: Nome: -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Exame
Processamento e Otimização de Consultas. Msc. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR
Processamento e Otimização de Consultas Msc. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR Conteúdo Processamento de consultas; Introdução Etapas no Processamento de Consultas
Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas
Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar
Linguagem SQL Comando SELECT Agrupamento de Resultados
BDDAD Bases de Dados Linguagem SQL Comando SELECT de Resultados Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/12 Introdução Sumário Funções de Agregação Básicas COUNT SUM MIN MAX AVG Cláusulas de GROUP BY HAVING
ANÁLISE E PROJETO DE BANCO DE DADOS
ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início
Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas
DI-FCT/UNL 28 de abril de 2018 Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas N. º : Nome: Grupo 1 (7 valores) 1 a) Para cada uma das seguintes
Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)
Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,
Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003
Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,
Álgebra Relacional e SQL
Álgebra Relacional e SQL Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Álgebra Relacional Maneira teórica de se manipular o banco de dados relacional Linguagem de consulta procedural usuários
Operações Estendidas da Álgebra Relacional
Consultas de exemplo Operações Estendidas da Álgebra Relacional Quais os fármacos alguma vez prescritos por cardiologistas? Π nomef (farmacos receitas consultas σ especialidade cardiologia (medicos)) Aumentam
SQL-99: Esquema de BD EMPRESA
SQL-99: Esquema de BD EMPRESA SQL-99: Instâncias do esquema EMPRESA 1 Consultas externa, aninhada e correlacionada para cada tupla da consulta externa, a consulta aninhada devolve o atributo solicitado
SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE
SQL (Tópicos) Structured Query Language
SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir
SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...
Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni [email protected] Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...
Rápida revisão do Modelo Relacional
Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.
Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,
Bases de Dados Álgebra Relacional II Junções, agregações, vistas P. Serendero, 2011-13 1 JUNÇÕES OU JOINS em SQL - R S A condição do JOIN é especificada na claúsula ON ou USING,, ou implicitamente
MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.
MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza DML Data Manipulation Language Linguagem de Manipulação de Dados Comandos básicos: Insert Update
SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
SQL Comandos para Relatórios e Formulários Laboratório de Bases de Dados SELECT SELECT FROM [ WHERE predicado ] [ GROUP BY ]
Bases de Dados. DML Data Manipulation Language Parte 2
Bases de Dados DML Data Manipulation Language Parte 2 Funções de Grupo São funções aplicáveis a conjuntos de linhas de uma tabela À totalidade dos elementos ou A um subconjunto especificado na cláusula
SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.
LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre
Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU
Aula 11 SBD SQL Parte 3 Profa. Elaine Faria UFU - 2018 Group by e Having Às vezes deseja-se aplicar operações agregadas a cada um dos vários grupos de linhas em um relação Group by e Having C31: Encontre
Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;
MySQL SQL (Structured Query Languagem ) Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; Inicialmente - Sequel
Definida pelo American National Standard Institute (ANSI) em 1986
2.3. Linguagens Relacionais SQL Structured Query Language Linguagem para o modelo relacional: Definida pelo American National Standard Institute (ANSI) em 1986 Adoptada em 1987 como um standard internacional
UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO
UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton
Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado
Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado Forma geral: SELECT FROM [WHERE ] [GROUP BY ]
Otimização e Execução de Consultas Caso Centralizado Parse Query
Bancos de Dados III Processamento de Consultas em Bancos de Dados Distribuídos Rogério Costa [email protected] 1 Otimização e Execução de Consultas Caso Centralizado Parse Query Check de Semântica
Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes
Escola Secundária de Albufeira Comandos MySQL (Páginas Web Dinâmicas: PHP e MySQL) ([email protected]) 2009/2010 Criar Base de Dados CREATE DATABASE basededados; Apagar Base de Dados DROP DATABASE basededados;
Bacharelado em Ciência da Computação UFU Disciplina GBC053 Gerência de Banco de Dados Profa. Sandra de Amo
Bacharelado em Ciência da Computação UFU Disciplina GBC053 Gerência de Banco de Dados Profa. Sandra de Amo Solução dos Exercicios Aula 26 Cálculo de Custos de Planos de Execução de Consultas R(sid,bid,day,rname)
Aula 10 BD 1 SQL Parte 2. Profa. Elaine Faria UFU
Aula 10 BD 1 SQL Parte 2 Profa. Elaine Faria UFU - 2018 Consultas Aninhadas É um dos recursos mais poderosos da SQL É aquela que tem outra consulta embutida dentro dela A consulta embutida é chamada de
Banco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006
Banco de Dados Otimização de consultas Última atualização: 15 de maio de 2006 Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai Introdução Consulta em linguagem de alto nível Análise e validação Forma
BANCO DE DADOS PARA WEB
BANCO DE DADOS PARA WEB PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com [email protected] BANCO DE DADOS O banco de dados será de fundamental importância para a criação de páginas dinâmicas,
Capítulo 4: SQL! Database System Concepts! Silberschatz, Korth and Sudarshan (modificado)!
Capítulo 4: SQL! Linguagem de Definição de Dados" Estrutura básica" Operações com conjuntos" Funções de agregação" Valores nulos" Subconsultas embutidas" Relações derivadas" Junções" Vistas" Modificação
Projeto de Banco de Dados
Projeto de Banco de Dados Laboratório de Banco de Dados Prof. Luiz Antônio Vivacqua C. Meyer ([email protected]) Sintaxe Geral SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1, nome_tabela2,...,
Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva -
Banco de dados Aula 22 O Comando SELECT 1 O comando SELECT O comando SELECT serve para recuperarmos os dados armazenados no banco de dados. Sua estrutura BASICA é: SELECT FROM WHERE campo1, campo2, campo3,
SQL Consultas Básicas
SQL Consultas Básicas Consulta a dados de uma tabela select lista_atributos from tabela [where condição] Mapeamento para a álgebra relacional select a 1,..., a n from t where c π a1,..., an (σ c (t)) Exemplos
Bases de Dados 2008/2009
Instituto Superior Técnico Bases de Dados 2008/2009 Exame de 12 de Janeiro de 2009 --- Resolução --- 1. Considere o seguinte cenário relativo a uma farmácia: Um paciente dirige-se ao médico e apresenta
Prof. Fabiano Taguchi
BANCO DE DADOS Prof. Fabiano Taguchi http://fabianotaguchi.wordpress.com [email protected] OPERAÇÕES LÓGICAS AND (E) Avalia as condições e devolve um valor verdadeiro caso ambas condições forem
Material Teórico. Cláusula GROUP BY e HAVING. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque
Banco de Dados Material Teórico Cláusula GROUP BY e HAVING Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Revisão Textual: Profa. Esp.Vera Lídia de Sá Cicarone Cláusula GROUP BY e
Subconsulta na Cláusula FROM
Subconsulta na Cláusula FROM Gera uma tabela derivada a partir de uma ou mais tabelas, para uso na consulta externa otimização: filtra linhas e colunas de uma tabela que são desejadas pela consulta externa
SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT
Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni [email protected] Bloco B - sala 937 2 quadrimestre
Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.
Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais. A instrução SELECT As consultas a uma base de dados relacional fazem-se
Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos
Bases de Dados Stored procedures e triggers Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção
Prova de Fundamentos de Bancos de Dados 2 a Prova
Prova de Fundamentos de Bancos de Dados 2 a Prova Prof. Carlos A. Heuser Junho de 2009 Prova com consulta duas horas de duração Considere a base de dados abaixo (base de dados idêntica a da 1 a prova.
Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:
Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção
TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE
TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE CARACTERISTICA DE UMA TABELA: NÃO EXISTEM DUAS LINHAS IGUAIS A ORDEM DAS LINHAS É INSIGNIFICANTE A ORDEM DAS COLUNAS É INSIGNIFICANTE
