Bancos de Dados. 15. Processamento e O3mização de Consultas

Tamanho: px
Começar a partir da página:

Download "Bancos de Dados. 15. Processamento e O3mização de Consultas"

Transcrição

1 Bancos de Dados 15. Processamento e O3mização de Consultas

2 Introdução Existe nos SGBDR um módulo conhecido como o3mizador de consultas A expressão o3mização de consultas, embora seja frequentemente u3lizada, é na verdade imprópria, pois em alguns casos a estratégia encontrada não é garan3damente a melhor possível (ó3ma) Encontrar a estratégia ó3ma consumiria muito tempo, e exigiria o uso de informação dinâmica sobre o conteúdo e organização em disco das tabelas Em vez de o3mização de consultas, deveríamos dizer planejamento de execução de consultas

3

4 Introdução Em algumas linguagens de consulta, a estratégia está definida na maneira em que o programador implementa a consulta Em SQL, que é uma linguagem declara3va, apenas os resultados desejados são especificados Portanto, a o3mização de consultas é necessária em SGBD relacionais, baseados em SQL

5 Introdução Passos: Tradução de consultas SQL em álgebra relacional O3mização usando o resultado da tradução Estratégias de o3mização Heurís3cas Baseadas na es3ma3va de custos O3mização semân3ca (recente)

6 Ferramentas Algoritmos para ordenação em memória secundária Algoritmos para SELECT Algoritmos para JOIN Algoritmos para PROJECT e operações de conjunto Alterna3vas para implementação das operações de agregação e outros 3pos de JOIN (OUTER, LEFT, RIGHT, etc.)

7 Ordenação Externa A ordenação é um dos principais recursos para o3mização de consultas Usada sempre que aparece ORDER BY Usada para implementar algoritmos SORT-MERGE para processar junções Usada na eliminação de tuplas duplicadas (cláusula DISTINCT, ou em operações de conjuntos) A ordenação pode ser evitada se houver um índice Estratégia usual: SORT-MERGE Dividir a tabela em pedaços que caibam na memória Ordenar cada pedaço e salvar em disco Mesclar os pedaços (à la MergeSort) Vide E&N para a análise de complexidade

8

9 Ordenação Externa O tamanho dos buffers de memória disponíveis para o SGBD é importante Tuning: definir um balanceamento para divisão da memória entre Buffers do SGBD e caches de I/O Espaço disponível para o S.O. (paginação, memória virtual) No tuning de I/O e do SGBD, o fator crí3co é a memória principal Se o SGBD usar memória em excesso, tornará o S.O. lento Se usar muito pouca memória, terá seu funcionamento prejudicado Servidores de BD 3picamente são configurados com muita memória, mas ter muitos dados em buffers de memória aguardando a gravação defini3va aumenta a dificuldade das operações de recuperação de falhas

10 Algoritmos para SELECT Casos gpicos de SELECT OP1: σ CPF= (EMPREGADO) Igualdade, atributo único, possível índice OP2: σ NUMDEP>5 (DEPARTAMENTO) Não igualdade, atributo único, possível índice OP3: σ NUD=5 (EMPREGADO) Igualdade em atributo não-chave OP4: σ (NUD=5 AND SALARIO>3000 AND SEXO=F) (EMPREGADO) Múl3plas condições simultâneas (conjun3vas) OP5: σ CPFE= AND PNO=10 (TRABALHA_EM) Múl3plas condições simultâneas (conjun3vas), com possível índice

11 SELECT Algoritmos para implementação de SELECT S1. Busca linear (força bruta) S2. Busca binária S3a. Usar um índice primário S3b. Usar uma chave de hash S4. Usar índice primário para recuperar múl3plos resultados S5. Usar índice em cluster S6. Usar um índice secundário (ex. B+-tree) S7a. Usar índice em bitmap S7b. Usar um índice funcional S8. Métodos de busca para seleção conjun3va (índice composto, interseção de índices, índices mul3dimensionais ) S9. Métodos de busca para seleção disjun3va

12 Algoritmos para SELECT S1. Busca linear (força bruta): recuperar todos os registros no arquivo, testando se os valores atendem ou não à condição de seleção S2. Busca binária: executada sobre o atributo que determina a ordenação do arquivo (ex.: OP1, se CPF for a chave de ordenação do arquivo) S3: Uso de índice primário (ou chave de hashing): executada sobre o atributo que determina a indexação do arquivo. Recupera no máximo um registro (ex.: OP1, se CPF for a chave de indexação)

13 Algoritmos para SELECT S4. Uso de índice primário para recuperar múl3plos registros: executado se a comparação não for de igualdade mas for sobre um atributo chave de um índice primário (ex.: NUMDEP em OP2) S5. Uso de índice em cluster para recuperar múl3plos registros: executado se a comparação não for de igualdade e for sobre atributo não-chave que possui índice em cluster (ex.: NUD=5 em OP3) S6. Uso de índice secundário (B-tree, B+-tree) sobre comparação de igualdade: usado para recuperar um único registro se o atributo de indexação for chave (valores únicos) ou para recuperar múl3plos registros se o atributo de indexação não for chave

14 Algoritmos para SELECT S7. Seleção conjun3va usando índice individual: se um atributo envolvido em uma única condição simples em uma cláusula de junção conjun3va possuir um caminho de acesso que permita usar S2 a S6, selecionar com base nesse atributo e checar o atendimento às demais condições em cada registro recuperado S8. Seleção conjun3va usando índice composto: se dois ou mais atributos envolvidos em comparações de igualdade na condição de seleção conjun3va, e um índice composto exis3r para esses atributos, selecionar com base nesses atributos e checar o atendimento às demais condições em cada registro recuperado (ex.: OP5, com índice sobre CPFE e PNO)

15 Algoritmos para SELECT S9. Seleção conjun3va pela interseção de apontadores de registros: se índices secundários ou outros caminhos de acesso es3verem disponíveis para mais de um dos atributos envolvidos na condição de seleção conjun3va, cada índice pode ser usado para recuperar um conjunto de apontadores para registros que sa3sfazem parcialmente à condição. A interseção entre esses conjuntos indica os registros que devem ser recuperados

16 Métodos de acesso Exemplo: árvore B+ Clodoveu Davis 16

17 Ferramentas Es3ma3va da sele3vidade de uma condição Cálculo aproximado do custo de uma operação de seleção Heurís3ca: baseado no 3po do atributo e no operador de comparação Baseado em custos: cálculo apoiado por metadados man3dos pelo SGBD Usado na priorização das condições, quando há várias Condições mais sele)vas são executadas primeiro

18 N_distinct: se -1, provavelmente valores únicos; se < 1, indica % de registros únicos; se > 1, indica número de valores distintos Clodoveu Davis 18

19 Ferramentas Algoritmos para implementação de JOIN J1. Loops aninhados J2. Loops aninhados baseados em índice J3. Sort-merge join J4. Par33on-hash join Es3ma3vas do fator de seleção na junção Fração dos registros de uma tabela que serão combinados com registros da outra tabela

20 Algoritmos para JOIN JOIN é uma das operações mais pesadas no processamento de consultas Serão analisadas aqui apenas EQUIJOINs ou NATURAL JOINs, que são a maioria dos casos (R A=B S) Casos gpicos OP6: EMPREGADO DNO=NUMDEP DEPARTAMENTO OP7: DEPARTAMENTO CPFGER=CPF EMPREGADO

21 Algoritmos para JOIN J1. Junção usando loop aninhado (força bruta): para cada registro r de R, recuperar todo registro s de S e testar se os dois registros atendem a condição de junção J2. Junção usando loop simples: requer estrutura de acesso para recuperar os registros correspondentes na outra tabela, portanto um dos atributos da condição de junção precisa ser a chave de um índice J3. Junção sort-merge: se os registros de R e de S es3verem fisicamente ordenados pelos atributos A e B, realizar a junção pela varredura simultânea dos dois arquivos (este é o método mais eficiente possível)

22 Algoritmos para JOIN J4. Hash-join: os registros de R e de S são espalhados no mesmo arquivo de hash, usando a mesma função de hash e tendo os dois atributos, A e B, como chaves Primeira passada: hashing dos registros do arquivo que contém menos registros (R) Segunda passada: varredura simples dos registros do outro arquivo (S), testando o atendimento à condição de junção em todos os registros do bucket correspondente à chave de S

23 Algoritmos para JOIN Todos os algoritmos devem ser implementados para lidar com blocos de disco inteiros, em vez de registros individuais Há muita influência do tamanho do buffer na memória para executar as operações

24 Algoritmos para PROJECT e operações de conjunto O PROJECT é de implementação simples se a lista de atributos con3ver uma chave Se não con3ver, é necessário resolver a eliminação de duplicatas A eliminação é feita após uma ordenação, mas também pode ser resolvida usando hashing (como em J7) Operações de conjunto são caras, em par3cular o produto cartesiano A implementação é feita usando variações da técnica sortmerge, ou usando hashing

25 Algoritmos para Operações de Agregação e Outer Joins Os operadores de agregação podem ser implementados usando uma varredura na tabela ou o percurso de um índice, se disponível Se exis3r índice, o resultado de MIN e MAX pode ser ob3do diretamente O resultado de COUNT pode ser ob3do no índice, sem a necessidade de acessar os registros SUM e AVG podem ser muito simplificados se forem sobre um valor indexado

26 Algoritmos para Operações de Agregação e Outer Joins Quando existe cláusula GROUP BY, a tabela deve ser par3cionada em subconjuntos de tuplas Isso é feito usando hashing ou ordenando Se exis3r um índice em cluster, esse par3cionamento pode já estar pronto para uso Outer joins são resolvidos usando variações dos algoritmos de join, como J1 ou J2; no caso, o loop externo tem que ser sobre a tabela ligada ao lado do outer join

27 Tradução de Consultas SQL para AR Consultas SQL são decompostas em blocos Cada bloco é transformado em uma expressão da AR Os blocos são o3mizados internamente e através de decisões sobre a ordem de execução dos blocos Um bloco contém um único comando SELECT-FROM- WHERE, incluindo cláusulas GROUP BY e HAVING, se houver

28 Tradução de Consultas SQL para AR Exemplo SELECT nome FROM empregado WHERE salario > (SELECT MAX(salario) FROM empregado WHERE numdep = 5) SELECT MAX(salario) FROM empregado WHERE numdep = 5 SELECT nome FROM empregado WHERE salario > c > F MAX(salario) (σ numdep=5 (empregado)) > π nome (σ salario>c (empregado)) /* c = result.consulta anterior

29 Tradução de Consultas SQL para AR No exemplo, a subconsulta interna precisa ser executada apenas uma vez Subconsulta não correlacionada A ordem ideal é fácil de determinar Subconsultas correlacionadas (em que uma variável de tupla do bloco externo aparece no bloco interno) são bem mais complicadas

30 Heurís3cas para o3mização de consultas Sequência básica de eventos: O parser da consulta gera uma representação interna inicial A o3mização é realizada de acordo com regras heurís3cas Um plano de execução é construído, de modo a gerar grupos de operações com base nos arquivos e índices envolvidos O plano é repassado ao processador de run3me para escalonamento Em vez das regras heurís3cas, cálculos baseados em um modelo de custos podem ser usados

31 Árvores e grafos de consulta Árvore de consulta: corresponde a uma expressão em AR Relações de entrada são representadas em folhas Operações são representadas em nós internos A execução consiste em executar as operações assim que os operandos correspondentes es3verem disponíveis, e subs3tuir o nó interno com o resultado (uma relação) O processo termina quando o nó raiz é executado Exemplo: SELECT P.PNUMBER, P.DNUM, E.LNAME, E.ADDRESS, E.BDATE FROM PROJECT P, DEPARTMENT D, EMPLOYEE E WHERE P.DNUM = D.DNUMBER AND D.SSNMGR = E.SSN AND P.LOCATION= STAFFORD

32

33 Árvores e grafos de consulta Grafos de consulta: relações são indicadas em nós, valores constantes são indicados em nós com linhas duplas, e condições de seleção e junção são indicadas nos arcos Grafos de consulta não indicam a ordem de execução, ao contrário das árvores Existe apenas um grafo correspondente a cada consulta Árvores de consulta são preferidas para a o3mização, pois o processamento precisa ter sua ordem definida

34 O3mização heurís3ca de árvores de consulta Parte de uma árvore canônica, obviamente ineficiente mas fácil de compor No exemplo anterior, considerando: P tem 100 tuplas de 100 bytes D tem 20 tuplas de 50 bytes E tem 5000 tuplas de 150 bytes Os produtos cartesianos resultariam em 10 milhões de tuplas de 300 bytes cada Transformações a par3r da árvore canônica usam regras de equivalência entre expressões da AR para melhorar progressivamente esse resultado

35 Exemplo SELECT P.Pnumber, D.Dnum, E.Lname, E.Address, E.Bdate FROM PROJECT P, DEPARTMENT D, EMPLOYEE E WHERE AND AND P.Dnum = D.Dnumber D.Mgr_SSN = E.SSN P.Plocation = Stafford > Para cada projeto situado em Stafford, recuperar o número do projeto, o número do departamento que o controla, e o sobrenome, endereço e data de nascimento de seu gerente. π Pnumber,Dnum,Lname,Address,Bdate (((σ Ploca3on= Stafford (PROJECT) Dnum=Dnumber (DEPARTMENT)) Mgr_ssn=Essn (EMPLOYEE))

36 Exemplo, etapa 1

37 Exemplo, etapa 2 Duas seleções (PNAME e BDATE) são aplicadas antes dos produtos cartesianos, para reduzir o número de tuplas resultantes

38 Exemplo, etapa 3 As posições de EMPLOYEE e PROJECT são trocadas para que a condição de seleção mais restritiva (PNAME=...) seja executada primeiro

39 Exemplo, etapa 4 Produtos cartesianos seguidos de seleção são substituídos por JOINs

40 Exemplo, etapa 5 Manter a cada passo apenas os atributos necessários deslocar as operações PROJECT para baixo

41 O3mização heurís3ca de árvores de consulta As transformações do exemplo são possíveis apenas se forem comprovadamente equivalentes, de modo a não alterar o resultado final Ou seja, a cada passo as árvores de consulta são equivalentes Existem regras gerais de transformação que garantem a equivalência

42 O3mização heurís3ca de árvores de consulta Regras gerais de transformação R1. Cascata de seleções: σ <cond1 E cond2 E... E condn> (R) = σ <cond1> (σ <cond2> (... σ <condn> (R)) R2. Comuta3vidade de seleções: σ <cond1> (σ <cond2> (R)) = σ <cond2> (σ <cond1> (R)) R3. Cascata de projeções: π <lista 1> (π <lista 2) (R)) = π <lista 1> (R) R4. Comuta3vidade de SELECT e PROJECT π <lista> (σ <cond> (R)) = σ <cond> (π <lista> (R))

43 O3mização heurís3ca de árvores de consulta Regras gerais de transformação (cont.) R5. Comuta3vidade de JOIN e produto cartesiano R X S = S X R, e (R JOINc S = S JOINc R) R6. Comuta3vidade entre SELECT e JOIN (ou X) σ <cond1> (R JOINc S) = σ <cond1> (R) JOINc S R7. Comuta3vidade entre PROJECT e JOIN (ou X) π <lista> (R JOINc S) = π <listar> (R) JOINc π <listas> (S) Se algum atributo usado em c não es3ver nas listas, acrescentar em ambas R8. Comuta3vidade das operações de união e interseção R9. Associa3vidade de JOIN, X, união e interseção ( Rθ S) θt = Rθ ( SθT )

44 O3mização heurís3ca de árvores de consulta Regras gerais de transformação (cont.) R10. Comuta3vidade entre SELECT e operações de conjuntos σ <cond> (R θ S) = σ <cond> (R) θ σ <cond> (S) R11. Comuta3vidade entre PROJECT e união π <lista> (R U S) = π <lista> (R) U π <lista> (S) R12. Definição de junção σ <cond> (R X S) = R JOIN cond A

45 O3mização heurís3ca de árvores de consulta Passos de um algoritmo de o3mização heurís3ca 1. Usando R1, quebrar operações SELECT com condições conjun3vas em uma cascata de SELECTs 2. Usando R2, R4, R6, R10, mover cada SELECT para baixo na árvore tanto quanto possível (dependendo dos atributos envolvidos na condição de seleção) 3. Usando R5, R9 quanto à comuta3vidade e associa3vidade, rearranjar os nós folha de acordo com o seguinte: 3.1 Posicionar os nós folha com condições mais restri3vas para execução mais cedo (produzem menos tuplas, têm o menor tamanho absoluto, ou têm menor sele3vidade) 3.2 Garan3r que a ordenação dos nós folha não provoque a execução de um produto cartesiano (p.ex., as condições mais restri3vas não têm um JOIN em comum, e produzem mais de uma tupla cada)

46 O3mização heurís3ca de árvores de consulta Algoritmo (cont.) 4. Usando R12, combinar produtos cartesianos com SELECTs subseqüentes para formar JOINs 5. Usando R3, R4, R7 e R11, quebrar em partes e mover para baixo tanto quanto possível as operações PROJECT, mantendo apenas os atributos necessários para processamento dos passos subseqüentes 6. Iden3ficar sub-árvores que representem grupos de operações que possam ser executadas por um único algoritmo de recuperação, possivelmente sem a necessidade de armazenamento de resultados intermediários (execução em pipeline versus execução materializada)

47 Sele3vidade e es3ma3vas de custos para o3mização As regras heurís3cas não são suficientes em todos os casos Existem situações de o3mização que podem ser melhor resolvidas se exis3r informação sobre os volumes de dados envolvidos Para que isso funcione corretamente, as es3ma3vas de custos têm que ser realistas e justas O custo do processamento das alterna3vas também não pode ser excessivo Es3ma3vas de custos são mais empregadas em consultas compiladas antecipadamente, enquanto para consultas intera3vas a escolha de uma alterna3va pode afetar o tempo de resposta

48 Sele3vidade e es3ma3vas de custos para o3mização A o3mização de consultas baseada em custos usa técnicas de o3mização propriamente ditas para encontrar a solução ó3ma em um espaço de soluções, minimizando o valor de uma função obje)vo (função de custo) As funções obje3vo são aproximadas, e portanto nem quando a solução ó3ma do problema de custos é encontrado podemos garan3r que se trata da solução ó3ma da estratégia para a consulta

49 Sele3vidade e es3ma3vas de custos para o3mização Componentes de custo Custo do acesso à memória secundária Custo de armazenamento (temporário) Custo computacional (busca, ordenação, cálculos, etc.) Custo de uso de memória principal (buffers necessários) Custo de comunicação (envio/recebimento da consulta e resultados) Para grandes BD, a ênfase é na minimização do custo de acesso à memória secundária Para BD de pequeno porte (cabe quase tudo na memória), a ênfase pode ser no custo computacional Em BD distribuídos, o custo de comunicação pode ser predominante Em muitos casos, considera-se apenas o custo do acesso ao disco

50 Sele3vidade e es3ma3vas de custos para o3mização Uso de informações do catálogo Número de registros (tuplas) (r) Tamanho médio do registro (R) Número de blocos de disco (b) Fator de bloco (número de registros por bloco) (ƒ) Número de níveis dos índices mul3nível (x) Número de valores dis3ntos de um atributo (d) Sele3vidade (sl): fração dos registros que sa3sfaz a uma condição de igualdade sobre o atributo (ex.: em 1000 registros, a sele3vidade de um atributo CPF é 0,001; a de um atributo sexo é 0,50) Atributo chave: sl = 1/r Atributo não chave: sl = d/r Cardinalidade da seleção (s): número médio de registros que sa3sfaz a uma condição de igualdade sobre o atributo (s = sl * r) Essas informações são aproximadas, dificilmente estarão totalmente atualizadas

51 Sele3vidade e es3ma3vas de custos para o3mização Exemplos de uso de funções de custo para SELECT Supondo r(empregado) = r E = 10000, b E = 2000, bf E = 5 Caminhos de acesso Índice em cluster sobre o atributo SALARIO, com x SAL = 3 níveis e cardinalidade s SAL = 20 Índice secundário sobre o atributo chave CPF, com x CPF =4 e s CPF = 1 Índice secundário sobre o atributo NUD, com x NUD =2 e b NUD = 4 blocos no primeiro nível, sendo d NUD =125, e portanto s NUD =10000/125 = 80 Índice secundário sobre o atributo SEXO, com x SEXO =1, sendo d SEXO = 2, e portanto s SEXO = 5000

52 Sele3vidade e es3ma3vas de custos para o3mização Exemplos (custos em número de acessos a disco) OP1: σ CPF= (EMPREGADO) Opções: S1 (força bruta) ou S6 (B-Tree, com igualdade) Custo de S1 = 2000/2 = 1000 (busca seqüencial por atrib. chave) Custo de S6 = x CPF + 1 = = 5 OP2: σ NUMDEP>5 (DEPARTAMENTO) Opções: S1 (força bruta) ou S6 (B-Tree, com > ) Custo de S1 = 2000 (busca seqüencial por atrib. não chave) Custo de S6 = x NUD + (b NUD / 2) + (r / 2) = 2 + 4/ /2 = 5004 (1 bloco por nível + metade dos blocos em cada nível + metade dos registros via índice)

53 Sele3vidade e es3ma3vas de custos para o3mização Exemplos (custos em número de acessos a disco) OP3: σ NUD=5 (EMPREGADO) Opções: S1 ou S6 Custo de S1= 2000 (busca seqüencial por atrib. não chave) Custo de S6 = x NUD + s NUD = = 82 OP4: σ (NUD=5 AND SALARIO>3000 AND SEXO=F) (EMPREGADO) Opções: S1 ou S6 Custo de S1 = 2000 Custo de S6 sobre NUD = 82 (cf. acima) Custo de S6 sobre SALARIO = x SAL + b E / 2 = /2 = 1003 Custo de S6 sobre SEXO = x SEXO + s SEXO = = 5001 Executar a seleção sobre NUD, executando a parte final da condição sobre cada registro recuperado O que ocorreria se o depto. 5 3vesse de fato 90% dos empregados?

54 Sele3vidade e es3ma3vas de custos para o3mização Para que se tenha es3ma3vas minimamente precisas para operações de junção, é necessário es3mar a quan3dade de tuplas que resulta É em geral definido como a fração de tuplas resultantes da junção sobre a quan3dade de tuplas produzidas por um produto cartesiano Sele)vidade da junção (join selec3vity, js) js = (R JOINc S) / (R X S) = (R JOINc S) / R * S Caso especial: condição de junção é R.A = S.B Se A é chave de R, então js <= 1 / R Se B é chave de S, então js <= 1 / S Loops aninhados (J1) ou loops únicos (J2) devem ser escolhidos com base na tabela com menos registros Vide seções e para es3ma3vas completas de custos em exemplos

55 Referências Capítulo 18 e 19 de Elmasri & Navathe 7ª Edição Vide: seção sobre estratégias de o3mização no ORACLE e documentação do ORACLE Comando HINT, para influenciar as decisões do o3mizador

Tecnologias de Bancos de Dados

Tecnologias de Bancos de Dados Tecnologias de Bancos de Dados Processamento e Otimização de consultas Professor: Tadeu dos Reis Faria Set/2008 Referências Bibliográficas NAVATHE, Shamkant B., ELSMARI, Ramez. Sistemas de Banco de Dados.

Leia mais

Processamento e Otimização de Consultas

Processamento e Otimização de Consultas Processamento e Otimização de Consultas Processo de Execução de uma Consulta 1 Otimização de Consultas SQL Em algumas linguagens de consulta, a estratégia de execução é definida pela maneira como o usuário

Leia mais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização 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

Leia mais

MATA60 BANCO DE DADOS Aula: Otimização. Prof. Daniela Barreiro Claro

MATA60 BANCO DE DADOS Aula: Otimização. Prof. Daniela Barreiro Claro MATA60 BANCO DE DADOS Aula: Otimização Prof. Daniela Barreiro Claro Introdução a Otimização SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem

Leia mais

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

Leia mais

Introdução a. π LNAME, FNAME (σ SALARY>C (EMPLOYEE))

Introdução a. π LNAME, FNAME (σ SALARY>C (EMPLOYEE)) Introdução Como o SGBD INTERNAMENTO processa, otimiza e executa consultas de alto nível Introdução a Processamento de Consultas MIRELLA M. MORO mirella@dcc.ufmg.br http://www.dcc.ufmg.br/ br/~mirella 2

Leia mais

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

Leia mais

3 Plano de Execução de Consultas

3 Plano de Execução de Consultas Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos

Leia mais

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas UTFPR - Universidade Tecnológica Federal do Paraná Processamento e otimização de consultas Leyza Baldo Dorini 04/Nov/2009 Programação da aula Introdução: processamento e otimização de consultas Etapas:

Leia mais

ACH2025. Laboratório de Bases de Dados Aula 15. Processamento de Consultas Parte 2 Otimização. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ACH2025. Laboratório de Bases de Dados Aula 15. Processamento de Consultas Parte 2 Otimização. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO ACH2025 Laboratório de Bases de Dados Aula 15 Processamento de Consultas Parte 2 Otimização Professora: Fátima L. S. Nunes Contexto Dada uma expressão em álgebra relacional, o otimizador deve propor um

Leia mais

ÁLGEBRA E CÁLCULO RELACIONAL

ÁLGEBRA E CÁLCULO RELACIONAL UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO ÁLGEBRA E CÁLCULO RELACIONAL MARINGÁ 2014 SUMÁRIO SUMÁRIO...1 1 INTRODUÇÃO...2 1.1

Leia mais

Sumário. Definição do Plano de Execução

Sumário. Definição do Plano de Execução Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos de

Leia mais

Processamento de Consultas. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR

Processamento de Consultas. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR Processamento de Consultas Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR Sumário Plano de Consulta; Modelos de processamento de Consultas; Metódos de Acesso; Algoritmos de seleção;

Leia mais

Escrita ( W ) do Resultado

Escrita ( W ) do Resultado Escrita ( W ) do esultado Qualquer alternativa de processamento deve considerar este custo b res = número de blocos de resultado a ser W Exemplo: estimativa de W do resultado de um produto b res = tamanhoproduto

Leia mais

Compilação, Otimização e Execução de Consultas. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Compilação, Otimização e Execução de Consultas. Profa. Dra. Cristina Dutra de Aguiar Ciferri Compilação, Otimização e Execução de Consultas Cristina Dutra de Aguiar Ciferri Decomposição de Consultas Bloco de consulta é uma unidade básica que pode ser traduzida em operadores algébricos e otimizada

Leia mais

Bases de Dados. Algoritmos. Custo de operação. Algoritmos de selecção. Algoritmo de ordenação. Algoritmos de junção.

Bases de Dados. Algoritmos. Custo de operação. Algoritmos de selecção. Algoritmo de ordenação. Algoritmos de junção. Bases de Dados Algoritmos Custo de operação Algoritmos de selecção Algoritmo de ordenação Algoritmos de junção Outras operações Materialização e pipelining 2 1 Bases de Dados Algoritmos de selecção Algoritmos

Leia mais

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join 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

Leia mais

Álgebra Relacional e SQL

Á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

Leia mais

Processamento de Produtos ( X )

Processamento de Produtos ( X ) Processamento de Produtos ( X ) Alternativas e suas estimativas de custo A: laço aninhado ( nested-loop ) A: laço aninhado com índice ( indexed nestedloop ) A: merge-junção ( balanced-line ou sortmerge

Leia mais

Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas

Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas usuário processador de E/S gerador de respostas Uso de Índices na Otimização e Processamento de Consultas Profa. Dra. Cristina Dutra de Aguiar Ciferri analisador controle de autorização verificador de

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

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

Leia mais

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011 Banco de Dados I Aula 16 - Prof. Bruno Moreno 04/11/2011 Plano de Aula O comando DELETE Cláusula CHECK Comparações utilizando NULL Funções agregadas Junções de tabelas em SQL Visões Comando DELETE DELETE

Leia mais

Rápida revisão do Modelo Relacional

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.

Leia mais

Processamento e Otimização de Consultas

Processamento e Otimização de Consultas Introdução Processamento e Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM 1 Processamento

Leia mais

- SQL Linguagem de Manipulação de Dados

- SQL Linguagem de Manipulação de Dados - SQL Linguagem de Manipulação de Dados Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SELECT SELECT FROM [ WHERE predicado

Leia mais

Processamento de Consultas. Processamento de Consultas. Processamento de Consultas Distribuídas. Otimização de Consultas

Processamento de Consultas. Processamento de Consultas. Processamento de Consultas Distribuídas. Otimização de Consultas Processamento de Processamento de Consultas Processamento de Consultas Passos na execução de consultas Consulta ao B.D. Análise e Tradução Expressão Algébrica Avaliação Plano de Execução Otimização Resultado

Leia mais

Otimização de Consultas Baseada em Custo. Cristina Dutra de Aguiar Ciferri

Otimização de Consultas Baseada em Custo. Cristina Dutra de Aguiar Ciferri Otimização de Consultas Baseada em Custo Cristina Dutra de Aguiar Ciferri Estatísticas Informações aproximadas sobre base de dados cada tabela cada atributo de cada tabela cada índice Coletadas durante

Leia mais

IEC Banco de Dados I Aula 06 Álgebra Relacional

IEC Banco de Dados I Aula 06 Álgebra Relacional IEC Banco de Dados I Aula 06 Álgebra Relacional Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho E- mail: andre@icomp.ufam.edu.br Ambiente virtual: hlp://bdufam.wordpress.com Sumário

Leia mais

Banco de Dados. Aula 8 - Prof. Bruno Moreno 16/09/2011

Banco de Dados. Aula 8 - Prof. Bruno Moreno 16/09/2011 Banco de Dados Aula 8 - Prof. Bruno Moreno 16/09/2011 Plano de Aula Operações Unárias Seleção Projeção Operações de seleção e projeção seqüenciadas Operação Rebatizar Operações Binárias União Interseção

Leia mais

SQL Consultas Básicas

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

Leia mais

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 Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado Forma geral: SELECT FROM [WHERE ] [GROUP BY ]

Leia mais

Álgebra Relacional e SQL operações de interesse

Álgebra Relacional e SQL operações de interesse Álgebra Relacional e SQL operações de interesse 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

Leia mais

OTIMIZAÇÃO DE CONSULTAS RELACIONAIS TRABALHO DE PÓS-GRADUAÇÃO

OTIMIZAÇÃO DE CONSULTAS RELACIONAIS TRABALHO DE PÓS-GRADUAÇÃO UNIVERSIDADE ESTADUAL DE CAMPINAS PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO INSTITUTO DE COMPUTAÇÃO OTIMIZAÇÃO DE CONSULTAS RELACIONAIS TRABALHO DE PÓS-GRADUAÇÃO Alunos: João Paulo Silva Cintra Renato Capello

Leia mais

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9 BDDAD Bases de Dados Linguagem SQL Comando SELECT Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9 Operador Sumário Introdução Expressão Equivalente em SQL Soluções Tradução Directa de Expressão Algébrica Quantificação

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM

Leia mais

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro MATA60 BANCO DE DADOS Aula 10- Indexação Prof. Daniela Barreiro Claro Indexação Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; FORMAS - UFBA 2 de X; X=23 Indexação Sintaxe: create

Leia mais

Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador

Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador Introdução Objetivos Fundamentação teórica Desenvolvimento da ferramenta Operacionalidade Resultados e discussão Conclusões Versões futuras

Leia mais

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

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

Leia mais

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo. Banco de Dados I Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo DML Data Manipulation Language Parte II Consultas Básicas

Leia mais

Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

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

Leia mais

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional Banco de Dados Prof. Célio R. Castelano Página 1 de 9 Álgebra Relacional A álgebra relacional é uma linguagem procedural, que possui uma coleção de operações que são utilizadas para manipular relações

Leia mais

OTIMIZAÇÃO DE CONSULTAS - MYSQL. Prof. Antonio Almeida de Barros Junior

OTIMIZAÇÃO DE CONSULTAS - MYSQL. Prof. Antonio Almeida de Barros Junior OTIMIZAÇÃO DE CONSULTAS - MYSQL Prof. Antonio Almeida de Barros Junior Para a otimização de um SGBD precisamos identificar as consultas lentas que eventualmente são submetidas ao banco: Configurações do

Leia mais

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi Banco de Dados II Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Álgebra Relacional Linguagem de consulta procedural; Consiste em um conjunto básico de operações,

Leia mais

Modelo Relacional - Manipulação

Modelo Relacional - Manipulação Modelo Relacional - Manipulação Duas categorias de linguagens formais álgebra relacional e cálculo relacional comerciais (baseadas nas linguagens formais) SQL Linguagens formais - Características orientadas

Leia mais

Álgebra e cálculo relacional. Andre Noel

Álgebra e cálculo relacional. Andre Noel Álgebra e cálculo relacional Andre Noel Introdução Introdução A SQL é baseada na álgebra e no cálculo relacional Introdução A SQL é baseada na álgebra e no cálculo relacional O modelo de dados precisa

Leia mais

Processamento da Consulta. Processamento da Consulta

Processamento da Consulta. Processamento da Consulta Processamento da Consulta Equipe 05 Adriano Vasconcelos Denise Glaucia Jose Maria Marcigleicy Processamento da Consulta Refere-se ao conjunto de atividades envolvidas na extra de dados de um banco de dados.

Leia mais

Otimização e Execução de Consultas Caso Centralizado Parse Query

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 rogcosta@inf.puc-rio.br 1 Otimização e Execução de Consultas Caso Centralizado Parse Query Check de Semântica

Leia mais

SQL-99: Esquema de BD EMPRESA

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

Leia mais

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional Processamento de Consultas em BD Distribuídos Decomposição de consultas e Localização de dados IN1128/IF694 Bancos de Dados Distribuídos e Móveis Ana Carolina Salgado acs@cin.ufpe.br Bernadette Farias

Leia mais

Introdução. Introdução. Álgebra Relacional. Linguagens formais de Consulta Modelo Relacional. O que foi visto até agora...

Introdução. Introdução. Álgebra Relacional. Linguagens formais de Consulta Modelo Relacional. O que foi visto até agora... Ciência da Computação GBC043 Sistemas de Banco de Dados Linguagens formais de Consulta Modelo Relacional Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 1 semestre de 2019

Leia mais

23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas

23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas Processamento de Consultas em Bancos de Dados Distribuídos Visão geral do processamento de consultas IN1128/IF694 Bancos de Dados Distribuídos e Móveis Ana Carolina Salgado acs@cin.ufpe.br Bernadette Farias

Leia mais

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

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

Leia mais

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única Tópicos do Curso: Introdução Listar os principais recursos do Banco de Dados Oracle 10g Apresentar uma visão geral de: componentes, plataforma de internet, servidor de aplicações e suite do desenvolvedor

Leia mais

DCC011 Introdução a Banco de Dados

DCC011 Introdução a Banco de Dados DCC011 Introdução a Banco de Dados SQL select avançado Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Revisão: consultas básicas Formato

Leia mais

Bases de Dados. Optimização de planos de execução. Plano de execução

Bases de Dados. Optimização de planos de execução. Plano de execução Bases de Dados Optimização de planos de execução Plano de execução O plano de execução define a sequência de operações e o algoritmo para cada operação 2 1 Plano de execução Mas atenção: escolher o algoritmo

Leia mais

L Q S m e g a u g n Li A

L Q S m e g a u g n Li A A Linguagem SQL Introdução Originalmente proposta para o System R desenvolvido nos laboratórios da IBM na década de 70 SEQUEL (Structured English QUEry Language) Objeto de um esforço de padronização coordenado

Leia mais

Sumário SELECT + FROM

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

Leia mais

Bancos de Dados IV. Tuning de Bancos de Dados. Rogério Costa

Bancos de Dados IV. Tuning de Bancos de Dados. Rogério Costa Bancos de Dados IV Tuning de Bancos de Dados Rogério Costa rogcosta@inf.puc-rio.br 1 Sintonia (Tuning) de Bancos de Dados O que é? Realizar ajustes de forma a obter um melhor tempo de resposta para determinada

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS ESTRUTURAS E INDEXAÇÃO FELIPE G. TORRES ARQUIVOS Um arquivo é uma sequência de registros. Em muitos casos do mesmo tipo. Se cada registro no arquivo tem exatamente o

Leia mais

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

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 camila.barioni@facom.ufu.br Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...

Leia mais

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório UFU/FACOM/BCC GBC053 - Gerenciamento de Banco de Dados - 2018/2 Trabalho de Implementação Prof. Ilmério Reis da Silva O trabalho semestral da disciplina em epígrafe tem como objetivo a implementação de

Leia mais

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br ROTEIRO Operações

Leia mais

Sintaxe do comando SELECT

Sintaxe do comando SELECT Universidade Estadual de Mato Grosso do Sul Ciência da Computação Banco de Dados Prof. Nilton nilton@comp.uems.br Sintaxe do comando SELECT SELECT FROM [WHERE ]

Leia mais

de Bases de Dados Exame 1

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

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM Página

Leia mais

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

Leia mais

Encontro SQL BH. February Otimização de Consultas no SQL Server

Encontro SQL BH. February Otimização de Consultas no SQL Server Encontro SQL BH February 2016 Otimização de Consultas no SQL Server Apoio Global Portuguese Virtual PASS Local Chapters Upcoming SQL Saturdays Brazil Apr 9 Joinville #488 Jun 18 Rio de Janeiro #512 Visit

Leia mais

de Bases de Dados Exame 2

de Bases de Dados Exame 2 Ano lectivo 2009/2010 2 o semestre Administração e Optimização de Bases de Dados Exame 2 Regras O exame tem a duração de 2 horas. O exame é individual e com consulta Só poderá abandonar a sala ao fim de

Leia mais

Introdução a Bancos de Dados

Introdução a Bancos de Dados Introdução a Bancos de Dados - Conceitos - Modelos lógicos e relacional - Álgebra relacional - SQL - Projeto Lógico INPE - Divisão de Processamento de Imagens INPE 1 Sistemas de Banco de Dados Definição:

Leia mais

Subconsulta na Cláusula FROM

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

Leia mais

Ordenação e Busca em Arquivos

Ordenação e Busca em Arquivos Ordenação e Busca em Arquivos Cristina D. A. Ciferri Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Moacir Ponti Jr. Exemplos de Busca Registros de tamanho fixo M A R I A R U A b 1 S A O b C A

Leia mais

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

- 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

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Objetivo: No curso Oracle 11G Introdução ao Oracle, SQL, PL/SQL será abordado desde a introdução da tecnologia do banco de dados em questão como todos os conceitos

Leia mais

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance. Histórico Foi introduzido por Codd (1970) Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance. É um modelo formal, baseado na teoria matemática das relações

Leia mais

Oracle Database 11g: Introdução à Linguagem SQL Novo

Oracle Database 11g: Introdução à Linguagem SQL Novo Oracle University Contact Us: 0800 891 6502 Oracle Database 11g: Introdução à Linguagem SQL Novo Duration: 5 Days What you will learn Neste curso, os alunos aprendem os conceitos de bancos de dados relacionais.

Leia mais

Álgebra Relacional. Introdução. Introdução. Álgebra Relacional

Álgebra Relacional. Introdução. Introdução. Álgebra Relacional Pós-graduação em Ciência da Computação CCM-205 Sistema de Bancos de Dados O que foi visto até agora... Álgebra Relacional Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala

Leia mais

Oracle Database: Fundamentos de SQL e PL/SQL

Oracle Database: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0800 891 6502 Oracle Database: Fundamentos de SQL e PL/SQL Duration: 5 Days What you will learn Este curso apresenta os fundamentos de SQL e PL/SQL e as vantagens das linguagens

Leia mais

t n e z m r A o o d ç a a d B e L s i u e f F s L e

t n e z m r A o o d ç a a d B e L s i u e f F s L e o t n e m a n e z a m r A o I ã I ç a D x B e d n I e s o d a d de te i e L e p eli F s i u L or: s s e f o r P Contato luisleite@recife.ifpe.edu.br professorluisleite.wordpress.com Como é possível quando

Leia mais

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

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

Leia mais

INF70 Gerenciamento de Banco de Dados 2 Ordenação Externa. Ilmério Reis da Silva UFU/FACOM/BCC

INF70 Gerenciamento de Banco de Dados 2 Ordenação Externa. Ilmério Reis da Silva  UFU/FACOM/BCC INF70 Gerenciamento de Banco de Dados 2 Ordenação Externa Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/gbd2 UFU/FACOM/BCC Roteiro Fundamentos Two-way Merge Sort External Merge Sort

Leia mais

Modelo de Dados Relacional

Modelo de Dados Relacional Modelo de Dados Relacional Introdução O modelo relacional representa um banco de dados como um conjunto de relações Informalmente, uma relação é uma tabela de valores, onde cada linha representa uma coleção

Leia mais

Modelo Relacional. Josino Rodrigues

Modelo Relacional. Josino Rodrigues Modelo Relacional Josino Rodrigues Modelo Relacional Chave Primária Atributos PILOTO Num-cad Nome CPF Endereço 0101 João 123456 Recife Tuplas 0035 José 234567 São Paulo... 0987 Pedro 567890 Recife 2 Chave

Leia mais

Tipos de Índices. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Tipos de Índices. Profa. Dra. Cristina Dutra de Aguiar Ciferri Tipos de Índices Cristina Dutra de Aguiar Ciferri Tipos de Índice Ordenados em um único nível primário agrupamento (cluster) secundário Estruturas de dados de árvores índices multiníveis árvores-b, árvores-b+

Leia mais

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger Banco de Dados Álgebra Relacional João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger Tópicos Apresentação Seleção Projeção Renomeio de Atributos União, Subtração e operações de conjuntos Junção:

Leia mais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização 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

Leia mais

Um modelo de dados, além de definir estruturas e restrições, deve definir um conjunto de operações para manipular os dados.

Um modelo de dados, além de definir estruturas e restrições, deve definir um conjunto de operações para manipular os dados. Álgebra Relacional Um modelo de dados, além de definir estruturas e restrições, deve definir um conjunto de operações para manipular os dados. A álgebra relacional constitui o conjunto básico de operações

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar - Aula 2 - ÍNDICE 1. INTRODUÇÃO Quando criamos a estrutura de um banco de dados temos que usar artifícios que melhorem a performance na recuperação dos dados que lá serão armazenados. Dentre várias técnicas

Leia mais

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação 1/5 Universidade Federal da Bahia Disciplina: Banco de Dados Prof a. Daniela Barreiro Claro ALGEBRA RELACIONAL Duas linguagens formais do Modelo Relacional o Álgebra Relacional e Cálculo Relacional Álgebra

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Processamento de Consultas Ambiente com SGBD Distribuído Processamento

Leia mais

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação Bases de Dados Índices Discos transferência lenta e em blocos (512B ~ 4KB) transferência rápida e aos bytes memória disco BD / aplicação 2 1 Discos 7200rpm = 120 rot/s 1 5 platters Ø 8.9 cm 50000 ~ 100000

Leia mais

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Banco de Dados Álgebra Relacional João Eduardo Ferreira Osvaldo Kotaro Takai Introdução A Álgebra Relacional contempla um conjunto de operações que permitem especificar consultas sob relações. As operações

Leia mais

Modelo de Dados Relacional

Modelo de Dados Relacional Modelo de Dados Relacional Sumário Conceitos Básicos Domínios, atributos, tuplas e relações Características das relações Notação Restrições de Integridade Domínio, chave, integridade entidade e integridade

Leia mais

Principais Desafios dos SGBDDs. Processamento Distribuído de Consultas. Processamento de Consultas. Componentes do Processamento de Consultas

Principais Desafios dos SGBDDs. Processamento Distribuído de Consultas. Processamento de Consultas. Componentes do Processamento de Consultas Principais Desafios dos SGBDDs Processamento Distribuído de Consultas Fernanda Baião baiao@cos.ufrj.br Processamento Distribuído de Consultas conversão de transações do usuário em instruções de manipulação

Leia mais

GBC043 Sistemas de Banco de Dados Álgebra e Cálculo Relacional. Ilmério Reis da Silva UFU/FACOM

GBC043 Sistemas de Banco de Dados Álgebra e Cálculo Relacional. Ilmério Reis da Silva  UFU/FACOM GBC043 Sistemas de Banco de Dados Álgebra e Cálculo Relacional Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM Álgebra e Cálculo Relacional e o Modelo R São as linguagens

Leia mais

Sumário. Etapas do Processamento de Consultas

Sumário. Etapas do Processamento de Consultas Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos

Leia mais

INSTRUÇÕES GERAIS AOS CANDIDATOS

INSTRUÇÕES GERAIS AOS CANDIDATOS INSTRUÇÕES GERAIS AOS CANDIDATOS O tempo total para realização das provas é de 2 horas e 00 minutos. Ao término da prova, o candidato deverá devolver o cartão resposta. É imprescindível verificar no cartão

Leia mais