Definição do Plano de Execução. Estimativas sobre os Dados

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Definição do Plano de Execução. Estimativas sobre os Dados"

Transcrição

1 Definição do Plano de Execução Analisar alternativas de processamento Escolher a melhor alternativa Diversas medidas podem ser consideradas tempo CPU, comunicação, acessos a disco medida mais relevante ( gargalo ): acessos a disco para avaliar o custo de uma alternativa análise de estimativas sobre os dados tamanho das tabelas, existência de índices, seletividade,... custo dos algoritmos de processamento de operações algébricas supõe armazenamento clusterizado de dados e índices supõe que o DD mantém localização física de arquivos de dados e índices Estimativas sobre os Dados n t t (a i ) f V (a i ) C (a i ) G (a i ) b número de tuplas na tabela tamanho (em bytes) de uma tupla de tamanho (em bytes) do atributo a i de fator de bloco de (quantas tuplas de cabem em um bloco *) * bloco: unidade de / em disco (medida básica de avaliação) f = t bloco / t número de valores distintos do atributo a i de cardinalidade (estimada) do atributo a i de (tuplas de que satisfazem um predicado de igualdade sobre a i ) (estimando distribuição uniforme: C (a i ) = n / V (a i ) ) grau de seletividade do do atributo a i de (estimando distribuição uniforme : G (a i ) = / V (a i ) ) número de blocos necessários para manter tuplas de b = n / f

2 Exemplo de Estimativas de Tabela Existem 00 médicos cadastrados na tabela Médicos; cada tupla possui 60 bytes e bloco lê/grava kb Estimativas n Médicos = 00 tuplas t Médicos = 60 bytes f Médicos = 02 / 60 = tuplas b Médicos = 00 / = 6 blocos Estimativas sobre os Índices f i h i bf i fator de bloco do índice i (fan-out do índice) número de níveis (de blocos) do índice para valores de um atributo a i ( altura do índice ) (assume-se armazenamento clusterizado em largura ) h i = log fi V (a i ) / N (para índices árvore-b) (N é o número de valores que cabem em um nodo) h i = (para índices hash) (assume-se que tabelas hash, por não conterem muitos atributos, cabem inteiramente em um bloco) número de blocos de índice no nível mais baixo do índice (número blocos folha ) 2

3 Exemplo de Estimativas de Índice bloco b Índice árvore-b N = bloco b2 bloco b Estimativas f índice-cm = nodos h índice-cm = log fi V (a i ) / N = log / 2 = 2 bf índice-cm = 2 Processamento de eleções (σ) Alternativas e suas estimativas de custo A: pesquisa linear A2: pesquisa binária A: índice primário para atributo chave A: índice primário para atributo não-chave A: índice secundário para atributo chave A6: índice secundário para atributo não-chave A: desigualdade (>, >=) com índice primário A: desigualdade (<, =) com índice primário A: desigualdade com índice secundário

4 Pesquisa Linear (A) Varre todo o arquivo para buscar os dados desejados acessa todos os blocos do arquivo Em alguns casos, é a única alternativa possível Custo para uma tabela custo = b Pesquisa Binária (A2) Aplicado sobre uma tabela quando dados estão ordenados pelo atributo de seleção a i há uma condição de igualdade sobre a i Custo custo para acessar o bloco da a tupla: log 2 b custo para acessar os blocos das demais tuplas: (C (a i ) / f ) custo = log 2 b + (C (a i ) / f ) se a i é chave: custo = log 2 b desconta-se o bloco da primeira tupla (já foi localizada)

5 eleções Utilizando Índices Atributo a i com índice primário leitura do índice corresponde à leitura na ordem física do arquivo arquivo fisicamente ordenado por valores de a i se a i é chave (A) acesso ao bloco onde está custo = h i + a tupla com o valor de a i se a i é não-chave (A) custo = h i + (C (a i ) / f ) número de blocos contíguos acessados a partir do 0 bloco que contém o valor da chave eleções Utilizando Índices Atributo a i com índice secundário arquivo não está fisicamente ordenado por valores de a i se a i é chave (A) custo = h i + se a i é não-chave (A6) supor que o bloco folha do índice aponta para uma lista de apontadores para as tuplas desejadas estimar que esta lista cabe em um bloco custo = h i + + C (a i ) pior caso: cada tupla com o valor desejado está em um bloco acesso adicional à lista de apontadores

6 Exercício Dado Pac(codp, nome, idade, cidade, doença) e as seguintes estimativas: n Pac = 000 tuplas; t Pac = 00 bytes; V Pac (codp) = 000; V Pac (doença) = 0; V Pac (idade) = 00; um índice primário árvore-b para codp (I) com N = ; f I = 0; um índice secundário árvore-b para doença (I2) com N = ; f I2 = ; e bloco = 2 kb upondo a seguinte consulta: σ doença = câncer (Pac) a) qual a melhor estratégia de processamento para σ? b) se agora bloco = kb, a estratégia escolhida no item anterior continua sendo a melhor? Comparação por Desigualdade upõe-se que aproximadamente metade das tuplas satisfazem a condição a i <= x número de tuplas n / 2 DD mantém valores mínimo/máximo de a i a i <= x número de tuplas = 0, se x < MIN(a i ) número de tuplas = n, se x >= MAX(a i ) a i >= x número de tuplas = 0, se x > MAX(a i ) número de tuplas = n, se x <= MIN(a i ) 6

7 Desigualdade e Índices Atributo a i com índice primário comparações do tipo a i > x ou a i >= x (A) custo para buscar a i = x através do índice: h i custo (médio) para varredura do arquivo: b / 2 custo = h i + b / 2 comparações do tipo a i < x ou a i <= x (A) varre o arquivo até a i = x custo (médio) = b / 2 Desigualdade e Índices Atributo a i com índice secundário (A) custo para buscar a i = x através do índice: h i custo para varredura dos blocos folha do arquivo de índice (em média, metade dos blocos é acessado): bf i / 2 custo para varredura das listas de apontadores em cada bloco folha: bf i / 2 * f i * N custo para acesso a blocos de dados: n / 2 custo = h i + bf i / 2 + bf i / 2 * f i * N + n / 2 cada bloco possui f i nodos e cada nodo com N listas de apontadores pior caso: cada tupla em um bloco e, em média, metade dos dados atende a condição

8 Exercício 2 Considere a relação Pac e as estimativas dadas no exercício Dada a consulta σ codp > 0000 cidade = Florianópolis (Pac) a) qual a melhor estratégia de processamento para σ? b) supondo agora a existência de um índice secundário árvore-b para cidade (I) com N =, f I =, bf I = 0 e V Pac (cidade) = 00, qual a melhor estratégia de processamento para σ? Conjunções Estimativa de Tamanho Dada uma seleção σ c c2... cn () estima-se a cardinalidade de cada condição c i C(c i ) tamanho da relação resultante é dado por n. (C(c ). C(c 2 )..... C(c n )) / (n ) n Exemplo (a, b, c) n = 00 tuplas V (a) = 00 V (b) = 20 Dado σ a > b = 0, temos: C(a>) = n / 2 = 0 tuplas C(b=0) = n / V (b) = tuplas Estimativa tamanho = 00 (0.) / 00 2 = tuplas

9 Disjunções Estimativa de Tamanho Dada uma seleção σ c c2... cp tamanho da relação resultante é dado por n.( ( - C(c ) / n ).( - C(c 2 ) / n ).....( - C(c p ) / n )) Exemplo (a, b, c) n = 00 tuplas V (a) = 00 V (b) = 20 Dado σ a > b = 0, temos: C(a>) = n / 2 = 0 tuplas C(b=0) = n / V (b) = tuplas Estimativa tamanho = 00.( ( 0/00).( /00)) = tuplas Negações Estimativa de Tamanho Dada uma seleção σ θ tamanho da relação resultante é dado por n estimativatamanho(σ θ ) Exemplo (a, b, c) n = 00 tuplas V (a) = 00 V (b) = 20 Dado σ (a > b = 0), temos: Estimativa tamanho(σ a > b = 0 ) = tuplas Estimativa tamanho(σ (a > b = 0) ) = 00 = tuplas

10 Processamento de Produtos ( X ) Estimativa de tamanho ( X ) produto cartesiano ( X ) tamanho = n * n junção por igualdade ( equi-join natural ou theta) junção natural sem atributo em comum tamanho = n * n junção por referência (fk() = pk()) tamanho estimado <= n junção entre chaves candidatas (atributos unique) tamanho <= MIN (n, n ) Processamento de Produtos ( X ) Estimativa de tamanho ( X ) junção por igualdade ( equi-join natural ou theta) junção entre atributos não-chave (a i () = a j ()) cada tupla de associa-se com C (a j ) se tenho n tuplas n * C (a j ) idem para as tuplas de : n * C (a i ) tamanho estimado = MIN( n * C (a j ), n * C (a i ) )» menor estimativa geralmente é mais precisa junção theta por desigualdade (a i () > a j ()) estimativa: cada tupla de > n s / 2 tuplas de e viceversa tamanho estimado = MAX(n * n s / 2, n * n / 2 ) (pior caso) 0

11 Processamento de Produtos ( X ) Alternativas e suas estimativas de custo A: laço aninhado ( nested-loop ) A2: laço aninhado com índice A: merge-junção ( balanced-line ) A: hash-junção Laço Aninhado (A) Dois laços para varredura de blocos das relações a serem combinadas para cada bloco B de faça para cada bloco B de faça início se uma tupla t B satisfaz a condição de junção com uma tupla t B então adicione t * t ao resultado fim

12 Melhor caso Laço Aninhado - Custo os blocos de e cabem todos na memória custo = b + b Pior caso apenas um bloco de cada relação pode ser lido por vez custo = MIN(b + b * b, b + b * b ) Laço Aninhado com Índice (A2) Aplicada se existir um índice para o atributo de junção do laço interno Custo para cada tupla externa de, pesquisa-se o índice para buscar a tupla de custo diretamente associado ao tipo de índice exemplo com índice primário árvore-b para atributo chave em (I ) custo = b + n * (h Is + ) 2

13 Merge-Junção (A) Aplicada se e estiverem fisicamente ordenadas pelos atributos de junção tupla tupla bloco bloco ptr ptr bloco b tupla n tupla n bloco b Merge-Junção - Custo Pressupõe que pelo menos um bloco de cada relação cabe na memória geralmente isso é possível exige uma única leitura de cada relação custo M-J = b + b e e/ou não estiverem ordenadas, elas podem ser ordenadas custo = custo ordenação e/ou + custo M-J

14 Exercício Proponha um algoritmo de alto nível para executar a alternativa merge-junção Ordenação Externa Ordenação interna ordenação feita totalmente em memória Ordenação externa ordenação na qual os dados não cabem inteiramente na memória útil no processamento de consultas exibição ordenada de dados (ODE BY) avaliação de planos de execução técnica mais utilizada para ordenação de relações Mergeort Externo

15 Mergeort Externo Executa em 2 etapas Etapa ort ordena partições da relação em memória tamanho da partição depende da disponibilidade de buffers em memória (n buf = n o de buffers disponíveis) gera um arquivo temporário ordenado para cada partição Etapa 2 Merge de n iterações ordena um conjunto de temporários a cada iteração gera um novo temporário resultante da ordenação ordenação termina quando existir somente um temporário que mantém a relação inteira ordenada Mergeort Externo - Exemplo n buf = 2 ( ) f = 2 b = disco memória sort temp temp 2 temp temp disco temp temp ordenada 6 memória memória disco disco a iteração 2 a iteração merge de n iterações

16 Mergeort Externo - Custo n buf = 2 f = 2 b = disco memória sort temp temp 2 temp temp disco + de todos os blocos da relação custo = 2 * b Mergeort Externo - Exemplo n buf = 2 f = 2 b = N o de iterações é dependente do n o de temporários a ordenar 6 temp 6 temp 2 ordenada temp final A cada iteração, o n o de temporários se reduz 2 a um fator de n buf reserva-se 6 2 temp buffer para cada temporário. Logo 0 temp 6 ordena-se n buf temporários a cada 6 memória 2 6 iteração 6 n o iterações: temp 6 0 log n buf (b / n buf ) a cada memória iteração: 2 * b disco disco temp custo = disco a iteração 2 a iteração 2 * b * log n buf (b / n buf ) no inicial de temporários merge de n iterações

17 Mergeort Externo - Custo n buf = 2 f = 2 b = temp temp 2 temp temp Custo total = 2 * b + 2 * b * log n buf (b / n buf ) = 2 * b (log n buf (b / n buf ) + ) Exemplo = 2. ( log 2 ( / 2) + ) = 6 (2 + ) = acessos Merge-Junção - Custo e ambas as relações ( e ) estão ordenadas custo = b + b e uma delas () não está ordenada custo = 2 * b (log n buf (b / n buf ) + ) + b + b e ambas as relações não estão ordenadas custo = 2 * b (log n buf (b / n buf ) + ) + 2 * b (log n buf (b / n buf ) + ) + b + b

18 Hash-Junção Aplicada se existir um índice hash com a mesma função definido para os atributos de junção de e Executa em 2 etapas. Particionamento separa em partições as tuplas de e que possuem o mesmo valor para a função de hash 2. Junção analisa e combina as tuplas de uma mesma partição Hash-Junção - Funcionamento t t 2 X hash(a i ) = 0 hash(a j ) = 0 t t 2 t X t t t... t n hash(a i ) = hash(a j ) =... X... t m hash(a i ) = n hash(a j ) = n

19 Hash-Junção - Custo Fase de Particionamento lê e e as reescreve, organizadas em partições sempre que um conjunto de tuplas com o mesmo valor de hash adquire o tamanho de um bloco, este bloco é anexado a um arquivo temporário para a partição considera-se geralmente um melhor caso função hash distribui uniformemente os valores das tuplas» evita escrita de muitas pequenas partições. Assim, assume-se custo = custo e não custo > custo custo = 2 * b + 2 * b = 2 * (b + b ) Hash-Junção - Custo Fase de Junção lê as partições de mesmo hash e combina as tuplas equivale aproximadamente a uma nova leitura de todos os blocos de e custo = (b + b ) Custo Total custo = 2 * (b + b ) + (b + b ) = * (b + b )

20 Escrita ( ) do esultado Qualquer alternativa de processamento deve considerar este custo b res = número de blocos de resultado a ser Exemplo: estimativa de do resultado de um produto b res = tamanhoproduto / f res estimativa do fator de bloco do resultado (f res ) f res = tamanhobloco / (t + t ) arredonda para baixo pois uma tupla do resultado não pode estar parcialmente escrita em um bloco Exemplo Med(CM, nome,...) com n Med = 0 e t Med = 0 b Cons(CM, codp,...) com n Cons = 00 e t Cons = 20 b e bloco = 2 kb Dado Med X θ = σ Med.CM = Cons.CM Cons, temos: - junção por referência (fk(cons) = pk(med)) - tamanho resultado = n Cons = 00 tuplas f res = tamanhobloco / (t + t ) f res = 20 / (0 + 20) = 2 tuplas b res = tamanhoesultado / f res - b res = 00 / 2 = blocos 20

21 Tamanho de Buffer Influencia o custo quanto maior o número de buffers (n buf ) para blocos, melhor! Exemplos de custos de produtos se n buf >= (b + b + b res ) custo = b + b (não é preciso o resultado) se n buf é capaz de manter e, mas apenas bloco p/ o resultado custo = b + b + (b res ) Exemplo Med(CM, nome,...) Cons(CM, codp,...) b Med = 0; b Cons = 20; n buf = Dado Med X θ = σ Med.CM = Cons.CM Cons, temos: b res = blocos um bloco do resultado pode ficar na memória - Custo do laço aninhado (s/ considerar buffers) custo = b Med +b Med *b Cons +(b res ) = 0+0*20+ = 22 - Custo do laço aninhado (considerando buffers p/ Med, buffer p/ Cons e buffer para o resultado) - melhor manter em memória + blocos da relação menor custo = b Med + b Med / *b Cons +(b res ) = 0+*20+ = 0 reduz em / o número de acessos a blocos da tabela Cons 2

22 Exercício Dado Pac(codp, nome, idade, cidade, doença) e Cons(CM, codp, data, hora) e as seguintes estimativas: n Pac = 00 tuplas; t Pac = 0 bytes; t Pac (codp) = bytes; t Pac (nome) = bytes; t Pac (cidade) = bytes; n Cons = 000 tuplas; t Cons = 20 bytes; t Cons (CM) = bytes; t Cons (data) = 0 bytes; V Cons (data) = 0; V Cons (codp) = 00; V Cons (CM) = 200; um índice primário árvore-b para codp (I) em Pac com N = 0 e f I = 0; um índice secundário hash para codp (I2) em Cons; um índice secundário hash para CM (I) em Cons; Pac está ordenada pelo codp; Cons está ordenada pela data; bloco = kb e n buf = Dada a seguinte árvore algébrica de consulta: π codp, nome, cidade, CM, data X θ = σ Pac.codp = Cons.codp σ CM = 000 data = /0/0 Pac Cons Estime custos e o tamanho do resultado desta consulta. Produtos Complexos - Custo Dada uma operação produtória complexa conjuntiva X θ = σ c c2... cn estima-se o custo de cada condição c i X θ = σ ci escolhe-se a condição c i de menor custo para ser implementada as demais condições c, c 2,..., c i-, c i+,..., c n são verificadas a medida que as tuplas de X θ = σ ci são geradas 22

23 Produtos Complexos - Custo Dada uma operação produtória complexa disjuntiva X θ = σ c c2... cn, tem-se as seguintes alternativas aplica-se o algoritmo de laço aninhado mais simples e independente de condição de junção aplica-se ( X θ = σ c ) ( X θ = σ c2 )... ( X θ = σ cn ) custo total é a soma dos menores custos de cada junção individual Processamento de Projeções (π) Custo (na teoria) de π a, a2,..., an () custo = () varredura de + (2) eliminação de duplicatas custo de () = b (gera b es blocos de resultado) custo de (2) = custo de classificar o resultado pelos atributos da projeção = 2 * b es (log n buf (b es / n buf ) + ) tuplas iguais estarão adjacentes e apenas uma delas é mantida (deve-se ainda varrer o resultado ordenado) custo = b + 2 * b es (log n buf (b es / n buf ) + ) + b es Custo (na prática) de π a, a2,..., an () custo = b QL não faz eliminação de duplicatas 2

24 Processamento de Projeções (π) Tamanho de π a, a2,..., an () (na prática) tamanho = n * (t (a ) t (a n )) Na teoria, é difícil estimar o tamanho do resultado pois é difícil estimar quantas duplicatas serão eliminadas o que é possível estimar? se a projeção é apenas da chave primária (pk()) tamanho = n * t (pk()) se a projeção é de um único atributo a i tamanho = V (a i ) * t (a i ) Processamento de Operações de Conjunto (, e ) Aplica-se uma estratégia merge-junção () classificação de e facilita a verificação de tuplas iguais em e (2) varredura de e para obtenção do resultado custo (pior caso) = 2 * b (log n buf (b / n buf ) + ) + 2 * b (log n buf (b / n buf ) + ) + b + b 2

25 Processamento de Operações de Conjunto (, e ) Estimativas de tamanho pior caso tamanho ( ) = n + n tamanho ( ) = n tamanho ( ) = MIN(n, n ) melhor caso tamanho ( ) = MAX(n, n ) tamanho ( ) = 0 tamanho ( ) = 0 caso médio média aritmética do melhor e pior casos Funções de Agregação e Group By Função de agregação (count, max, sum,...) custo da varredura da relação = b tamanho = lenght (int ou float) Group By + Função de Agregação processamento: ordenação de pelos atributos de agrupamento + varredura de ordenada para definir grupos e aplicar função custo = 2 * b (log n buf (b / n buf ) + ) + b tamanho de group by a,..., a n número de grupos * (t (a ) t (a n )) + lenght (int ou float) 2

26 Índice Temporário Um índice temporário pode ser criado para o processamento de uma operação algébrica op x Objetivo gerar um custo menor que outras alternativas de processamento de op x este custo envolve total ou parcial dos blocos do índice no disco acesso a ele durante o processamento de op x estes custos devem ser estimados antes da criação do índice, para decidir por criá-lo ou não Índice Temporário - Motivação Processamento da junção A: laço aninhado custo = b + b * b = + * = 0 mil acessos A: merge-junção (n buf = ) custo = ordenação de + ordenação de + b + b = = 2 mil acessos e se houvesse um índice Ix sobre o resultado de? Poderíamos estimar A2: laço aninhado indexado custo = b + n s * (h Ix + ) se Ix tiver h Ix <, A2 será a alternativa de menor custo! Exemplo: h Ix = 2: custo = + 0 * (2+) = mil acessos n =.000 b = 000 π r,..., rn n = b =.000 π s,..., sm σ c 26

27 Índice Temporário - Exemplo Avaliando custo de criação de índice árvore-b sobre o resultado de supondo que o atributo de junção em é chave, deve-se indexar.000 dados supondo que se consegue um máximo de f I = nodos, com N = 0 valores, temos: nível 0 indexa 0 valores nível indexa x0 = 2.0 valores nível 2 indexa xx0 = 0.00 valores (máximo níveis na árvore-b) se f I =, o primeiro nível ( nodo) e o segundo nível ( nodos) da árvore podem ficar em um bloco e os restantes em outros blocos. Logo, teremos no máximo 2 acessos (h I = 2)! Vale a pena criar o índice! custo total de A2 = mil + do índice custo do índice =.000 valores / N = 00 nodos / f I = de 6 blocos de índice (pior caso o índice não cabe na memória) n =.000 b = 000 π r,..., rn n = b =.000 π s,..., sm σ c Materialização X Pipeline Materialização cada operação da álgebra é materializada em uma relação temporária (se necessário) e utilizada como entrada para a próxima operação situação default no processamento de consultas Pipeline uma seqüência de operações algébricas é executada em um único passo cada tupla gerada por uma operação é passada para a operação seguinte cada tupla passa por um canal (pipe) de operações somente o resultado ao final do pipeline é materializado (se necessário) 2

28 Materialização X Pipeline Materialização Definição de Pipelines π s,..., sm π rxs,...,rxsj pipeline 2 π s,..., sm π s,..., sm π r,..., rn σ c c2 π r,..., rn σ c c2 pipeline Pipeline de Operações + : evita a materialização de todos os resultados intermediários no processamento de uma consulta - : resultado não é passado de forma completa para uma próxima operação dentro do pipeline algoritmos de processamento das operações algébricas deve ser modificados para invocar outras operações para cada tupla gerada algoritmos dinâmicos algumas alternativas não podem ser estimadas exemplos: merge-junção; operações de conjunto exigem um resultado completo e ordenado para processar 2

29 Exemplo: um Produto sem Pipeline ) custo σ (pior caso) = acessos (não é preciso resultado) 2) custo π = 0 (tudo em memória) custo resultado = acesso (reserva apenas buffer para os dados que vêm de ) ) custo π = acessos custo resultado = 2 acessos (reserva apenas buffer para os dados que vêm de ) ) custo (pior caso laço aninhado) nπ = 200 bπ = b X = π r,..., rn σ c nσ = 0 bσ = 2 n = 200 b = = (bπ - ) + bπ * bπ = + 2* = acessos custo resultado = b x = acessos π s,..., sm nπ = 0 bπ = 2 n buf = n = 0 b = CUTO TOTAL = = 2 acessos Produto dentro de um Pipeline o produto vai recebendo uma a uma as tuplas filtradas de as tuplas de não são recebidas ordenadas pelo atributo de junção não dá para usar merge-junção custo (pior caso - laço aninhado): = b + nπ * bπ = + 0 * = + = acessos custo π = acessos custo resultado = 2 acessos (reserva apenas buffer para os dados que vêm de ) nπ = 200 bπ = b X = π s,..., sm nπ = 0 bπ = 2 π r,..., rn σ c nσ = 0 bσ = 2 n = 200 b = n = 0 b = n buf = CUTO TOTAL = ++2 = 6 acessos 2

30 Uso mais Comum de Pipelines Em uma seqüência de operações que inicia em um nodo folha ou uma operação binária e termina ou no resultado da consulta ou em uma operação binária ob x, sem incluir ob x pipeline 2 π rxs,...,rxsj π s,..., sm π r,..., rn σ c c2 pipeline Uso mais Comum de Pipelines Em uma seqüência composta apenas por operações π e operações produtórias, a partir de um pipeline nodo folha ou uma operação binária ob x, incluindo ob x considera que o tamanho dos resultados intermediários das operações π são muito grandes para serem materializadas π r,..., rn mesmo assim, avaliar se o custo das operações produtórias não aumenta com o pipeline... π rxs,...,rxsj π s,..., sm σ c c2 0

31 Exercício a) qual alternativa de pipeline para a árvore ao lado possui o menor custo de pior caso? ) π 2) π ) π π r, s2 nπ x = 00 bπ x = nx = 00 b X = 2 n buf = π σ π σ π σ b) se bπ =, a resposta do item anterior é diferente? π σ π σ π σ nπ = 0 bπ = 2 σ c2 nσ = 0 bσ = 2 π r,..., rn n = 00 b = nπ = 0 bπ = 2 nσ = 0 bσ = π s,..., sm σ c n = 200 b =

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

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

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

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

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

Leia mais

Processamento 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

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento e Indexação Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento Banco de Dados são armazenados fisicamente como arquivos de registro, que em geral ficam em discos

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

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

Algoritmos para Processamento e Otimização de Consultas. Adriano Douglas Girardello Ana Paula Fredrich Tiago Alexandre Schulz Sippert

Algoritmos para Processamento e Otimização de Consultas. Adriano Douglas Girardello Ana Paula Fredrich Tiago Alexandre Schulz Sippert UNIOESTE Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática Curso de Bacharelado em Informática Algoritmos para Processamento e Otimização de Consultas

Leia mais

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 Coleção de operações usadas para manipular relações Grupos de operações Operações relacionais Seleção; projeção; junção Operações de conjunto

Leia mais

Unidade 5 Armazenamento e Indexação

Unidade 5 Armazenamento e Indexação Unidade 5 Armazenamento e Indexação Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José

Leia mais

Processamento de Consultas

Processamento de Consultas Processamento de Consultas Banco de Dados: Teoria e Prática André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Setembro 2013 Picture by http://www.flickr.com/photos/fdecomite/1457493536/

Leia mais

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

Leia mais

Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear

Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear MC3305 Algoritmos e Estruturas de Dados II Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 2 Ordenação Ordenar corresponde

Leia mais

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO Geração de código Ivan Ricarte 2008 Sumário Geração de código intermediário Código de três endereços Notação pós-fixa Otimização de código Heurísticas de otimização Geração de código em linguagem simbólica

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: 1 -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Exame

Leia mais

BANCO DE DADOS aula 6 álgebra relacional -

BANCO DE DADOS aula 6 álgebra relacional - INSTITUTO DE EXATAS E TECNOLÓGICAS Curso de Ciência da Computação BANCO DE DADOS aula 6 álgebra relacional - professor: Juliano Varella de Carvalho 5.1. Álgebra Relacional relações de exemplo conta agencia

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

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

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Arquivos de registros Abstração do SGBD Pode ser criado, destruido e ter registros incluidos e excluidos nele Tb suporta a varredura Uma relacao geralmente é armazenada como um arquivo de registros Camada

Leia mais

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II Pesquisa em Memória Primária Algoritmos e Estruturas de Dados II Pesquisa em Memória Primária Pesquisa: Recuperação de informação em um grande volume de dados Informação é dividida em registros e cada

Leia mais

Dicas de Projeto Lógico Relacional

Dicas de Projeto Lógico Relacional Dicas de Projeto Lógico Relacional O que deve ser especificado? mapeamento do esquema conceitual definição das tabelas e chaves justificativas de mapeamento (se necessário) restrições de integridade (RIs)

Leia mais

Bases de Dados. Parte IX: Organização Física dos Dados

Bases de Dados. Parte IX: Organização Física dos Dados Bases de Dados Parte IX Organização Física dos Dados Unidades de Medida da Informação A unidade fundamental é o byte. byte corresponde a 8 bits e cada bit permite representar ou um 0 ou um. Kilobyte (Kbyte

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

Pesquisa: localização de um Registo num Ficheiro (para aceder ao registo: ler/alterar informação) R. P. António Viera, 23. R. Carlos Seixas, 9, 6º

Pesquisa: localização de um Registo num Ficheiro (para aceder ao registo: ler/alterar informação) R. P. António Viera, 23. R. Carlos Seixas, 9, 6º Pesquisa Pesquisa: localização de um Registo num Ficheiro (para aceder ao registo: ler/alterar informação) Ficheiro (ou tabela) Campos Nome Endereço Telefone Antunes, João A. R. P. António Viera, 23 720456

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Métodos de Pesquisa em Memória Primária

Métodos de Pesquisa em Memória Primária Algoritmos e Estrutura de Dados II Métodos de Pesquisa em Memória Primária Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Pesquisa Por pesquisa (procura ou busca) entende-se o ato

Leia mais

CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 1

CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 1 CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 1 Projeto Conceitual de BD Transformação ER/Relacional Por: Robson do Nascimento Fidalgo rdnf@cin.ufpe.br CIn/UFPE Projeto Conceitual de BD - Prof.

Leia mais

Pesquisa em Memória Primária. Prof. Jonas Potros

Pesquisa em Memória Primária. Prof. Jonas Potros Pesquisa em Memória Primária Prof. Jonas Potros Pesquisa em Memoria Primária Estudo de como recuperar informação a partir de uma grande massa de informação previamente armazenada. A informação é dividida

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Arquivos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Conceituação de arquivos Implementação do sistemas de arquivo Introdução Sistema de

Leia mais

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 1, 2 e 3) Clodis Boscarioli Agenda: Estruturas de Índices; Conceitos; Tipos de Índices: Primários; Secundários; Clustering; Multiníveis;

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

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

Bancos de Dados Paralelos. Alunos: ALLAN ROGER BELLO WILLIAN DIAS TAMAGI

Bancos de Dados Paralelos. Alunos: ALLAN ROGER BELLO WILLIAN DIAS TAMAGI Bancos de Dados Paralelos Alunos: ALLAN ROGER BELLO WILLIAN DIAS TAMAGI INTRODUÇÃO (SGBD) Sistema Gerenciador de Banco de Dados é um software que permite criar, manter e manipular bancos de dados para

Leia mais

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DML Frederico D. Bortoloti freddb@ltc.ufes.br SQL - DML Os exemplos da aula serão elaborados para o esquema de dados a seguir: Empregado(matricula, nome, endereco, salario, supervisor,

Leia mais

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (http://bidu.lab.ic.unicamp.br/~celio/metasql.php)

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (http://bidu.lab.ic.unicamp.br/~celio/metasql.php) Clínica Todos os exemplos apresentados utilizam o SGBD Postgre - open source Documentação: http://www.postgresql.org/docs (http://bidu.lab.ic.unicamp.br/~celio/metasql.php) Ambulatorios(numero, andar,

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

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 4 SUPORTE AO SISTEMA OPERACIONAL Prof. Luiz Gustavo A. Martins Sistema Operacional (S.O.) Programa responsável por: Gerenciar os recursos do computador. Controlar a execução

Leia mais

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 4) Árvores balanceadas AVL, Rubro-Negras, B-Trees Operações em árvores binárias de busca

Leia mais

ESTRUTURA INTERNA DO SISTEMA ESTRUTURA GERAL DO SGBD. Desempenho do BD ÙSatisfação do usuário. A performance do sistema depende:

ESTRUTURA INTERNA DO SISTEMA ESTRUTURA GERAL DO SGBD. Desempenho do BD ÙSatisfação do usuário. A performance do sistema depende: ESTRUTURA INTERNA DO SISTEMA ESTRUTURA GERAL DO SGBD Desempenho do BD ÙSatisfação do usuário USUÁRIO A performance do sistema depende: da eficiência das estruturas de dados utilizadas; como o sistema opera

Leia mais

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

Organização de Arquivos

Organização de Arquivos Classificação e Pesquisa de Dados Aula 2 Organização de s: s Sequenciais e s Sequenciais Indexados UFRGS INF01124 Organização de s Propósito Estudo de técnicas de armazenamento e recuperação de dados em

Leia mais

Algoritmos de pesquisa. Tabelas de dispersão/hash

Algoritmos de pesquisa. Tabelas de dispersão/hash Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor (array). Se o vetor não está ordenado, a pesquisa requer O(n) de

Leia mais

Aula 5. Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com)

Aula 5. Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com) Persistência com JDBC e JPA Aula 5 Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com) Quem é sábio procura aprender, mas os tolos estão satisfeitos com a sua própria ignorância..

Leia mais

Hashing Letícia Rodrigues Bueno

Hashing Letícia Rodrigues Bueno Hashing Letícia Rodrigues Bueno UFABC hash: Hashing (Tabelas de Dispersão): Introdução hash: Hashing (Tabelas de Dispersão): Introdução Hashing (Tabelas de Dispersão): Introdução hash: 1. fazer picadinho

Leia mais

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 4) Clodis Boscarioli Agenda: Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; Dicas Práticas. Índice em SQL Sintaxe:

Leia mais

Modelo de Dados. Modelo para organização dos dados de um BD

Modelo de Dados. Modelo para organização dos dados de um BD Modelo de Dados Modelo para organização dos dados de um BD define um conjunto de conceitos para a representação de dados exemplos: entidade, tabela, atributo,... existem modelos para diferentes níveis

Leia mais

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado Sistemas de Arquivos Sistemas Operacionais - Professor Machado 1 Armazenamento da Informação a Longo Prazo 1. Deve ser possível armazenar uma quantidade muito grande de informação 2. A informação deve

Leia mais

Busca em Memória. Secundária

Busca em Memória. Secundária UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Busca em Memória Secundária e Gomes da Costa yandre@din.uem.br 1 Busca de um item em uma massa de dados que não cabe na memória principal; Procura-se

Leia mais

4º BN Ronaldo Boscatto 08 52051-0 Marcelo Rosalem Daminello 39 52143-5

4º BN Ronaldo Boscatto 08 52051-0 Marcelo Rosalem Daminello 39 52143-5 Professor: Aparecido Disciplina: Recuperação de Informação Métodos de Otimização SQL em Banco de Dados 4º BN Ronaldo Boscatto 08 52051-0 Marcelo Rosalem Daminello 39 52143-5 INDÍCE 1. Otimização da Consulta

Leia mais

Modelo de Dados. Modelos Conceituais

Modelo de Dados. Modelos Conceituais Modelo de Dados Modelo para organização dos dados de um BD define um conjunto de conceitos para a representação de dados exemplos: entidade, tabela, atributo,... existem modelos para diferentes níveis

Leia mais

AULA 6 - Operações Espaciais

AULA 6 - Operações Espaciais 6.1 AULA 6 - Operações Espaciais Essa aula descreve as operações espaciais disponíveis no TerraView. Antes de iniciar sua descrição é necessário importar alguns dados que serão usados nos exemplos. Exercício:

Leia mais

Modelos. Comunicação com clientes

Modelos. Comunicação com clientes Material baseado nas notas de aula: Maria Luiza M. Campos IME/2005 Carlos Heuser - livro Projeto de Banco de Dados CasaNova / PUC/RJ Prof. MSc. Edilberto Silva edilms@yahoo.com Sistemas de Informação Brasília/DF

Leia mais

Bases de Dados 2008/2009

Bases de Dados 2008/2009 Instituto Superior Técnico Bases de Dados 2008/2009 Exame de 30 de Janeiro de 2009 Sem consulta Duração: 2h30 1. Considere o seguinte cenário relativo a um stand de compra e venda de carros usados, em

Leia mais

Álgebra Relacional. OBS: as operações Seleção e Projeção são operações unárias porque atuam em relações únicas.

Álgebra Relacional. OBS: as operações Seleção e Projeção são operações unárias porque atuam em relações únicas. Álgebra Relacional Álgebra Relacional é o conjunto básico de operações para o Modelo Relacional. Essas operações permitem a um usuário especificar as solicitações básicas de recuperação. O resultado de

Leia mais

Sumário. 5COP096 Teoria da Computação Aula 8 Pesquisa em Memória Primária

Sumário. 5COP096 Teoria da Computação Aula 8 Pesquisa em Memória Primária 5COP096 Teoria da Computação Aula 8 Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sumário 1) Introdução à Pesquisa em Memória Primária 2) Pesquisa Sequencial 3) Pesquisa Binária 4) Árvore

Leia mais

Pointer Jumping. odg(v) e idg(v): graus de saída e entrada do vértice v V. um vértice r tal que. O vértice r é dita raíz de T

Pointer Jumping. odg(v) e idg(v): graus de saída e entrada do vértice v V. um vértice r tal que. O vértice r é dita raíz de T Pointer Jumping T = (V,E) : árvore direcionada odg(v) e idg(v): graus de saída e entrada do vértice v V um vértice r tal que v V-{r}, odg(v) = 1, odg(r)=0 v V-{r}, um caminho de v a r O vértice r é dita

Leia mais

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Comandos para Relatórios e Formulários Laboratório de Bases de Dados SELECT SELECT FROM [ WHERE predicado ] [ GROUP BY ]

Leia mais

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho. Computação Paralela Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Desenvolvimento de Aplicações Paralelas Uma Metodologia

Leia mais

Algoritmos e Estrutura de Dados. Aula 13 Estrutura de Dados: Árvores de Pesquisa Binária Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 13 Estrutura de Dados: Árvores de Pesquisa Binária Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 13 Estrutura de Dados: Árvores de Pesquisa Binária Prof. Tiago A. E. Ferreira Introdução Uma árvore de pesquisa binária são estruturas de dados que admitem operações

Leia mais

Introdução às Bases de Dados

Introdução às Bases de Dados Introdução às Bases de Dados Chave primária Domínios Relação F# F Nome Estado Cidade F1 José 20 Braga F2 João 10 Faro F3 Luís 30 Lisboa F4 Rui 30 Setúbal Atributos Tuplas Introdução às Bases de Dados Modelo

Leia mais

Organizações Básicas de Arquivos

Organizações Básicas de Arquivos Estrtura de Dados II Organizações Básicas de Arquivos Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Introdução Armazenamento de pequeno volume de dados Distribuição simples dos

Leia mais

Infraestrutura de Hardware. Memória Virtual

Infraestrutura de Hardware. Memória Virtual Infraestrutura de Hardware Memória Virtual Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo HW? Qual é a interface

Leia mais

Banco de Dados. Prof. Dr. Rogério Galante Negri

Banco de Dados. Prof. Dr. Rogério Galante Negri Banco de Dados Prof Dr Rogério Galante Negri Tradicionalmente O armazenamento dos dados utilizava arquivos individuais, sem nenhum relacionamento Cada programa utilizava seu próprio sistema de arquivo

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SISTEMAS DE ARQUIVOS MACHADO/MAIA: CAPÍTULO 11 Prof. Pedro Luís Antonelli Anhanguera Educacional SISTEMAS DE ARQUIVOS - INTRODUÇÃO O armazenamento e a recuperação de informações é

Leia mais

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção Sistemas de Arquivos Funções de um SO Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção 2 Sistemas Operacionais Necessidade de Armazenamento Grandes quantidades

Leia mais

Arquitetura de SGBD Relacionais Métodos de Acesso Físico

Arquitetura de SGBD Relacionais Métodos de Acesso Físico Arquitetura de SGBD Relacionais Métodos de Acesso Físico 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

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II Armazenamento Secundário SCE-183 Algoritmos e Estruturas de Dados II 1 Armazenamento secundário Primeiro tipo de armazenamento secundário: papel! Cartões perfurados HDs, CD-ROM, floppy disks, memórias

Leia mais

Projeto e Implementação

Projeto e Implementação Felipe Nery Rodrigues Machado Banco de Dados Projeto e Implementação 2 Edição 4 Reimpressão São Paulo 2011 Editora Érica Ltda. 3 Projeto Sumário Capítulo 1 O Que É Projeto de Banco de Dados 15 Modelagem

Leia mais

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES ALGORITMOS DE BUSCA EM LISTAS COM ALOCAÇÃO SEQÜENCIAL Busca em Listas Lineares A operação de busca é

Leia mais

Programação Paralela e Distribuída (DCC/UFRJ)

Programação Paralela e Distribuída (DCC/UFRJ) Programação Paralela e Distribuída (DCC/UFRJ) Aula 7: Programação com memória compartilhada usando OpenMP 1, 8, 10 e 15 de abril de 2015 OpenMP (Open MultiProcessing) Projetado para sistemas de memória

Leia mais

Banco de Dados. Álgebra Relacional. Prof. Enzo Seraphim

Banco de Dados. Álgebra Relacional. Prof. Enzo Seraphim Banco de Dados Álgebra Relacional Prof. Enzo Seraphim Introdução A álgebra relacional é composta por um conjunto de operações utilizadas para manipular Relações como um todo Toda Operação Relacional é

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1 UFRJ IM - DCC Sistemas Operacionais I Unidade IV Sistema de arquivos Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1 ORGANIZAÇÃO DA UNIDADE Sistema de Arquivos Gerenciamento de E/S

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação CENTRO DE CIÊNCIAS EXATAS DEPARTAMENTO DE COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Algoritmos de Ordenação Alunos: André Ricardo Gonçalves Luiz Gustavo Andrade dos Santos Paulo Roberto Silla Profa. Linnyer Beatrys

Leia mais

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello Banco de Dados I Linguagem SQL Parte 2 Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello Introdução Como vimos, um SGBD possui duas linguagens: DDL: Linguagem de Definição de Dados. Usada

Leia mais

PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS EM GERENCIADORES DE BANCO DE DADOS RELACIONAIS

PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS EM GERENCIADORES DE BANCO DE DADOS RELACIONAIS PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ESPECIALIZAÇÃO EM ADMINISTRAÇÃO DE BANCO DE DADOS PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS EM GERENCIADORES DE BANCO

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

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

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguinte propriedade: Para todo nó da árvore, se seu valor é X, então: Os nós pertencentes

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Agenda Estrutura Básica de consultas SQL: A cláusula SELECT; A cláusula FROM; A cláusula WHERE. Operação com cadeias

Leia mais

Árvores Binárias Balanceadas

Árvores Binárias Balanceadas Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios

Leia mais

ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) (a) Seja um TAD definido por uma lista circular implementada em um vetor.

ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) (a) Seja um TAD definido por uma lista circular implementada em um vetor. PUC-Rio Departamento de Informática Período: 2015.1 Horário: 2as-feiras e 4as-feiras de 17-19 30 de março de 2015 ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) 1 a Lista de Exercícios 1. Lista (a) Seja um TAD

Leia mais

Estudo de Caso 2: Windows Vista

Estudo de Caso 2: Windows Vista Faculdades Integradas de Mineiros Curso de Sistemas de Informação Sistemas Operacionais II Estudo de Caso 2: Windows Vista Grupo 4 Helder / Wagner / Frantyeis Junho/2010 O Windows usa uma estratégia Just-In-Time

Leia mais

ALGORITMOS DE ORDENAÇÃO. Algoritmos de comparação-e-troca. Bubble Sort Merge Sort Quick Sort

ALGORITMOS DE ORDENAÇÃO. Algoritmos de comparação-e-troca. Bubble Sort Merge Sort Quick Sort ALGORITMOS DE ORDENAÇÃO ALGORITMOS DE ORDENAÇÃO Algoritmos de comparação-e-troca Bubble Sort Merge Sort Quick Sort 1 BUBBLE SORT Usa a estratégia de comparação-e-troca É constituído por várias fases Cada

Leia mais

Sistemas de Informação. Sistemas Operacionais 4º Período

Sistemas de Informação. Sistemas Operacionais 4º Período Sistemas de Informação Sistemas Operacionais 4º Período SISTEMA DE ARQUIVOS SUMÁRIO 7. SISTEMA DE ARQUIVOS: 7.1 Introdução; 7.2 s; 7.3 Diretórios; 7.4 Gerência de Espaço Livre em Disco; 7.5 Gerência de

Leia mais

Algoritmos de Busca em Tabelas

Algoritmos de Busca em Tabelas Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas estão entre os mais usados. Considere por exemplo um sistema de banco de dados. As operações de busca e recuperação dos dados

Leia mais

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de 2007. Unidade 03-002 Sistemas de Arquivos

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de 2007. Unidade 03-002 Sistemas de Arquivos Sistema de Arquivos Prof. Edwar Saliba Júnior Março de 2007 1 Objetivos Facilitar o acesso dos usuários ao conteúdo dos arquivos; Prover uma forma uniforme de manipulação de arquivos, independente dos

Leia mais

NOME SEXO CPF NASCIMENTO SALARIO

NOME SEXO CPF NASCIMENTO SALARIO Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline -- Conflito de dados paradas e adiantamentos -- Conflito de controle detecção de desvios e descarte de instruções -- Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno

Leia mais

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

11/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

11/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade IED Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional Prof.: Fernando Hadad Zaidan Unidade Álgebra Relacional 2 Leitura Obrigatória ELMASRI, R.;

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Sistema de Arquivos - II Prof. Galvez Implementação de Arquivos Arquivos são implementados através da criação, para cada arquivo no sistema, de uma estrutura de dados

Leia mais

Banco de Dados Capítulo 2: Modelo Relacional. Bach. em Ciência da Computação UFPB/CCT Cláudio Baptista, PhD baptista@dsc.ufpb.br

Banco de Dados Capítulo 2: Modelo Relacional. Bach. em Ciência da Computação UFPB/CCT Cláudio Baptista, PhD baptista@dsc.ufpb.br Banco de Dados Capítulo 2: Modelo Relacional Bach. em Ciência da Computação UFPB/CCT Cláudio Baptista, PhD baptista@dsc.ufpb.br 2.1 Histórico Modelo Relacional Foi introduzido por Codd (1970) Tornou-se

Leia mais

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Introdução Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos

Leia mais

Visão geral do sistema de armazenamento e hierarquia de memória

Visão geral do sistema de armazenamento e hierarquia de memória Visão geral do sistema de armazenamento e hierarquia de memória Conhecer os dispositivos de armazenamento por meio do conceito e dos tipos de memórias utilizadas no computador. Subsistemas de memória Memória

Leia mais

Pesquisa Sequencial e Binária

Pesquisa Sequencial e Binária Pesquisa Sequencial e Binária Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 20 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial

Leia mais