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

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

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

Transcrição

1 Bancos de Dados III Processamento de Consultas em Bancos de Dados Distribuídos Rogério Costa 1 Otimização e Execução de Consultas Caso Centralizado Parse Query Check de Semântica Query Rewrite Otimização do Plano de Acesso Geração de Código 2 1

2 Processamento de Consultas Caso Centralizado Análise Sintática e Tradução Tradução da consulta para uma representação interna de uma consulta ao sistema SQL -> Álgebra relacional estendida Conferência da sintaxe da consulta definida pelo usuário dos nomes das relações Etc 3 Processamento de Consultas Caso Centralizado Otimização Dada uma consulta, há diversos métodos possíveis de calcular a resposta uma consulta em SQL pode ser escrita de diversas formas uma consulta em SQL pode ser traduzida em álgebra relacional de vários modos há diversos algoritmos diferentes para executar uma operação algébrica relacional 4 2

3 Processamento de Consultas Caso Centralizado Exemplo AGÊNCIA(nome_agência, cidade_agência, fundos) CONTA(número_conta, saldo, nome_agência) DEPOSITANTE(nome_cliente, número_conta) Consulta: Quais os nomes dos clientes que possuem conta em agências na cidade Brooklin com saldo abaixo de 1.000? SELECT FROM WHERE nome_cliente agencia A, conta C, depositante D C.numero_conta = D.numero_conta and A.nome_agencia = C.nome_agencia and A.cidade_agencia = Brooklin and C.saldo < Processamento de Consultas Caso Centralizado Exemplo SELECT FROM WHERE Π nome_cliente nome_cliente agencia A, conta C, depositante D C.numero_conta = D.numero_conta and A.nome_agencia = C.nome_agencia and A.cidade_agencia = Brooklin and C.saldo < Π nome_cliente σ cidade_agencia= Brooklin saldo < depositante agencia σ cidade_agencia= Brooklin σ saldo < conta depositante agencia conta 6 3

4 Processamento de Consultas Caso Centralizado Π nome_cliente classificar para remover duplicatas hash-junção merge-junção depositante σ cidade_agencia= Brooklin σ saldo < use o índice 1 use a varredura linear agencia conta 7 Processamento de Consultas Caso Centralizado Otimização Plano de Execução Seqüência de operações primitivas que podem ser usadas para executar uma consulta Os diferentes planos de execução podem ter diferentes desempenhos. É de responsabilidade do sistema (e não do usuário) escolher um plano de execução que minimize o tempo de execução ou que maximize o throughput 8 4

5 Processamento de Consultas Caso Centralizado Consulta em alto nível definida pelo usuário Transformação que garanta: Corretude: consulta gerada tem que ser equivalente semanticamente, ou seja produzir o mesmo resultado. Eficiência: Minimizar uma função de custos e/ou maximizar o desempenho e/ou maximizar o throughput (parâmetros mais relevantes: I/O de disco, CPU) Consulta em baixo nível para o sistema 9 Processamento de Consultas Caso Centralizado Otimizadores Baseados em regras Baseados em estatísticas 10 5

6 Processamento de Consultas Caso Centralizado Otimização baseada em regras - Algumas estratégias... 1 single row by rowid 2 single row by cluster join 3 single row by hash cluster key with unique or primary key 4 single row by unique or primary key 5 cluster join 6 hash cluster key 7 indexed cluster key 8 composite key 9 single-row indexes 10bounded range search on indexed columns 11unbounded range search on indexed columns 12sort-merge join 13max or min of indexed columns 14order by on indexed columns 15full table scan 11 Processamento de Consultas Caso Centralizado Otimização baseada em custos - escolha entre diferentes planos de execução através de estimativa do custo de cada plano Os otimizadores de consulta utilizam informações estatísticas armazenadas no catálogo do SGBD, que inclui, por exemplo: nr = número de tuplas da relação r br = número de blocos que contém tuplas da relação r sr = tamanho em bytes de uma tupla da relação r V(A,r) = número de valores distintos que aparecem na relação r para o atributo A. SC(A,r) = cardinalidade de seleção do atributo A da relação r. Ou seja, número médio de registros que satisfaz a condição de igualdade no atributo A.Se A for chave primária, a cardinalidade é 1. Mas se não, estima-se que os valores distintos de V(A,r) são distribuídos uniformemente entre as tuplas. 12 6

7 Processamento de Consultas Caso Centralizado A otimização por custo demanda estatísticas Para gerar estatísticas em uma tabela cada SGBD disponibiliza um comando: Oracle: analyze; DB2: runstats; SQLServer: create/update statistics; 13 Planos de Execução Existem dois tipos básicos de operação: Métodos de Acesso (varreduras seqüenciais e indexadas) Outras operações (junções, uniões, eliminação de duplicatas) 14 7

8 Varredura Seqüencial Leitura seqüencial de todas as páginas de uma tabela Comumente chamada de full table scan SGBDs costumam implementar sequential prefetch (read ahead) Eficiente para consultar todas ou quase todas as linhas de uma tabela 15 Varredura Indexada Leitura dos dados através de um ou mais índices Comumente chamada de indexed table scan Vários índices possíveis: árvores B+, bitmaps, árvores R Eficiente para recuperar subconjunto restrito dos dados Índices podem ser "clusterizados" ou "não-clusterizados" 16 8

9 Ordenação Operação básica para diversas outras operações físicas Resolve a cláusula ORDER BY Se o conjunto a ser ordenado não cabe em memória, esta operação pode ser muito cara Comumente chamada de sort 17 Eliminição de Duplicatas e Agregação Estas operações são implementadas em geral através de uma ordenação (sort) Após a ordenação pelo critério de agregação, o resultado é varrido e a operação é computada Também é possível resolver este tipo de operação através de técnicas de hash 18 9

10 União Podemos usar UNION ou UNION ALL em consultas UNION ALL: realiza uma operação de concatenação entre os conjuntos (concatenate) UNION: realiza a concatenação (concatenate) seguida de eliminação de duplicatas (sort ou hash) 19 Intersecção e Diferença Operações de conjunto semelhantes a eliminação de duplicatas Em geral, são resolvidas com ordenações (sort) seguidas da operação propriamente dita Também é possível utilizar métodos de hash 20 10

11 Junções Os algoritmos clássicos utilizados em junções são: Loops Aninhados (Nested Loops Join) Ordenação/Intercalação (Merge Join) Hashing (Hash Join) Existem outros algoritmos: Hybrid hash join Star join Nested Loops T Outer Table T2 Inner Table 22 11

12 Nested Loops Eficiente quando: Outer table pequena ou filtrada Índice clusterizado para acessar inner table Poucas páginas da inner table acessadas 23 Merge Join Ordenada Ordenada Inner Table Outer Table 24 12

13 Merge Join Eficiente quando: São acessadas muitas linhas das duas tabelas Não existem índices adequados Atributos de junção com muitos valores repetidos 25 Hash Join Build Phase 10 f(chave) Outer Table Probe Phase Inner Table 26 13

14 Hash Join Eficiente quando: Hash table é pequena, cabendo em memória Atributo de junção da menor tabela é único Não existem índices para a junção 27 Fator de Filtro Fator de filtro de um predicado: percentual de linhas da tabela que satisfazem determinado predicado. Utilizado pelo Otimizador para: estimar tamanho da tabela resultado decidir sobre uso de índices e outras estratégias de acesso Calculado com base nas estatísticas existentes 28 14

15 Fator de Filtro Fator de filtro de um predicado: número entre 0 e 1: 0 FF 1 FF 0 poucas linhas FF 1 todas as linhas da tabela 29 Fator de Filtro Estatísticas: Tabela de Empregados com linhas Coluna Sexo: 2 valores distintos. Estimativas: FF(M) = 0.5, FF(F) = 0.5 Select nome from empregados where sexo = M Estima retorno de 5000 linhas Não usa índice Select nome from empregados where sexo = F Estima retorno de 5000 linhas 30 15

16 Fator de Filtro Estatísticas com a presença de Histograma: otimizador pode perceber distribuição não-uniforme: tabela de Empregados com linhas: coluna Sexo: distribuição não uniforme. estatísticas de distribuição não uniforme: M: empregados F: empregados FF(F) = 0.1 Para consulta sexo = `F`, otimizador pode decidir utilizar o índice da coluna sexo 31 Fator de Filtro x Índices O fator de filtro influencia diretamente na utilização de índices => quando consulta retorna poucas linhas e existem índices adequados, otimizador pode utilizar índices; Poucas linhas depende de SGBD para SGBD e de versão para versão

17 Fator de Filtro Predicado composto: AND select * from empregados where dept = 600 and sexo = m and cargo = pgmr FF(sexo) = 0.9 FF(dept) = 0.2 FF(cargo) = 0.1 FF = 0.9 * 0.2 * 0.1 = Estimativa para a tabela resultado: 180 linhas 33 Plano de Execução Exemplo: SELECT endereço, data-nascimento FROM empregado WHERE nome = Chico Cesar Execution Plan SELECT STATEMENT Optimizer=CHOOSE 1 0 TABLE ACCESS (BY INDEX ROWID) OF 'EMPREGADO' 2 1 INDEX (UNIQUE SCAN) OF 'PK_EMP' (UNIQUE) 34 17

18 Reescrita Exemplo Oracle: Select max(salario) From empregado Group by depnum Having depnum = Operation Name Rows Bytes Cost SELECT STATEMENT FILTER SORT GROUP BY TABLE ACCESS FULL EMPREGADO 100K 1M Reescrita Exemplo Oracle Select max(salario) From empregado Where depnum = 100 Custo cai de 360 para 2! Queda para apenas 0,5% do original!!! Operation Name Rows Bytes Cost SELECT STATEMENT SORT AGGREGATE 1 16 TABLE ACCESS BY INDEX RO EMPREGADO 100 1K 2 INDEX RANGE SCAN IDX_EMP_DEPNUM

19 Reescrita Eliminar DISTINCT Verificar a lógica da aplicação Para consultas em uma única tabela, verificar se o resultado da consulta contém alguma coluna definida como chave única Para consultas com junções verificar o tipo de junção, as colunas da junção e as colunas resultado 37 Reescrita Exemplo Oracle: select distinct ident, nome from empregado; Operation Name Rows Bytes Cost SELECT STATEMENT 100K 2M 937 SORT UNIQUE 100K 2M 937 TABLE ACCESS FULL EMPREGADO 100K 2M 102 select ident, nome from empregado; Custo =

20 Junções e Sub-Consultas Sem estatísticas select E.Ident, E.nome from empregado E where exists ( select * from dependente D where D.Idemp = E.Ident ) Execution Plan SELECT STATEMENT Optimizer=CHOOSE FILTER TABLE ACCESS (FULL) OF EMPREGADO' INDEX (RANGE SCAN) OF 'IDX_DEPENDENTE_IDEMP' (NO N-UNIQUE) 39 Junções e Sub-Consultas Sem estatísticas select E.Ident, E.nome from Empregado E, Dependente D where D.Idemp = E.Ident Execution Plan SELECT STATEMENT Optimizer=CHOOSE NESTED LOOPS TABLE ACCESS (FULL) OF 'DEPENDENTE' TABLE ACCESS (BY INDEX ROWID) OF EMPREGADO' INDEX (UNIQUE SCAN) OF 'IDX_EMPREGADO_ID' (UNIQUE) 40 20

21 Junções e Sub-Consultas Sem estatísticas select E.Ident, E.nome from Empregado E where E.Ident in ( select IdEmp from Dependente D) Execution Plan SELECT STATEMENT Optimizer=CHOOSE NESTED LOOPS VIEW OF 'VW_NSO_1' SORT (UNIQUE) TABLE ACCESS (FULL) OF 'DEPENDENTE' TABLE ACCESS (BY INDEX ROWID) OF EMPREGADO' INDEX (UNIQUE SCAN) OF 'IDX_EMPREGADO_ID' (UNIQUE) 41 Com estatísticas Execution Plan Junções e Sub-Consultas select E.Ident, E.nome from Empregado E where exists ( select * from Dependente D where D.Idemp = E.Ident ) select E.Ident, E.nome from Empregado E where E.Ident in ( select IdEmp from Dependente D) SELECT STATEMENT Optimizer=CHOOSE (Cost=10 Card=1640 Bytes=173840) HASH JOIN (SEMI) (Cost=10 Card=1640 Bytes=173840) TABLE ACCESS (FULL) OF 'EMPREGADO' (Cost=5 Card=2200 Bytes=226600) INDEX (FAST FULL SCAN) OF 'IDX_DEPENDENTE_IDEMP' (NON-UNIQUE) (Cost=2 Card=3000 Bytes=9000) 42 21

22 Junções e Sub-Consultas Com estatísticas select E.Ident, E.nome from Empregado E, Dependente D where D.Idemp = E.Ident Execution Plan SELECT STATEMENT Optimizer=CHOOSE (Cost=8 Card=3000 Bytes=318000) HASH JOIN (Cost=8 Card=3000 Bytes=318000) INDEX (FAST FULL SCAN) OF 'IDX_DEPENDENTE_IDEMP' (NON-UNIQUE) (Cost=2 Card=3000 Bytes=9000) TABLE ACCESS (FULL) OF 'EMPREGADO' (Cost=5 Card=2200 Bytes=226600) 43 Processamento de Consultas Caso Distribuído Consulta em alto nível definida pelo usuário Transformação que garanta: Corretude: consulta gerada tem que ser equivalente semanticamente, ou seja produzir o mesmo resultado. Eficiência: Minimizar uma função de custos e/ou maximizar o desempenho e/ou maximizar o throughput (parâmetros mais relevantes: I/O de disco, CPU, custo de comunicação) Consulta em baixo nível para o sistema 44 22

23 Processamento de Consultas Caso Distribuído Minimizar a função de custo: custo de I/O + custo de CPU + custo de comunicação Estes fatores podem ter diferentes pesos em diferentes ambientes Wide area networks - WANs Custo de comunicação será dominante Pequena largura de banda Menor velocidade Grande overhead de comunicação Alguns algoritmos irão ignorar todos os outros custos Local area networks - LANs Custos de comunicação não são dominantes Considerar outros fatores (I/O, CPU,.) 45 Exemplo Processamento de Consultas Caso Distribuído EMP(eno, ename,etitle): dados pessoais do empregado PROJ(pno,pname,budget): dados do projeto ASG(eno, pno, resp, dur): qual projeto um empregado trabalha e sua responsabilidade e tempo gasto no projeto. Consulta: Quais os nomes dos empregados que estão gerenciando um projeto? SELECT ename FROM EMP, ASG WHERE emp.eno = asg.eno and asg.resp = Manager 46 23

24 Processamento de Consultas Caso Distribuído Exemplo - Quais os nomes dos empregados que estão gerenciando um projeto? SELECT ename FROM EMP, ASG WHERE emp.eno = asg.eno and asg.resp = Manager Opção 1: Opção 2: Π ename (σ asg.resp= Manager emp.eno = asg.eno (EMP x ASG)) Π ename (EMP eno (σ asg.resp= Manager (ASG))) 47 Processamento de Consultas Caso Distribuído - Exemplo Site 3 Site 4 EMP1= σ eno <= E3 (EMP) EMP2 = σ eno > E3 (EMP) Site 5 Resposta da consulta Site 1 Site 2 ASG1 = σ eno <= E3 (ASG) ASG2 = σ eno > E3 (ASG) 48 24

25 Processamento de Consultas PROPOSTA 1 Caso Distribuído Resultado = (EMP1 EMP2) eno (σ asg.resp= Manager (ASG1 ASG2))) Site 5 EMP1 EMP2 Site 3 Site 4 EMP1= σ eno <= E3 (EMP) ASG1 ASG2 EMP2 = σ eno > E3 (EMP) Site 1 Site 2 ASG1 = σ eno <= E3 (ASG) ASG2 = σ eno > E3 (ASG) 49 Processamento de Consultas PROPOSTA 2 Caso Distribuído Site 5 result = EMP1 EMP2 EMP1 EMP2 Site 3 EMP1 = EMP1 eno ASG1 Site 4 EMP2 = EMP2 eno ASG2 EMP1= σ eno <= E3 (EMP) ASG1 EMP2 = σ eno > E3 (EMP) ASG2 Site 1 ASG1 = σ asg.resp= Manager (ASG1) Site 2 ASG2 = σ asg.resp= Manager (ASG2) ASG1 = σ eno <= E3 (ASG) ASG2 = σ eno > E3 (ASG) 50 25

26 Processamento de Consultas Caso Distribuído Modelo de custo simples tupacc = 1 acesso a tupla tuptrans = 10 No exemplo Transferência de uma tupla EMP 400 tuplas ASG 1000 tuplas Existem 20 managers. Existe um acesso direto às tuplas de ASG (respetivamente, EMP) baseado no valor do atributo RESP (respectivamente, ENO). 51 Processamento de Consultas PROPOSTA 1 Caso Distribuído Total = Resultado = (EMP1 EMP2) eno (σ asg.resp= Manager (ASG1 ASG2))) (400 * 20) * tupacc = Site * tupacc = ASG * tuptrans = * tuptrans = EMP2 Site 1 Site 4 ASG1 = σ eno <= E3 (ASG) ASG2 EMP2 = σ eno > E3 (EMP) EMP1 Site 2 Site 3 ASG2 = σ eno > E3 (ASG) EMP1= σ eno <= E3 (EMP) 52 26

27 Processamento de Consultas PROPOSTA 2 Caso Distribuído result = EMP1 EMP2 Site 5 Total = 460 ( ) * tuptrans = 200 EMP1 EMP2 EMP1 = EMP1 eno ASG1 EMP2 = EMP2 eno ASG2 Site 3 ( ) * tupacc * 2 = 40 Site 4 ASG1 ASG2 ( ) * tuptrans = 200 ASG1 = σ asg.resp= Manager (ASG1) Site 1 ( ) * tupacc = 20 Site 2 ASG2 = σ asg.resp= Manager (ASG2) 53 Camadas do Processamento de Consulta Consulta sobre relações distribuídas Decomposição de consulta Consulta em álgebra sobre relações distribuídas ESQUEMA GLOBAL SITE DE CONTROLE Localização de Dados Consulta fragmentada Otimização Global ESQUEMA FRAGMENTADO ESTATÍSTICAS DOS FRAGMENTOS Consulta fragmentada otimizada induzindo operações de comunicação SITES LOCAIS Otimização Local ESQUEMAS LOCAIS Consultas locais otimizadas 54 27

28 Camadas do Processamento de Consulta Decomposição de consulta A consulta inicial não sabe sobre a distribuição dos dados Decompõe a consulta em uma consulta em álgebra sobre as relações globais A técnica é a mesma que em SGBD relacional Análise sintática e semântica Tradução e simplificação da consulta Tradução para uma consulta em álgebra relacional -> definir uma consulta em álgebra que seja correta e eficiente (por exemplo através da retirada de predicados redundantes). Consulta ainda não é ótima 55 Camadas do Processamento de Consulta Localização dos Dados Objetivo: Localizar os dados da consulta de acordo com a distribuição existente. As relações estão fragmentadas e armazenadas em conjuntos disjuntos, chamados de fragmentos, cada um armazenando em um site diferente. Esta camada descobre quais fragmentos estão envolvidos na consulta e transforma a consulta distribuída em uma consulta algébrica sobre fragmentos

29 Camadas do Processamento de Consulta Otimização Global Objetivo: Encontrar uma estratégia de execução da consulta próxima do ótimo, incluindo melhor ordem das operações em uma consulta sobre base distribuída e considerando as operações de comunicação. Uma estratégia de execução de uma consulta distribuída pode ser descrita como operações em álgebra relacional e primitivas de comunicação (operações de send / receive) para transferência de dados entre os sites. Considera: I/O de disco, CPU, espaço de buffer, custo de comunicação... Nas camadas anteriores foi feita uma otimização independente das características dos fragmentos, por exemplo através da retirada de predicados redundantes. Esta camada trata da otimização se baseando nos fragmentos. 57 Camadas do Processamento de Consulta Otimização Local Objetivo: Criar consultas locais otimizadas através da escolha de algoritmos para execução das operações, de acordo com o esquema local do site. Esta camada utiliza algoritmos dos sistemas centralizados

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

Processamento e Otimização de Consultas em Bancos de Dados. SGBD Parte 2. Prof. Sérgio Lifschitz. Departamento de Informática PUC-Rio - Brasil

Processamento e Otimização de Consultas em Bancos de Dados. SGBD Parte 2. Prof. Sérgio Lifschitz. Departamento de Informática PUC-Rio - Brasil Processamento e Otimização de Consultas em Bancos de Dados SGBD Parte 2 Prof. Sérgio Lifschitz Departamento de Informática PUC-Rio - Brasil Idéia de um VLDB 500GB de dados ou muito mais VLDBs = terabytes

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bancos de Dados IV. Visões Materializadas. Rogério Costa

Bancos de Dados IV. Visões Materializadas. Rogério Costa Bancos de Dados IV Visões Materializadas Rogério Costa rogcosta@inf.puc-rio.br 1 Visões Materializadas Visão contém cópia resultado da consulta Auxilia no desempenho Subconjunto dos dados originais Junções

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

Administração e Optimização de BDs

Administração e Optimização de BDs Departamento de Engenharia Informática 2010/2011 Administração e Optimização de BDs Mini-Projecto 2 Entrega a 16 de Abril de 2011 2º semestre A resolução deve ser claramente identificada com o número de

Leia mais

Organização de Arquivos

Organização de Arquivos Construção de Sistemas de Gerência de Bancos de Dados DI PUC-Rio Prof: Sérgio Lifschitz Organização de Arquivos Organização de Arquivos Tipos básicos de arquivos: heap files (entry sequenced files) sorted

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

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

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

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

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

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

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

Á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

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

SQL (Tópicos) Structured Query Language

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

Leia mais

Administração de. José Antônio da Cunha CEFET-RN

Administração de. José Antônio da Cunha CEFET-RN Administração de Banco de Dados José Antônio da Cunha CEFET-RN O Otimizador de um Sistema de Gerenciamento de Banco de Dados Relacionais (SGBDR) é responsável por analisar uma consulta SQL e escolher qual

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

Chapter 12: Query Processing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017

Chapter 12: Query Processing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017 Chapter 12: Query Processing José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017 107 Chapter 12: Query Processing - Visão geral de processamento e otimização de perguntas - Medidas de custo

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

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

Á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

- 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

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

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

- 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

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 17 Escola Politécnica da Universidade de São Paulo 1 SQL STRUCTURED QUERY LANGUAGE Manipulação de dados operações de modificam o estado das tabelas:

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

mod._1_teoria_sistemas de bancos de dados.doc

mod._1_teoria_sistemas de bancos de dados.doc SISTEMAS DE BANCOS DE DADOS Os Sistemas de Bancos de Dados apareceram para acabar com os problemas e desvantagens dos tradicionais Sistemas de Processamento de Arquivos, onde os registros permanentes eram

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Aula 8 Prof. Marcos Alexandruk Aula 8 Índices (Indexes) Índices únicos Índices não únicos Índices de chave invertida Índices baseados em funções Índices de bitmap Tabelas

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

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

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

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

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

Leia mais

Siga em frente. Análise

Siga em frente. Análise Análise Siga em frente Compreender os planos de execução do banco de dados é a chave para avaliar o potencial máximo de uma query SQL ou estimar com efetividade as necessidades de recursos futuros. por

Leia mais

PostgreSQL Performance

PostgreSQL Performance PostgreSQL Performance André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) PostgreSQL Performance February 24, 2012 1 / 45 Sumário 1 Armazenamento 2 Índices

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

Introdução ao Banco de Dados. Banco de Dados

Introdução ao Banco de Dados. Banco de Dados Introdução ao Banco de Dados Prof. Tiago Garcia de Senna Carneiro UFOP Prof. Técnicas de Programação II 2006 PARTE 1: Conceitos Básicos Banco de Dados SGDB: Sistema Gerenciador de Banco de Dados Definição:

Leia mais

O Modelo e a Álgebra Relacional

O Modelo e a Álgebra Relacional O Modelo e a Álgebra Relacional O Modelo Relacional Modelo de dados, que se baseia no princípio em que todos os dados estão guardados em tabelas Baseado em lógica de predicados e na teoria de conjuntos.

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

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

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

Bancos de Dados. 15. Processamento e O3mização de Consultas Bancos de Dados 15. Processamento e O3mização de Consultas Introdução Existe nos SGBDR um módulo conhecido como o3mizador de consultas A expressão o3mização de consultas, embora seja frequentemente u3lizada,

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Aula 6 Prof. Marcos Alexandruk Aula 6 Estruturas lógicas do Oracle: Tabelas tabelas relacionais tabelas temporárias tabelas organizadas por índices tabelas de objetos tabelas

Leia mais

Á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çõ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

Leia mais

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho Laboratório de Banco de Dados II Aula 04 Prof. Érick de Souza Carvalho 1 SQL (Structured Query Language ) Prof. Érick de Souza Carvalho 2 SQL Structured Query Language - Introdução É uma Linguagem para

Leia mais

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

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

Leia mais

Introdução ao Modelo Relacional

Introdução ao Modelo Relacional INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Introdução ao Modelo Relacional Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 19/05/2016 Sumário Instalação do

Leia mais

Reindexação Automática em SGBDs Relacionais

Reindexação Automática em SGBDs Relacionais Reindexação Automática em SGBDs Relacionais Eduardo Morelli emorelli@inf.puc-rio.br Ana Carolina Almeida abrito@inf.puc-rio.br José Maria Monteiro monteiro@inf.puc-rio.br Sérgio Lifschitz sergio@inf.puc-rio.br

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

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

Banco de Dados I Módulo VI: Processamento e Otimização de Consultas. (Aulas 1-5) Clodis Boscarioli

Banco de Dados I Módulo VI: Processamento e Otimização de Consultas. (Aulas 1-5) Clodis Boscarioli Banco de Dados I 2007 Módulo VI: Processamento e Otimização de Consultas (Aulas 1-5) Clodis Boscarioli Agenda: O Processador de Consultas: Conceitos Principais. Algoritmos usados para implementar operações

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

INTRODUÇÃO AO MODELO RELACIONAL

INTRODUÇÃO AO MODELO RELACIONAL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO AO MODELO RELACIONAL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 26/06/2013 SUMÁRIO Instalação do

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

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

Á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

SQL (com MySQL) Apresentação OBJETIVOS. Programação

SQL (com MySQL) Apresentação OBJETIVOS. Programação SQL (com MySQL) Programação Formato: Mentored - Presencial Preço: 395 ( Os valores apresentados não incluem IVA. Oferta de IVA a particulares e estudantes. ) Horário: Flexível das 2ª a 6ª das 9h às 21h30

Leia mais

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

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Marcos André Gonçalves - UFMG Parte 3 Aula

Leia mais

ACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO ACH2025 Laboratóriode Bases de Dados Aula10 SQL Oracle Asserçõese gatilhos Professora: Fátima L. S. Nunes REGRAS DE INTEGRIDADE (RI) garantem que mudanças feitas no BD não resultem em inconsistência de

Leia mais

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

Leia mais

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

Leia mais

Otimização de Consultas SQL. André Luiz do Vale Soares Banco de Dados II

Otimização de Consultas SQL. André Luiz do Vale Soares Banco de Dados II Otimização de Consultas SQL André Luiz do Vale Soares Banco de Dados II Fatores que influem na seleção de caminho Formulação da Query Formulação do Predicado Índices Estatísticas Buffers Usuários Concorrentes

Leia mais

Arquitetura de SGBD Relacionais

Arquitetura de SGBD Relacionais Arquitetura de SGBD Relacionais Indexação Caetano Traina Jr. Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.usp.br

Leia mais

Avisos. SQL: Visões. Roteiro SELECT. Suporte de SQL para OLAP SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Cronograma das próximas aulas

Avisos. SQL: Visões. Roteiro SELECT. Suporte de SQL para OLAP SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Cronograma das próximas aulas Ciência da Computação GBC043 Sistemas de Banco de Dados Avisos SQL: Visões Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 1 semestre de 2019 Cronograma das próximas aulas

Leia mais

Índices. 1. Introdução. Universidade Federal de Pelotas Departamento de Informática Bacharelado em Ciência da Computação Banco de Dados I

Índices. 1. Introdução. Universidade Federal de Pelotas Departamento de Informática Bacharelado em Ciência da Computação Banco de Dados I Universidade Federal de Pelotas Departamento de Informática Bacharelado em Ciência da Computação Banco de Dados I Prof. Paulo Ferreira Atividade para Sala de Aula: 25/11/2008 1. Introdução Índices Os índices

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

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas Linguagem SQL ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas villas@puc-rio.br SQL Linguagem padrão de acesso tabelas em um banco de dados relacional Permite definir e manipular dados DML

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

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

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

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

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011 Banco de Dados I Aula 17 - Prof. Bruno Moreno 08/11/2011 Plano de Aula Visões em SQL Normalização Motivação Definição Formas Normais Banco de Dados I VISÕES Visões É uma tabela única derivada de outra(s)

Leia mais

Ambiente de Data Warehouse Para Imagens Médicas Baseado Em Similaridade

Ambiente de Data Warehouse Para Imagens Médicas Baseado Em Similaridade Universidade de São Paulo - USP Instituto de Ciências Matemáticas e de Computação - ICMC Programa de Pós-Graduação em Ciências da Computação e Matemática Computacional Ambiente de Data Warehouse Para Imagens

Leia mais

Banco de dados na Web

Banco de dados na Web Banco de dados na Web 4º TSI Jonathan de Matos Conteúdo Conceitos fundamentais diferenças entre mysql e postgresql programas clientes: psql - pgadmin 3 - phppgadmin terminal interativo psql: comandos linguagem

Leia mais

Projeto de Bancos de Dados Distribuídos (Parte 01)

Projeto de Bancos de Dados Distribuídos (Parte 01) Projeto de Bancos de Dados Distribuídos (Parte 01) IF694 BD Distribuídos e Móveis Bernadette Farias Lóscio bfl@cin.ufpe.br Tipos de fragmentação n n Fragmentação vertical 1 Grau de fragmentação n É preciso

Leia mais

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g Pedro F. Carvalho OCP Oracle 2008.2 10g SQL Avançado Atualização e Inserção de Dados Comando INSERT Sumário Inclusão simples, inclusão de dados com SELECT Comando UPDATE Alteração simples, alteração usando

Leia mais

Revisão Banco de Dados

Revisão Banco de Dados Revisão Banco de Dados Carlos Henrique - Aula 2 Descoberta de Conhecimento e Mineração de Dados Tópicos Abordados Conceitos Básicos Características Arquitetura Lógica Usuários Finais Modelo E/R Linguagens

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem efetivamente executadas Uma consulta possui muitas estratégias

Leia mais

14/03/12. Tipos de fragmentação. Projeto de Bancos de Dados Distribuídos (Parte 01) Correção das regras de fragmentação. Grau de fragmentação

14/03/12. Tipos de fragmentação. Projeto de Bancos de Dados Distribuídos (Parte 01) Correção das regras de fragmentação. Grau de fragmentação Tipos de fragmentação Projeto de Bancos de Dados Distribuídos (Parte 01) n n Fragmentação vertical IN1128/IF694 Bancos de Dados Distribuídos e Móveis Ana Carolina Salgado acs@cin.ufpe.br Bernadette Farias

Leia mais

MySql. Introdução a MySQL. Andréa Garcia Trindade

MySql. Introdução a MySQL. Andréa Garcia Trindade MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo

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

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