Sistemas de Gerência de Bancos de Dados

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

Download "Sistemas de Gerência de Bancos de Dados"

Transcrição

1 Sistemas de Gerência de Bancos de Dados 4 - Consultas e Transações 4.1- Processamento de Consultas 1

2 Introdução Etapas do Processamento de uma consulta: linguagem do usuário análise sintática e tradução otimização execução Análise Sintática linguagem intermediária Tópicos: CAT Otimização linguagem interna Interfaces Catálogo Execução Otimização Execução BD linguagem elementar 2

3 Linguagem do usuário Linguagem intermediária Linguagem interna Linguagem elementar Interfaces 3

4 Interfaces - Linguagem do Usuário Consultas simples em SQL: um subconjunto de SQL, incluindo uma cláusula INTO armazenando a resposta e restringindo a qualificação a uma expressão booleana sobre comparações, negadas ou não Formato genérico de uma consulta: select <lista resultante> into <relação resultante> from <lista de relações> where <qualificação> onde a qualificação é uma expressão booleana composta de termos da forma: seleção r.a<op><constante> restrição r.a<op>r.b junção r.a<op>s.b 4

5 Interfaces - Linguagem do Usuário Classificação das cláusulas de uma consulta: univariável: todos os literais da cláusula são sobre a mesma variável multivariável homogênea: a cláusula é univariável, ou todos os literais são sobre as mesmas 2 variáveis heterogênea Classificação das Consultas herdada das classificação das cláusulas 5

6 Exemplo: Interfaces - Linguagem do Usuário select F.NOME from FORNECEDOR F, FORNECIMENTO FN, REGIÃO R P1 where F.NUMERO = FN.NUMERO P2 and (FN.CODIGO = 10 or FN.CODIGO = 12) P3 and FN.QUANT > P4=(P41 or P42) and (F.SEDE = R.ESTADO or F.SEDE = 'DF') P5 and R.NOME = 'CENTRO SUL' P1 : multivariável e homogênea P2, P3 e P5 : univariáveis P4 : multivariável e heterogênea (primeiro literal sobre F e R mas segundo literal sobre F apenas) 6

7 Interfaces - Linguagem Intermediária Álgebra relacional simples: subconjunto da álgebra relacional com o mesmo poder expressivo que o subconjunto de SQL adotado conjunto de operadores considerado: projeção seleção junção cartesiano união proj[x](t) sel[p](t) join[p](t,u) prod(t,u) union(t,u) 7

8 Esquema Conceitual Interfaces - Exemplo create table PRODUTO (CODIGO (integer), NOME (char(10)), MELHOR_FORN (integer) ) create table FORNECIMENTO (NUMERO (integer), CODIGO (integer), QUANTIDADE (integer), LOCAL (char(5)) ) Consulta expressa em SQL select P.CODIGO from PRODUTO P, FORNECIMENTO F where F.NUMERO = '41.738' and F.CODIGO = P.CODIGO and P.MELHOR_FORN = '41.738' 8

9 Consulta expressa na álgebra Interfaces - Exemplo proj[codigo.produto] (join[codigo.fornecimento = CODIGO.PRODUTO] (sel(numero='41.738')(fornecimento), sel[melhor_forn = '41.738'](MELHOR_FORN))) proj[codigo.produto] join[codigo.fornecimento = CODIGO.PRODUTO] sel(numero='41.738') sel[melhor_forn = '41.738'] FORNECIMENTO MELHOR_FORN 9

10 Interfaces - Linguagem Interna Estruturas Internas tabelas = seqüências de registros internos tipos de tabelas tabelas externas: tabelas em memória secundária tabelas de inversão: arquivos invertidos para tabelas externas tabelas internas: tabelas em memória principal tabelas transientes: agem como área intermediária entre operações consecutivas IDR = campo especial dos registros com um identificador único 10

11 Operações sobre Tabelas CRIA_TAB(T,X) CRIA_INV(T,Y,U) DESTROI(T) ORD(T,X,tipo;V) onde tipo=ascente ou descente UNIAO(T,U;V) Interfaces - Linguagem Interna 11

12 Interfaces - Linguagem Interna Operações sobre Tabelas SELEÇÃO(T,X,P(T);V) - seleção sobre T constrói uma nova tabela V(IDR,X) tal que v é um registro de V sse existe t em T tal que v(x)=t(x) e v(idr) é uma nova id t satisfaz a P(T) 12

13 Interfaces - Linguagem Interna Operações sobre Tabelas JUNÇÃO(T,U,X,Y,P(T,U),P(T),P(U);V) - junção tradicional constrói uma nova tabela V(IDR,X,Y) tal que v é um registro de V sse existem t e u em T e U tais que v(x)=t(x) e v(y)=u(y) e v(idr) é uma nova id t satisfaz a P(T) u satisfaz a P(U) t e u concatenadas satisfazem a P(T,U) 13

14 Interfaces - Linguagem Interna Programas na Linguagem Interna: programas multi-thread cujas operações e estruturas de dados básicas são aquelas descritas anteriormente 14

15 Interfaces - Linguagem Elementar Estruturas Físicas armazena dados, estruturas auxiliares de acesso aos dados, informações de controle, etc... organização: memória secundária dividida em segmentos segmentos divididos em páginas com id único Ações Elementares: R(X) W(X) leia todas as páginas cujos id's estão no conjunto X mova do buffer pool para memória secundária todas as páginas cujos id's estão em X r(x,p,s) recupere o conteúdo da página x a partir de p até p+s-1 w(x,p) mude o conteúdo da página x a partir da posição p (o novo valor e o comprimento foram omitidos...) 15

16 Catálogo Informações sobre uma tabela T: n(t) p(t) = número de registros de T = número de páginas ocupadas por T p'(t) = p(t) se T for passada como tabela externa = 0 se T for passada como tabela interna s(t) f(t) f(t) = tamanho do registro de T = número médio de registros de T por página = tamanho da página / s(t) (supondo que T não compartilha páginas com outras tabelas e que os registros de T são de tamanho fixo) 16

17 Catálogo Informações sobre uma lista de atributos X de uma tabela T: V(X,T) = número de valores distintos de X que ocorrem em T SC(X,T)= número médio de registros de T que satisfazem a uma condição de igualdade em X SC(X,T)= 1, se X é chave de T SC(X,T)= n(t) / V(X,T), se X não é chave de T MAX(T,X) = maior valor de T[X] MIN(T,X) = menor valor de T[X] 17

18 Informações sobre um índice U: Catálogo CHV(U)= número de chaves distintas em U p(u) f(u) h(u) = número de páginas conto chaves em U = número médio de filhos de um nó, para uma árvore B = número de níveis de U = 1, se U é uma tabela de hash = [log(v(x,t)], se U é uma árvore B sobre as chaves X de T 18

19 Catálogo Notação: Q é uma consulta U1,...,Un são as relações varridas por Q B é a qualificação de Q T é a relação resultante de Q, ou seja, T é o subconjunto de U = U1 x...x Un que satisfaz B Fator de Seletividade: F(B) = percentagem de tuplas de U que satisfazem B CAR(T) = CAR(U1) x...x CAR(Un) x F(B) 19

20 Catálogo Estimação de F(B): u i.x = valor F(B) = 1 / V(X,Ui) F(B) = 1 / CHV(V), se V for uma inversão de U i por X F(B) = 1 / 10, se não houver informação sobre T[X] u i.x > valor F(B) = (MAX(U i,x) - valor) / (MAX(U i,x) - MIN(U i,x)) F(B) = 1 / 10, se o domínio não for aritmético 20

21 Catálogo Estimação de F(B): u a.x = u b.y U a U b X = x Y = x no máximo uma tupla de U b com Y=x Se Y for chave (primária) de U b então cada tupla de U a se junta com no máximo uma tupla de U b. Logo, join[u a.x = u b.y](u a,u b ) não pode ter mais tuplas do que U a. 21

22 Catálogo Estimação de F(B): u a.x = u b.y F(B) = join[u a.x = u b.y](u a, U b ) ( U a * U b ) Se Y for chave de U b então cada tupla de U a se junta com no máximo uma tupla de U b. Logo, join[u a.x = u b.y](u a, U b ) U a, ou seja: F(B) = 1 / U a Se X for chave de U a então join[u a.x = u b.y](u a, U b ) U b. Ou seja: F(B) = 1 / U b Se X for chave de U a e Y for chave de U b, então : F(B) = min(1 / U a, 1 / U b ) = 1 / max( U a, U b ) 22

23 Catálogo Estimação de F(B): u a.x = u b.y U a U b X = x Y = x Y = x Y = x Y = x 1 * U b CHV(V b ) Se V b for uma inversão de U b por Y, então estima-se que 1 * U b tuplas de U b se juntem com cada tupla de U a. CHV(V b ) Logo, join[u a.x = u b.y](u a,u b ) não pode ter mais tuplas do que U a * ( 1 * U b ) CHV(V b ) 23

24 Catálogo Estimação de F(B): u a.x = u b.y F(B) = join[u a.x = u b.y](u a, U b ) ( U a * U b ) Se V b for uma inversão de U b por Y, então join[u a.x = u b.y](u a, U b ) U a * ( 1 * U b ), logo: CHV(V b ) F(B) = 1 / CHV(V b ) Se V a for uma inversão de U a por X, então F(B) = 1 / CHV(V a ) Se V a for uma inversão de U a por X e V b for uma inversão de U b por Y, então : F(B) = 1 / max( CHV(V a ), CHV(V b ) ) 24

25 Catálogo Estimação de F(B): u a.x = u b.y F(B) = 1 / U a se X for chave de U a F(B) = 1 / max( U a, U b ) se X for chave de U a e Y for chave de U b F(B) = 1 / CHV(V a ) se V a for uma inversão de U a por X F(B) = 1 / max(chv(v a ), CHV(V b )) se V a for uma inversão de U a por X e V b for uma inversão de U b por Y F(B) = 1 / 10 (na falta de informação) u i.x > u j.y F(B) = (MAX(U i,x) - MIN(U j,y) / (MAX(U i,x) - MIN(U i,x)) F(B) = 1 / 10 (se o domínio de A não for aritmético) 25

26 Catálogo Estimação de F(B): B = B1 or B2 F(B) = F(B1) + F(B2) - F(B1)*F(B2) B = B1 and B2 F(B) = F(B1) * F(B2) B = not B1 F(B) = 1 - F(B1) 26

27 Execução Execução de programas na linguagem interna: implementação das operações sobre tabelas: seleção seleção sequencial seleção direta seleção por união seleção por interseção junção junção aninhada junção aninhada por página junção aninhada indexada junção por intercalação junção por hash execução de programas 27

28 Execução SELEÇAO_SEQUENCIAL(T,X,P(T);V) T X P(T) V - tabela externa - atributos de T que comporão a resposta V - predicado sobre T - resposta conto a projeção em X das tuplas de T que satisfazem P(T) crie V como vazia for each t em T do if t satisfaz P(T) then acrescente t[x] a V 28

29 Execução custo da operação: C = número de páginas de T lidas (custo de I/O) + número de páginas de V gravadas + W * número de tuplas de T processadas (custo de CPU) caso 1: T e V externas com os registros agrupados C = p(t) + n(t)*f(p(t))* X / tamanho da página + W*n(T) (teste é feito para todas as tuplas em T) onde X denota o comprimento de X (outros casos deixados como exercício) 29

30 Execução SELEÇÃO_DIRETA(T,X,P(T),U,Q(T);V) T X P(T) U Q(T) V - tabela externa - atributos de T que comporão a resposta V - predicado sobre T - tabela de inversão sobre T nos atributos Y - expressão booleana conto atributos apenas em Y - resposta conto a projeção em X das tuplas de T que satisfazem P(T) and Q(T) crie V como vazia crie P com todos os apontadores para registros de T que satisfazem Q(T), usando U for each p em P do recupere em t o registro de T apontado por p if t satisfaz P(T) then acrescente t[x] a V 30

31 Execução custo da operação: C = número de páginas de T lidas (custo de I/O) + número de páginas de U lidas + número de páginas de V gravadas + W * número de tuplas de T processadas (custo de CPU) caso 1: V externa com os registros agrupados premissas: cada registro de T que satisfaz Q(T) requer leitura de 1 página determinar que chaves satisfazem Q(T) requer n(u) * F(Q(T)) acessos a páginas de U C = n(t) * F(Q(T)) + n(u) * F(Q(T)) + n(t) * F(P(T)) * F(Q(T) * X / tamanho da página + W * n(t) * F(Q(T)) (teste de P(T) é feito para todas as tuplas em T que satisfazem a Q(T)) (outros casos deixados como exercício) 31

32 Execução SELEÇÃO_UNIÃO(T,X,P(T) or P'(T),U,U';V) T - tabela externa X - atributos de T que comporão a resposta V P(T) or P'(T) - predicado sobre T U - tabela de inversão sobre T capaz de resolver P(T) U' - tabela de inversão sobre T capaz de resolver P'(T) V - resposta conto a projeção em X das tuplas de T que satisfazem P(T) or P'(T) crie V como vazia crie P em memória com todos os apontadores para registros de T que satisfazem P(T), usando U crie P' em memória com todos os apontadores para registros de T que satisfazem P'(T), usando U' for each p em P união com P' do recupere em t o registro de T apontado por p acrescente t[x] a V 32

33 Execução SELEÇÃO_INTERSEÇÃO(T,X,P(T) and P'(T),U,U';V) T - tabela externa X - atributos de T que comporão a resposta V P(T) and P'(T) - predicado sobre T U - tabela de inversão sobre T capaz de resolver P(T) U' - tabela de inversão sobre T capaz de resolver P'(T) V - resposta conto a projeção em X das tuplas de T que satisfazem P(T) and P'(T) crie V como vazia crie P em memória com todos os apontadores para registros de T que satisfazem P(T), usando U crie P' em memória com todos os apontadores para registros de T que satisfazem P'(T), usando U' for each p em P interseção com P' do recupere em t o registro de T apontado por p acrescente t[x] a V 33

34 Execução JUNÇÃO_ANINHADA(T,U,X,Y,P(T,U),P(T),P(U);V) T, U - tabelas externas X, Y - atributos de T e U que comporão a resposta V P(T,U) - predicado de junção entre T e U P(T), P(U) - predicados adicionais sobre T e U V - resposta conto a projeção em X e Y das tuplas de T e U que satisfazem P(T,U) and P(T) and P(U) t 1 P(t) P(u) 2 u v 3 v 34

35 Execução JUNÇÃO_ANINHADA(T,U,X,Y,P(T,U),P(T),P(U);V) T, U - tabelas externas X, Y - atributos de T e U que comporão a resposta V P(T,U) - predicado de junção entre T e U P(T), P(U) - predicados adicionais sobre T e U V - resposta conto a projeção em X e Y das tuplas de T e U que satisfazem P(T,U) and P(T) and P(U) inicie V como vazia; for each registro t de T que satisfaz a P(T) do substitua t em P(T,U) criando P(t,U); for each registro u de U que satisfaz a P(t,U) e P(U) do acrescente um registro v a V criado a partir de t e u 35

36 Execução JUNÇÃO_ANINHADA_POR_PÁGINA(T,U,X,Y,P(T,U),P(T),P(U);V) T, U - tabelas externas agrupadas X, Y - atributos de T e U que comporão a resposta V P(T,U) - predicado de junção entre T e U P(T), P(U) - predicados adicionais sobre T e U V - resposta conto a projeção em X e Y das tuplas de T e U que satisfazem P(T,U) and P(T) and P(U) pagina p t 1 pagina p P(t) 2 página q u página q P(u) v 3 v 36

37 Execução JUNÇÃO_ANINHADA_POR_PÁGINA(T,U,X,Y,P(T,U),P(T),P(U);V) T, U - tabelas externas agrupadas X, Y - atributos de T e U que comporão a resposta V P(T,U) - predicado de junção entre T e U P(T), P(U) - predicados adicionais sobre T e U V - resposta conto a projeção em X e Y das tuplas de T e U que satisfazem P(T,U) and P(T) and P(U) inicie V como vazia; for each página p de T do for each registro t em p que satisfaz P(T) do substitua t em P(T,U) criando P(t,U) for each página q de U do for each registro u em q que satisfaz P(t,U) e P(U) do acrescente um registro v a V criado a partir de t e u 37

38 Execução JUNÇÃO_ANINHADA_INDEXADA(T,U,X,Y,P(T,U),P(T),P(U),R;V) T, U - tabelas externas X, Y - atributos de T e U que comporão a resposta V P(T,U) - predicado de junção entre T e U P(T), P(U) - predicados adicionais sobre T e U R V - índice sobre U que resolve P(t,U) - resposta conto a projeção em X e Y das tuplas de T e U que satisfazem P(T,U) and P(T) and P(U) t P(t,U) R 3 P(t) 1 2 P(t,u) P(u) e P(t,u) v 3 4 u v 38

39 JUNÇÃO_ANINHADA_INDEXADA(T,U,X,Y,P(T,U),P(T),P(U),R;V) T, U - tabelas externas X, Y - atributos de T e U que comporão a resposta V P(T,U) - predicado de junção entre T e U P(T), P(U) - predicados adicionais sobre T e U R V - índice sobre U que resolve P(t,U) - resposta conto a projeção em X e Y das tuplas de T e U que satisfazem P(T,U) and P(T) and P(U) inicie V como vazia; for each registro t de T que satisfaz a P(T) do substitua t em P(T,U) criando P(t,U) crie S com todos os apontadores para registros de U que satisfazem P(t,U), usando R for each s em S do recupere em u o registro de U apontado por s if u satisfaz P(U) then acrescente um registro v a V criado a partir de t e u 39

40 Execução JUNÇÃO_INTERCALAÇÃO(T,U,X,Y,P(T,U),P(T),P(U);V) T, U - tabelas externas X, Y - atributos de T e U que comporão a resposta V P(T,U) - predicado de junção entre T e U da format.x<op>u.y T e U estão ordenados por X e Y, respectivamente, em uma ordem de junção compatível com T.X<op>U.Y P(T), P(U) - predicados adicionais sobre T e U V - resposta conto a projeção em X e Y das tuplas de T e U que satisfazem P(T,U) and P(T) and P(U) t varredura 1 P(t) P(u) v 2 varredura u 3 v 40

41 JUNÇÃO_INTERCALAÇÃO(T,U,X,Y,P(T,U),P(T),P(U);V) inicie V como vazia inicie t0 com o primeiro registro de T que satisfaz P(T) (* t0 será nulo caso não exista inicie u0 com o primeiro registro de U que satisfaz P(U) (* u0 será nulo caso não exista while t0 não for nulo e u0 não for nulo do substitua t0 em T.X<op>U.Y criando P(t0,U) crie uma tabela interna temporária M, inicialmente vazia while u0 não for nulo e u0 satisfizer P(t0,U) do acrescente u0 a M u0 := próximo registro de U a partir de u0 que satisfaz P(U) x := t0[x] while t0[x] = x do for each registro m em M do acrescente um registro v a V criado a partir de t0 e m t0 := próximo registro de T a partir de t0 que satisfaz P(T) 41

42 Execução JUNÇÃO_HASH(T,U,X,Y,P(T,U),P(T),P(U);V) T, U - tabelas externas X, Y - atributos de T e U que comporão a resposta V P(T,U) - predicado de junção entre T e U da forma T.X=U.Y P(T), P(U) - predicados adicionais sobre T e U V - resposta conto a projeção em X e Y das tuplas de T e U que satisfazem P(T,U) and P(T) and P(U) Tabela T HT1 P(t) 1 HT2 2 P(u) 4 HU1 HU2 3 Tabela U HT3 v HU3 HT4 v 5 HU4 42

43 Execução JUNÇÃO_HASH(T,U,X,Y,P(T,U),P(T),P(U);V) inicie V como vazia for each t em T such that t satisfaz P(T) do i := h(t[x]) acrescente t a HT(i) for each u em U such that u satisfaz P(U) do i := h(u[y]) acrescente u a HU(i) for each i = 0 to max do for each t em HT(i) do for each u in HU(i) do acrescente um registro v a V criado a partir de t e u 43

44 Execução Execução de Programas: um programa na linguagem interna pode ter vários threads, cada um correspondo a uma subexpressão indepente dentro da expressão relacional inicial proj[codigo.produto] (join[codigo.fornecimento = CODIGO.PRODUTO] (sel(numero='41.738')(fornecimento), sel[melhor_forn = '41.738'](MELHOR_FORN))) proj[codigo.produto] join[codigo.fornecimento = CODIGO.PRODUTO] sel(numero='41.738') sel[melhor_forn = '41.738'] FORNECIMENTO MELHOR_FORN 44

45 Execução de Programas: Execução a passagem de resultados intermediários de uma operação a outra pode ser feita através de: tabelas externas materializando os resultados tabelas internas manto os resultados no buffer pool tabelas transientes usando uma técnica de pipelining 45

46 Execução Pipelining: dirigido por demanda: o sistema repetidamente solicita registros à operação no topo do pipeline cada operação por sua vez solicita registros à operação imediatamente em seguida no pipeline dirigido pelo produtor: as operações não esperam por solicitações, mas acresentam registros até a área de trabalho designada esteje cheia 46

Sistemas de Gerência de Bancos de Dados

Sistemas de Gerência de Bancos de Dados Sistemas de Gerência de Bancos de Dados 4 - Consultas e Transacões 4.2 - Otimização de Consultas Tópicos Otimização Irrestrita Heurística por reordenação de subexpressões Heurística por desmembramento

Leia mais

Sistemas de Gerência de Bancos de Dados

Sistemas de Gerência de Bancos de Dados Sistemas de Gerência de Bancos de Dados 4 - Consultas e Transações 4.3 - Otimização de consultas distribuídas Introdução BD Distribuído: banco de dados armazenado em vários servidores, conectados por uma

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

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

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

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

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

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

CAPÍTULO 3. INTRODUÇÃO AO PROCESSAMENTO DE CONSULTAS

CAPÍTULO 3. INTRODUÇÃO AO PROCESSAMENTO DE CONSULTAS CAPÍTULO 3. INTRODUÇÃO AO PROCESSAMENTO DE CONSULTAS O propósito deste capítulo é posicionar o leitor quanto ao problema de se processar consultas e atualizações em bancos de dados centralizados ou distribuídos.

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

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

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

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

- 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

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

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

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

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

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

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

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL 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 Introdução

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

Á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

Universidade Veiga de Almeida

Universidade Veiga de Almeida Banco de Dados II Universidade Veiga de Almeida Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer (luiz.vcm@gmail.com) Linguagens de Consulta Linguagens nas quais os usuários fazem requisições de

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

Á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

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

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

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

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

Arquivos invertidos 39

Arquivos invertidos 39 Arquivos invertidos 39 Arquivos invertidos É um mecanismo que utiliza palavras para indexar uma coleção de documentos a fim de facilitar a busca e a recuperação Estruturas de um arquivo invertido Vocabulário

Leia mais

Sistemas de Gerência de Bancos de Dados. Módulo 1 - Armazenamento

Sistemas de Gerência de Bancos de Dados. Módulo 1 - Armazenamento Sistemas de Gerência de Bancos de Dados Módulo 1 - Armazenamento Tópicos Introdução Gerência do Buffer Pool Armazenamento em SGBDs Convencionais Armazenamento em SGBDs Orientados a Objeto Introdução Etapas

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

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

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

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

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

1. Em relação à organização de arquivos e índices, responda: (a) Dado um arquivo de dados, o que é a chave de um índice para o arquivo?

1. Em relação à organização de arquivos e índices, responda: (a) Dado um arquivo de dados, o que é a chave de um índice para o arquivo? UFU/FACOM/BCC Gerenciamento de Bancos de Dados 2018/2-2 a Lista de Exercícios Prof. Ilmério Reis da Silva 1. Em relação à organização de arquivos e índices, responda: (a) Dado um arquivo de dados, o que

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

Álgebra Relacional. Linguagem de consultas procedural Conjunto de operações que usam uma ou duas relações como entrada e geram uma relação de saída

Álgebra Relacional. Linguagem de consultas procedural Conjunto de operações que usam uma ou duas relações como entrada e geram uma relação de saída Algebra Relacional Adaptado de Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Álgebra Relacional Linguagem de consultas procedural

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

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

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

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

Aula 9 BD 1 SQL Parte 1. Profa. Elaine Faria UFU

Aula 9 BD 1 SQL Parte 1. Profa. Elaine Faria UFU Aula 9 BD 1 SQL Parte 1 Profa. Elaine Faria UFU - 2018 Visão Geral SQL DML (Data Manipulation Language) Formular consultas, inserir, excluir e modificar tuplas DDL (Data Definition Language) Criar, excluir

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

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Laboratório de Banco de Dados Prof. Luiz Antônio Vivacqua C. Meyer (luiz.vcm@gmail.com) Sintaxe Geral SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1, nome_tabela2,...,

Leia mais

S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A

S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A BANCO DE DADOS GERENCIAL 1 A U L A 4 S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A INDEPENDÊNCIA DOS DADOS A habilidade de modificar a definiçã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

Subconsultas ou Consultas Aninhadas

Subconsultas ou Consultas Aninhadas Subconsultas ou Consultas Aninhadas Forma alternativa de especificar consultas envolvendo relacionamentos entre tabelas Otimização filtragens prévias de dados na subconsulta apenas tuplas/atributos de

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

II.1 Conceitos Fundamentais. Uma delas é programar o =>

II.1 Conceitos Fundamentais. Uma delas é programar o => II.1 Conceitos Fundamentais II.2 Gerações das Linguagens de Programação II.3 Linguagem de Programação II.4 Sistema Operacional II.5 Tradutores II.5.1 Estrutura de um tradutor II.5.1.1 Análise Léxica II.5.1.3

Leia mais

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO ACH2025 Laboratório de Bases de Dados Aula 8 Indexação e Hashing Parte 1 Professora: Fátima L. S. Nunes Conceitos básicos Boa parte das consultas a BD referem-se a apenas uma parte pequena dos registros.

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

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

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

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

modelo introduzido por E. F. Codd Meados da década de 70: protótipos. INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78)

modelo introduzido por E. F. Codd Meados da década de 70: protótipos. INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78) 1 1970 - modelo introduzido por E. F. Codd Meados da década de 70: protótipos INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78) 1979: primeiro produto SQL (Oracle) Meados da década

Leia mais

Roteiro. Álgebra Relacional e Cálculo Relacional. BCC321 - Banco de Dados I. Introdução. Ementa. Posicionamento. Introdução

Roteiro. Álgebra Relacional e Cálculo Relacional. BCC321 - Banco de Dados I. Introdução. Ementa. Posicionamento. Introdução Roteiro Álgebra Relacional e Cálculo Relacional Posicionamento Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz

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

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS ÁLGEBRA E CÁLCULO RELACIONAL FELIPE G. TORRES APRESENTAÇÃO Avaliações AV1 AV2 TRAB1 TRAB2 REFERÊNCIAS GRAVES, M. Projeto de Banco de Dados com XML. São Paulo: Makron

Leia mais

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de Introdução O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language). O padrão SQL define precisamente uma interface SQL para a

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

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

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

Manipulação de Dados com SQL

Manipulação de Dados com SQL Manipulação de Dados com SQL Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia www.facom.ufu.br/~wendelmelo Banco de Dados I manipulação de dados com SQL 2 Structured Query Language

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

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013 Linguagem de Manipulação de Dados (DML) Estudo Dirigido A Linguagem SQL Preparação Criar um banco de dados denominado Escola ; Criar a tabela, como especificado abaixo: # RA Numeric(8) Nome Serie Turma

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

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva  UFU/FACOM/BCC GBC053 Gerenciamento de Banco de Dados Plano de Curso e Introdução Ilmério Reis da Silva ilmerio@ufu.br www.facom.ufu.br/~ilmerio/gbd UFU/FACOM/BCC Plano de Curso Ementa Arquitetura de um Sistema de Gerenciamento

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Modelo ER & Modelo Relacional Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 18 de

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

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

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

Álgebra Relacional e Cálculo Relacional

Álgebra Relacional e Cálculo Relacional SISTEMAS DE INFORMAÇÃO Álgebra Relacional e Cálculo Relacional Prof. Edson Thizon Linguagens de consultas formais (1) Uma linguagem de consulta (Query Language) é uma linguagem com a qual o usuário pode

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

Subconsultas ou Consultas Aninhadas

Subconsultas ou Consultas Aninhadas Subconsultas ou Consultas Aninhadas Forma alternativa de especificar consultas envolvendo relacionamentos entre tabelas Otimização filtragens prévias de dados na subconsulta apenas tuplas/atributos de

Leia mais

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language) AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados

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

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

TLBD II. Continuação

TLBD II. Continuação TLBD II Continuação As expressões aritméticas podem conter nomes de colunas, valores numéricos constantes e os operadores aritméticos: OPERADOR DESCRIÇÃO + Adição - Subtracção * Multiplicação / Divisão

Leia mais

Modelo Entidade-Relacionamento (E-R)

Modelo Entidade-Relacionamento (E-R) Modelo Entidade-Relacionamento (E-R) composto n lote n n n contrato_compra_venda n possui proprietário possui n associado cadastro n banco faz fronteira pertence n ruas n quadras n financiado empréstimo

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 Relacional. Criando relações em SQL

O Modelo Relacional. Criando relações em SQL O Modelo Relacional 1 Criando relações em SQL Observe que o tipo (domínio) de cada campo está especificado, e reforçado pelo SGBD, não importando se tuplas são adicionadas ou modificadas. A tabela Enrolled

Leia mais

1. E 1 R 1 X R 2 (equi-join) C = D

1. E 1 R 1 X R 2 (equi-join) C = D UERJ FACULDADE DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA DE SISTEMAS E COMPUTAÇÃO ENGENHARIA DE SISTEMAS B A. Considere as seguintes relações: R 1 (A:Dom 1; B:Dom 2; C:Dom 3) R 2 (D:Dom 3; E:Dom 4) R 3

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

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

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

Leia mais

O Modelo Relacional. Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento)

O Modelo Relacional. Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento) O Modelo Relacional 1 Criando relações em SQL Observe que o tipo (domínio) de cada campo está especificado, e reforçado pelo SGBD, não importando se tuplas são adicionadas ou modificadas. A tabela Enrolled

Leia mais

SQL. Subqueries. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL. Subqueries. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Subqueries Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Subqueries Uma subquery ou nested query, é uma query dentro de outra query. Uma subquery é uma expressão do tipo

Leia mais

Aula 8 BD1 Álgebra Relacional. Profa. Elaine Faria UFU

Aula 8 BD1 Álgebra Relacional. Profa. Elaine Faria UFU Aula 8 BD1 Álgebra Relacional Profa. Elaine Faria UFU - 2018 Introdução Linguagens de consulta formais associadas ao modelo relacional Álgebra Usa uma coleção de operadores e cada consulta descreve um

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

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

Introdução Ferramentas Unix MapReduce Outras Ferramentas. Batch Processing. Fabiola Santore. Universidade Federal do Paraná

Introdução Ferramentas Unix MapReduce Outras Ferramentas. Batch Processing. Fabiola Santore. Universidade Federal do Paraná Fabiola Santore Universidade Federal do Paraná Sumário 1. Introdução 2. Ferramentas Unix 2.1 Análise de log 2.2 Filosofia Unix 3. MapReduce 3.1 Procedimento 3.2 Reduce: Joins e Agrupamento 3.3 Análise

Leia mais