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

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

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

Transcrição

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

2 Chapter 12: Query Processing - Visão geral de processamento e otimização de perguntas - Medidas de custo de perguntas - Operações de seleção - Ordenação - Operações de junção - Outras operações - Avaliação de expressões - Paralelismo intra-query (no livro, está no capítulo 18) 108

3 Visão geral de processamento 1. Parsing e tradução 2. Otimização 3. Avaliação 109

4 Parsing e Avaliação - Parsing e tradução Traduzir a pergunta SQL para uma forma interna Traduzir depois para álgebra relacional A álgebra relacional é mais compacta, e diferencia melhor entrea as várias operações diferentes O parser verifica a sintaxe Isto é matéria para uma disciplina de Compiladores - Avaliação O query-execution engine pega num query-evaluation plan, executa o plano, e devolve o resultado O cerne da questão está em saber como fazer um bom plano de execução! A execução é simplesmente seguir esse plano (ou programa) 110

5 Otimização - Uma expressão de álgebra relacional pode ter várias equivalentes E.g., σ balance<2500 ( balance (account)) is equivalent to balance (σ balance<2500 (account)) - cada expressão pode ser avaliada usando vários algoritmos Assim, cada expressão pode ser avaliadas de muitas maneiras - Uma expressão anotada com algoritmos, especificando uma estratégia de avaliação, chama-se um evaluation-plan. E.g., usar um índice em balance para encontrar registos com saldo < 2500, Ou percorrer toda a tabela para descartar registo com saldo

6 Exemplo de plano de avaliação 112

7 Otimização - Query Optimisation: De todos os planos equivalentes, escolher aquele que tem menor custo (estimado) O custo é estimado com base em estatística e.g. nº de registos, tamanho médio de registos, etc - Vou começar por falar em Medidas de custo (para ter medidas sobre as quais avaliar os vários algoritmos e plano) Algoritmos para avaliação dos (principais) operadores da álgebra relacional Como combinar os algoritmos de operações individuais por forma a avaliar a expressão completa Como estes algoritmos e combinações podem ser paralelizados - Falarei depois em otimização de perguntas I.e., como encontrar o plano com menor custo estimado 113

8 Medidas de custo de perguntas - Tempo necessário para obter a resposta à pergunta Há vários fatores que contribuem para esse custo Acesso a disco, CPU, ou até à rede - Normalmente, o custo predominante é o de acesso a disco, e é relativamente fácil de estimar. As medidas entram com Nº de seeks Nº de blocos lidos Nº de blocos escritos * average-seek-cost * average-block-read-cost * average-block-write-cost O custo de escrita é maior que o de leitura porque - os dados são lidos depois de escritos para confirmar que tudo correu bem O custo de seek é normalmente muito maior (um ordem de grandeza) que o de transferência de blocos 114

9 Medidas de custo de perguntas (Cont.) - Por simplicidade, usamos o nº de blocos transferidos do disco e o nº de seeks como medidas de custo t T tempo de transferência de um bloco t S tempo de um seek seek Custo de transferir b blocos com S seeks b * t T + S * t S - Não se contabiliza o custo de escrita final no disco - Ignora-se custo de CPU porque tipicamente é muito menor Os sistemas reais por vezes entram em conta com o custo de CPU, mas tem pouca influência - A avaliação dos custos de um algoritmos é semelhante ao que se faz numa disciplina de Algoritmos e Estruturas de Dados mas as medias são muito diferentes Avaliação função de seeks e transferência de blocos, em vez de ser em função de nº de passos 115

10 Operação de seleção (recall) - Notação: σ p (r) - p é o predicado de seleção - Definido como: σ p (r) = {t t r and p(t)} onde p é uma fórmula de cálculo proposicional com termos ligados por: (and), (or), (not) Cada termo tem a forma: <attribute> onde op é um de: =,, >,. <. - Exemplo de seleção: σ branch-name= Perryridge (account) op <attribute> or <constant> - Para outros operadores, consultar documentação de uma cadeira introdutória de Bases de Dados 116

11 Algoritmos para seleção - File scan Para localizar registos de uma tabela que obedecem a uma condição - Algoritmos A1 (linear search). Percorrer todos os registos e verificar um a um se obedecem à condição Custo estimado = b r block transfers + 1 seek b r é o nº de blocos da relação r Se a condição for de igualdade sobre uma chave candidata, pode-se parar quando se encontra Custo médio = (b r /2) block transfers + 1 seek Este algoritmo pode sempre ser usado, independentemente de: condição de seleção, ou ordenação dos registos, ou disponibilidade de índices 117

12 Algoritmos para seleção (Cont.) - A2 (binary search). Só é aplicável quando se trata de uma condição de igualdade sobre o atributo de ordenação do ficheiro Assume que os blocos estão contíguos Custo estimado (nº de blocos a ler): Custo para localizar o 1º registo com busca binária - log 2 (b r ) * (t T + t S ) Se houver vários registo que satisfaçam a condição Adicionar custo de transferência do nº de blocos que contêm registo com o mesmo valor - veremos à frente como estimar este custo Se b r não for muito grande, então o mais certo é não valer a pena Note que t S é várias vezes maior t T São necessárias estimativas do tamanho (nº de blocos) da relação, para ver se vale ou não a pena 118

13 Seleção usando índices - Index scan A condição de seleção tem que ser sobre o(s) atributo(s) do índice - A3 (primary index on candidate key, equality). vai buscar um único registo que satisfaz uma condição de igualdade Custo = (h i + 1) * (t T + t S ) onde h i é a altura do índice - Relembre-se que numa B+-tree a altura é log n/2 (K), onde n é o nº de entradas por nó e K é o nº de valores diferentes. E.g. para relação r com valores diferente, e com 100 entradas por nó, h i = 4 A não ser que a tabela seja mesmo muito pequena, este algoritmo, quando aplicável, vale sempre a pena 119

14 Seleção usando índices (cont) - A4 (primary index on non-key, equality) Vai buscar vários Os registos estão em blocos seguidos Seja b = nº de blocos com registo que obedecem à condição Custo = h i * (t T + t S ) + t S + t T * b - A5 (equality on search-key of secondary index). Se a search-key for chave Custo = (h i + 1) * (t T + t S ) Se não for os n registos podem estar em blocos diferentes Custo = (h i + n) * (t T + t S ) - Se n for grande, este custo pode ser muito grande! Note que multiplica pelo nº de seeks 120

15 Seleções com comparações - Podem-se implementar seleções da forma σ A V (r) ou σ A V (r) usando um scan linear ou binário, como visto antes ou usando índices da seguinte forma: - A6 (primary index, comparison). Para σ A V (r) usar o índice para encontrar o 1º registo v e percorra a tabela a partir daí Para σ A V (r) simplesmente percorra a tabela até que > v; - neste caso, o índice é irrelevante - A7 (secondary index, comparison). Para σ A V (r) usar o índice para encontrar o 1º registo v e percorrer o índice sequencialmente a partir daí. Para σ A V (r) percorra as folhas do índice e siga os apontadores para os registos, até que o registo seja > v Em ambos os casos - tem que se ir buscar registo a registo (com um seek por registo) - Um linear file scan é provavelmente muito melhor!!!! 121

16 Seleções mais complexas - Conjunção: σ θ1 θ2... θn (r) - A8 (conjunctive selection using one index). Selecionar uma condição θ i e usar o algoritmo A1 a A7 que tiver menor custo para σ θi (r). Testar as outras condições em memória (o custo é o apenas a condição escolhida) Neste caso a escolha da condição é crucial! Há que estimar qual a melhor - A9 (conjunctive selection using multiple-key index). Usar uma combinação apropriada de índices sobre múltiplos atributos, se disponível - A10 (conjunctive selection by intersection of identifiers). Usar o índice para cada condição, e interceptar os vários apontadores Ir buscar apenas os registo do resultado da interceção 122

17 Seleções mais complexas - Disjunção:σ θ1 θ2... θn (r). - A11 (disjunctive selection by union of identifiers). Só é aplicável se os atributos de todas as condições tiverem índice. Caso contrário, usar linear scan. Ir buscar apontadores de cada um, e fazer a união. No fim, ir buscar registos - Negação: σ θ (r) Use linear scan Pode usar índice, se forem poucos os registos que satisfazem θ, e há um índice aplicável a θ 123

18 Ordenação - Os algoritmos de ordenação são importantes em processamento de perguntas, pelo menos porque: A própria pergunta pode requerer ordenação (order by clause) Alguns algoritmos (de projeção, junção, agregações, operações de conjuntos) precisam de ordenação prévia das relações - Para ordenar uma relação: Pode-se fazer um índice sobre o atributo pelo qual se quer ordenar, e usar para ler a relação de forma ordenada Isto não ordena a relação fisicamente Pode requerer um seek por registo Para relações que cabem em memória, carregar a relação toda e depois usar um bom algoritmos de ordenação dos que conhece (e.g. quicksort). Se não couber em memória, usar algoritmos específicos que tenham em conta as medidas de custo de acesso em bases de dados (seeks e transferências de blocos) 124

19 External Sort-Merge - Algoritmo de ordenação a ser usado apenas se a relação não couber em memória Seja M a dimensão da memória (em blocos). 1. Criar runs ordenados. Inicialmente i = 0 Repetir até ao fim da relação: (a) Ler M blocos para a memória (b) Ordenar cada um desses blocos (com o seu algoritmo favorito de ordenação) (c) Escrever o run ordenado R i ; incrementar i. Seja N o valor final de i 2. Merge the runs (próximo slide).. 125

20 External Sort-Merge (Cont.) 2. Merge the runs (N-way merge). Por enquanto, assuma-se N < M (onde N é o nº de runs, e M o nº de blocos que cabe em memória). 1. Ler o 1º bloco de cada run para a memória, e usar um bloco para buffer de output 2. repeat 1. Selecionar o menor registo em memória 2. Escrever esse registo no buffer de output. Se este estiver cheio, escrever o buffer em disco 3. Apagar o registo da memória. If esse bloco de memória fica vazio then ler o bloco seguinte desse run (se existir). 3. until todos os runs foram consumidos 126

21 External Sort-Merge (Cont.) - Se N M, são necessários várias passagens de merge. Em cada uma, são juntos M - 1 runs contíguos. Uma passagem reduz o nº de runs por um fator de M -1, cria runs maiores no mesmo fator E.g. Se M=11, e há 90 runs, uma passagem reduz o nº de runs para 9, cada um deles 10 vezes maior que os iniciais Repetir até que todos os runs se fundam num só. - Note que, na prática, isto só é necessário para tabelas mesmo muito grandes: Considere uma memória de 4GB e blocos de 4KB blocks (i.e. cabem 1M blocos em memória) Para ser necessário um 2º passo, teriam que haver mais do que 1M runs, i.e. 4000TB (porque cada run tem 4GB)! 127

22 Exemplo: External Sorting Using Sort-Merge 128

23 Custo de transferência Merge Sort - Análise de custo: Nº total de passos: log M 1 (b r /M). Transferências de blocos para criação de runs em cada passo 2b r Não se conta com o custo de escrita para o passo final - Isto é assim em todas as operações, pois o resultado pode nunca precisar de ser escrito em disco (vai para outra operação, ou aparece no ecrã, etc) Logo, o nº de transferências de blocos é: b r ( 2 log M 1 (b r / M) + 1) 129

24 Custo de Seeks External Merge Sort - Custo em seeks Durante a geração de runs: 1 seek para ler cada run e mais um para escrever 2 b r / M Na fase de merge Buffer size: b b (lê/escreve b b blocos de cada vez) Precisa de 2 b r / b b seeks por cada passagem - Exceto na passagem final, que só precisa de um Nº total de seek: 2 b r / M + b r / b b (2 log M 1 (b r / M) -1) 130

25 Operação de junção - Há vários algoritmos para implementar junções. Sem contar com os paralelos:: Nested-loop join Block nested-loop join Indexed nested-loop join Merge-join Hash-join - Tal como para a seleção, a escolha do melhor algoritmo em cada caso depende de estimativas - Os exemplo nos slides a seguir assume: Nº de registo em customer: 10,000 depositor: 5000 Nº de blocos em customer: 400 depositor:

26 Nested-Loop Join - É o algoritmo mais simples, mas que pode ser sempre usado 8como o linear scan para a seleção) - Para calcular a junção r θ s for each tuple t r in r do begin for each tuple t s in s do begin test pair (t r,t s ) to see if they satisfy the join condition θ if they do, add t r t s to the result. end end - r é chamada a outer relation e s a inner relation da junção - Muito caro em geral, pois exige que se examinem todos os pares de registos das duas relações 132

27 Nested-Loop Join (Cont.) - No pior caso, e se a memória só comportar um bloco de cada relação custo estimado é de n r b s + b r transferências, mais n r + b r seeks - Em geral, é muito melhor que a menor relação seja a outer O nº de transferências é multiplicado pelo nº de blocos da relação inner O nº de seeks só depende da outer - No entanto, se a menor relações couber toda em memória, essa deve ser a inner! Nesse caso o custo é reduzido para b r + b s transferências e 2 seeks - A escolha da relação inner e da outer depende em muito do tamanho de cada relação 133

28 Exemplo de Custo de Nested-Loop Join - No pior caso com depositor como outer: = 2,000,100 transferências, = 5100 seeks com customer como outer = 1,000,400 transferências e 10,400 seeks - Se a relação menor (depositor) couber em memória, o custo será de 500 transferências e 2 seeks - Em vez de iterar sobre os registos, deve-se iterar sobre os blocos Desta forma, em vez n r b s + b r transferências, teríamos b r b s + b r - Esta é a base para o algoritmo block nested-loops (próximo slide). 134

29 Block Nested-Loop Join - Variante do nested-loop join em que cada bloco da relação inner é junto com um bloco da outer for each block B r of r do begin for each block B s of s do begin end end end end for each tuple t r in B r do begin for each tuple t s in B s do begin Check if (t r,t s ) satisfy the join condition if they do, add t r t s to the result. 135

30 Custo de Block Nested-Loop Join - Pior caso: b r b s + b r transferências e 2 * b r seeks Cada bloco da relação inner s é lido uma vez por cada bloco da outer (em vez de uma vez por cada registo da outer) - Melhor caso (quando a menor relação cabe em memória): b r + b s transferências e 2 seeks. - Podem-se fazer alguns melhoramentos pontuais: Fazer o inner loop alternadamente do princípio para o fim e do fim para o princípio (se a política de buffer replacement for LRU) Usar índice na relação inner para aceder mais rapidamente aos registos que se juntam com o registo em questão da relação outer 136

31 Indexed Nested-Loop Join - Podem usar-se índices se A junção é com condições de igualdade Há um índice no(s) atributo(s) de junção da relação inner Em alguns casos, compensa construir o índice de propósito só para fazer uma junção - Para cada registo t r da relação outer r, usar o índice de s para procurar os registos de s que satisfazem a condição de junção com t r. - Pior caso: o buffer só tem espaço para um bloco de r, e, para cada registo de r, faz-se um pesquisa no índice de s. - Custo da junção: b r (t T + t S ) + n r c onde c é o custo no índice (altura da árvore se for B+-Tree) c pode ser estimado como o custo de uma seleção de igualdade sobre o atributo de junção do s - Se houver índices para os atributos de junção quer em r quer em s, usa-se a relação com menos registos como outer 137

32 Exemplos de custos - Calcular depositor customer, com depositor como outer. - Se customer tiver um índice primário de B + -tree no atributo customername, com 20 entradas por nó. - Como customer tem tuples, a altura da árvore é 4, e são precisos 5 acesso para chegar a um registo - depositor tem registos - Para o nested loop, transferências e seeks - Com o block-nested-loop 400* = transferências e 2 * 100 = 200 seeks - Custo do index nested loop join * 5 = 25,100 transferências e seeks. Neste caso, não deve valer a pena usar o índice, pois um seek é 50 a 100 vezes superior à transferências (isto é assim porque as relações são relativamente pequenas) 138

33 Merge-Join 1. Ordenar ambas as relações pelo(s) atributo(s) de junção (se não estiverem já ordenadas, claro) 2. Juntar as relações ordenadas da seguinte forma 1. Um passo é semelhante à fase de junção do algoritmo sort-merge 2. A diferença principal está no tratamento de duplicados no atributo de junção todo o par com o mesmo valor no atributo de junção tem que ser junto 3. Algoritmo detalhado está no livro 139

34 Merge-Join (Cont.) - Só pode ser usado quando as condições de junção são igualdades - Cada bloco só é lido uma vez (assumindo que todos os registos para um qualquer valor do atributo de junção cabem em memória) - Assim, o custo da junção é (onde b b é o nº de blocos que cabem em memória): b r + b s transferências e b r / b b + b s / b b seeks mais o custo de ordenar as relações que não estiverem ordenadas - hybrid merge-join: Se uma relação estiver ordenada e a outra tiver um índice secundário de B + -tree no atributo de junção Juntar a relação ordenada com as folhas da B + -tree Ordenar o resultado nos endereços dos registos da relação não ordenada Percorrer a relação que não está ordenada para substituir os endereços pelos registos O scan sequencial é mais rápido que o acesso aleatório 140

35 Hash-Join - Também só é aplicável para junções com igualdade - Usa-se uma função de h is para particionar os registos de ambas as relações - h mapeia valores de JoinAttrs para {0, 1,..., n}, where JoinAttrs são os atributos de junção em r e s r 0, r 1,..., r n denota as partições na relação r Cada registo t r r vai para r i onde i = h(t r [JoinAttrs]). s 0, s 1..., s n denota as partições de s Cada registo t s s is vai para s i, onde i = h(t s [JoinAttrs]). - Ideia de base: partir as relações desta forma Fazer a junção de cada r i só com s i Não é necessário considerar diferentes partições pois um par de registo de r e de s só satisfazem a condição de junção se estiverem na mesma partição (a função de hash é a mesma nos dois) 141

36 Hash-Join (Cont.) 142

37 Hash-Join Algorithm O hash-join de r e s é calculado da seguinte forma: 1. Particionar s usando uma função de hash h. Nesta fase, reserva-se um bloco de memória como buffer de output para cada partição 2. Particionar r da mesma forma, e com a mesma função h 3. Para cada i: (a)carregar s i em memória e fazer um hash no atributo de junção, usando uma função de hash diferente de h (b)ler do disco os registos de r i um a um. Para cada registo t r procurar o registo t s de s i que se junta, com este novo hash s chama-se o build input e r chama-se o probe input. 143

38 Hash-Join algorithm (Cont.) - O nº de partições n da função h é escolhido por forma a que s i caiba sempre em memória. Tipicamente n é b s /M * f onde f é um fudge factor, tipicamente à volta de 1.2, para evitar overflows As partições da probe r i não precisam de caber em memória - Recursive partitioning é necessário se o nº de partições n for maior que o nº de blocos M da memória Em vez de particionar s em n buckets, usar M 1 partições Particionar as M 1 partições com uma outra função de hash Raramente é necessário: e.g., o recursive partitioning não é necessário para relações até 1TB desde que a memória tenha no mínimo of 2GB, com blocos de 4KB. Por isso não detalharei mais (se quiserem, está no livro) 144

39 Custo do Hash-Join - O custo do hash join é (onde n h é o nº de partições) 3(b r + b s ) +4 n h transferências e 2( b r / b b + b s / b b ) +2 n h seeks - Se o build couber em memória, não é necessário partir o s e Custo estimado vai para b r + b s. - Para o exemplo que temos vistos, assumindo que a memória tem 20 blocos - b depositor = 100 and b customer = depositor é usado como build. particiona-se em 5 partições, com 20 blocos cada - Igualmente, particiona-se customer em 5 partições, cada uma com 80 blocos. - Logo, o custo estimado é: 3( ) +4*5= 1520 transferências e 2( 100/ /3 ) +2*5= 346 seeks - O melhor que tínhamos até agora era transferências e 200 seeks (para block nested loop) ou 25,100 transferências e seeks (para index nested loop) 145

40 Complex Joins - Junção com conjunção de condições: r θ1 θ 2... θ n s Ou se usa nested-loop ou Começa por se calcular o resultado de uma condição r O resultado final tem os registo que além disso verificam as outras condições θi s - Junção com disjunção θ 1... θ i 1 θ i θ n r θ1 θ2... θn s Ou se usa nested-loop ou Calcula-se a união dos registo do resultado da computação de cada condição individual r θ i s: (r θ1 s) (r θ2 s)... (r θn s) 146

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

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

Leia mais

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

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join Bases de Dados Algoritmos para junção Algoritmos para junções Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join A escolha

Leia mais

Dois parâmetros essenciais t T tempo de transferência de um bloco. assume-se igual para operações de leitura e escrita

Dois parâmetros essenciais t T tempo de transferência de um bloco. assume-se igual para operações de leitura e escrita Bases de Dados Algoritmos de processamento Custo de operação Dois parâmetros essenciais t T tempo de transferência de um bloco assume-se igual para operações de leitura e escrita t S tempo de localização

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

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

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

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

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

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

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

Leia mais

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

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

Leia mais

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

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

Administração e Optimização de BDs

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

Leia mais

Bases de Dados. Remoções em árvores B + Remoção em árvores B +

Bases de Dados. Remoções em árvores B + Remoção em árvores B + Bases de Dados Remoções em árvores B + Remoção em árvores B + Remoção procurar o registo e removê-lo do ficheiro se o apontador ou contentor ficar vazio, remover a entrada (valor, apontador) da folha se

Leia mais

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

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Número: Nome: -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Exame

Leia mais

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

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

Bases de Dados Paralelas

Bases de Dados Paralelas Bases de Dados Paralelas Introdução Paralelismo I/O Paralelismo Interquery Paralelismo Intraquery Paralelismo Intraoperação Paralelismo Interoperaçao Concepção de Sistemas Paralelos 1 Introdução As máquinas

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

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

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

Leia mais

Aula 21 Ordenação externa

Aula 21 Ordenação externa MC3305 Algoritmos e Estruturas de Dados II Aula 21 Ordenação externa Slides adaptados de Brian Cooper (Yahoo Research) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 Números de Ackermann

Leia mais

de Bases de Dados Exame 1

de Bases de Dados Exame 1 Ano lectivo 2011/2012 2 o semestre Administração e Optimização de Bases de Dados Exame 1 Regras O exame tem a duração de 2 horas. O exame é individual e com consulta. Poderá consultar o livro, slides da

Leia mais

Ordenação e Busca em Arquivos

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

Leia mais

Chapter 11: Indexing and Hashing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017

Chapter 11: Indexing and Hashing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017 Chapter 11: Indexing and Hashing José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017 36 Chapter 11: Indexing and Hashing - Conceitos de base - Índices ordenados - B + -Tree Index B-Tree Index

Leia mais

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

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

Leia mais

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

Otimização e Execução de Consultas Caso Centralizado Parse Query Bancos de Dados III Processamento de Consultas em Bancos de Dados Distribuídos Rogério Costa rogcosta@inf.puc-rio.br 1 Otimização e Execução de Consultas Caso Centralizado Parse Query Check de Semântica

Leia mais

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

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

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

Leia mais

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

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

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

BANCO DE DADOS Índices em BD Árvores B+

BANCO DE DADOS Índices em BD Árvores B+ BANCO DE DADOS Índices em BD Árvores B+ Bacharelado em Ciência da Computação IFCE - Campus Aracati - Semestre 2018.2 Prof. Érica Gallindo - erica.gallindo@ifce.edu.br Arquivos de banco de dados Um arquivo

Leia mais

Classificação Externa: Geração de Partições Classificadas

Classificação Externa: Geração de Partições Classificadas Classificação Externa: Geração de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Cenário: Arquivos Sequencias } Acesso não pode ser feito em posições aleatórias

Leia mais

Modelo Relacional. Josino Rodrigues

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

Leia mais

de Bases de Dados Exame 2

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

Leia mais

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa Algoritmos e Estruturas de Dados II Ordenação Externa II Prof. Ricardo J. G. B. Campello As análises dos métodos de ordenação tradicionais se preocupam basicamente com o tempo de execução dos algoritmos

Leia mais

Sistemas de Informação e Bases de Dados 2012/2013. Índices. Alberto Sardinha

Sistemas de Informação e Bases de Dados 2012/2013. Índices. Alberto Sardinha Sistemas de Informação e Bases de Dados 2012/2013 Índices Alberto Sardinha Sumário Índices Criação de Índices em SQL Exemplos 2012 Ins)tuto Superior Técnico 1 Bibliografia Raghu Ramakrishnan, Database

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

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os tuplos que satisfazem uma condição. exemplo: empréstimos da agência de Perryridge

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os tuplos que satisfazem uma condição. exemplo: empréstimos da agência de Perryridge Bases de Dados Álgebra Relacional Selecção (σ) Seleccionar os tuplos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge σ branch_name = Perryridge (loan) 2 1 Outros exemplos de selecção

Leia mais

Processamento Cosequencial: Ordenação Interna e Externa. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A.

Processamento Cosequencial: Ordenação Interna e Externa. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A. Processamento Cosequencial: Ordenação Interna e Externa Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A. Ciferri Ordenação em RAM Situação: arquivo cabe em RAM Etapas leitura de todos

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

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

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa.

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa. Algoritmos e Estruturas de Dados II Ordenação Externa II Profa. Debora Medeiros As análises dos métodos de ordenação tradicionais se preocupam basicamente com o tempo de execução dos algoritmos Ordem computacional

Leia mais

Organização de Arquivos

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

Leia mais

Operações Coseqüenciais. Processamento Coseqüencial. Modelo para implementação de processos coseqüenciais

Operações Coseqüenciais. Processamento Coseqüencial. Modelo para implementação de processos coseqüenciais Processamento Coseqüencial Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures Operações Coseqüenciais Envolvem o processamento coordenado (simultâneo) de duas ou mais listas de

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

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

Arquivos Sequenciais. Estruturas de Dados II Vanessa Braganholo

Arquivos Sequenciais. Estruturas de Dados II Vanessa Braganholo Arquivos Sequenciais Estruturas de Dados II Vanessa Braganholo Arquivos Sequenciais } Pq arquivos sequenciais? Relembrando } Relembrando: uma tabela ou arquivo é um conjunto de registros que possuem a

Leia mais

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Algoritmos de busca Basicamente podem ser citadas duas estratégias para procurar (ou buscar) algo em uma coleção de dados: Busca

Leia mais

Ordenação Externa. Profa. Graça Nunes

Ordenação Externa. Profa. Graça Nunes Ordenação Externa Profa. Graça Nunes Ordenação Externa Ordenar arquivos de tamanho maior que a memória interna disponível Algoritmos devem diminuir o número de acessos às unidades de memória externa Custo

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

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

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO DE ARQUIVOS GRANDES Para arquivos binários, é possível implementar o

Leia mais

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

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

Leia mais

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas Capítulo 4: SQL Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas Junções Vistas Modificação da Base

Leia mais

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge Bases de Dados Álgebra Relacional Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge σ branch_name = Perryridge (loan) 2 1 Outros exemplos de

Leia mais

Cap. 5 Indexação Baseada em Hashing

Cap. 5 Indexação Baseada em Hashing Cap. 5 Indexação Baseada em Hashing Not cahos-like, together crushed and bruised, But, as the world harmoniously confused: Where order in variety we see. -- Alexander Pope Abel J.P. Gomes Bibliography:

Leia mais

Bacharelado em Ciência da Computação UFU Disciplina GBC053 Gerência de Banco de Dados Profa. Sandra de Amo

Bacharelado em Ciência da Computação UFU Disciplina GBC053 Gerência de Banco de Dados Profa. Sandra de Amo Bacharelado em Ciência da Computação UFU Disciplina GBC053 Gerência de Banco de Dados Profa. Sandra de Amo Solução dos Exercicios Aula 26 Cálculo de Custos de Planos de Execução de Consultas R(sid,bid,day,rname)

Leia mais

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

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

Leia mais

GBC053 Gerenciamento de Banco de Dados Processamento de Consultas

GBC053 Gerenciamento de Banco de Dados Processamento de Consultas GBC053 Gerenciamento de Banco de Dados Processamento de Consultas Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/gbd UFU/FACOM/BCC UFU/FACOM/BCC GBD Página:2 ROTEIRO Introdução Técnicas

Leia mais

Ordenação de tuplos order by

Ordenação de tuplos order by Bases de Dados Elementos da linguagem SQL Ordenação de tuplos order by A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de

Leia mais

Índices. SCE-203 Algoritmos e Estruturas de Dados II

Índices. SCE-203 Algoritmos e Estruturas de Dados II Índices SCE-203 Algoritmos e Estruturas de Dados II Índice Em geral, um índice fornece mecanismos para localizar informações Índice de um livro ou catálogo de uma biblioteca Facilitam muito o trabalho

Leia mais

Pedro Ribeiro 2014/2015

Pedro Ribeiro 2014/2015 Ordenação Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Ordenação 2014/2015 1 / 35 Ordenação A ordenação é um passo inicial para muitos outros algoritmos Ex: encontrar a mediana Quando não

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

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

Leia mais

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

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

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

heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;

heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2; heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i0 && x[f]

Leia mais

Ordenação. Insertion Sort

Ordenação. Insertion Sort Sumário por trocas de vizinhos. Análise. Limites teóricos Insertion sort. Shellsort recursiva: Mergesort. Análise. Com heap binário: Heapsort. Análise. Divisão e conquista: Quicksort. Análise. Limites

Leia mais

de Bases de Dados Exame 1

de Bases de Dados Exame 1 Ano lectivo 009/0 o semestre Administração e Optimização de Bases de Dados Exame Regras O exame tem a duração de horas. O exame é individual e com consulta Só poderá abandonar a sala ao fim de hora, mediante

Leia mais

Algoritmos de ordenação Quicksort

Algoritmos de ordenação Quicksort Algoritmos de ordenação Quicksort Sumário Introdução Descrição do quicksort Desempenho do quicksort Pior caso Melhor caso Particionamento balanceado Versão aleatória do quicksort Análise do quicksort Pior

Leia mais

Ordenação em Tempo Linear. Leitura: Cormen Capítulo 8

Ordenação em Tempo Linear. Leitura: Cormen Capítulo 8 Ordenação em Tempo Linear Leitura: Cormen Capítulo 8 Revisão Insertion sort: Vantagens Fácil de implementar Rápido em entradas com menos de 50 elementos. Rápido em entradas aproximadamente ordenadas. Desvantagens

Leia mais

Algoritmos e Estruturas de Dados LEE 2013/2014. popular devido à facilidade de implementação e eficiência

Algoritmos e Estruturas de Dados LEE 2013/2014. popular devido à facilidade de implementação e eficiência Algoritmos e Estruturas de Dados LEE 2013/2014 Algoritmos de Ordenação Parte II Quicksort [1] Provavelmente o algoritmo mais usado inventado nos anos 60 muito estudado e analisado desempenho bem conhecido

Leia mais

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa Ordenação Externa Ordenação Externa Estrutura 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

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

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

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

Leia mais

Bubble Sort. Tempo total O(n 2 )

Bubble Sort. Tempo total O(n 2 ) Bubble Sort Considere uma seqüência de n elementos que se deseja ordenar. O método da bolha resolve esse problema através de várias passagens sobre a seqüência Não é um algoritmo eficiente, é estudado

Leia mais

B-Árvores. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados

B-Árvores. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nos artigos Bayer, R. and E. McCreight. Organization and maintenance of large ordered

Leia mais

ALGORITMOS DE ORDENAÇÃO

ALGORITMOS DE ORDENAÇÃO ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,

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

Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: Claudio Quick F. M.

Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: Claudio Quick F. M. Quick Sort Considerações Sobre Algoritmos de Ordenação Professor: Claudio F. M. Toledo 26 de Outubro de 2016 Professor: Claudio Quick F. M. Sort Toledo 26 de Outubro de 2016 1 / 14 Quicksort: Escolha do

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

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

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 Técnicas de Projeto de Algoritmos Dividir e Conquistar IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/83 Projeto de Algoritmos por Divisão

Leia mais

Métodos de Ordenação

Métodos de Ordenação Métodos de Ordenação Conceitos básicos sobre ordenação Ordenar corresponde ao processo de rearranjar um conjunto de objetos em uma ordem específica. Objetivo da ordenação: facilitar a recuperação posterior

Leia mais

Classificação Externa: Geração de Partições Classificadas

Classificação Externa: Geração de Partições Classificadas Classificação Externa: Geração de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Importância da Ordenação/Classificação } Vimos até agora várias operações

Leia mais

Métodos de Ordenação Parte 3

Métodos de Ordenação Parte 3 Estrutura de Dados II Métodos de Ordenação Parte 3 Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais do Prof. Robson Lins Classificação em Memória Primária

Leia mais

AED2 - Aula 11 Problema da separação e quicksort

AED2 - Aula 11 Problema da separação e quicksort AED2 - Aula 11 Problema da separação e quicksort Projeto de algoritmos por divisão e conquista Dividir: o problema é dividido em subproblemas menores do mesmo tipo. Conquistar: os subproblemas são resolvidos

Leia mais

Informática para Ciências e Engenharias 2013/14. Teórica 7

Informática para Ciências e Engenharias 2013/14. Teórica 7 Informática para Ciências e Engenharias 2013/14 Teórica 7 Na aula de hoje... Controlo de execução ciclos condicionais while end Exemplos raiz quadrada histograma fórmula química while while e matrizes

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

- 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

Árvores B. Árvore B (ou melhor B+)

Árvores B. Árvore B (ou melhor B+) Motivação: pesquisa em disco Árvores B Tempo de acesso a disco determinante nas operações Com disco de 10 ms de tempo de acesso: 100 acessos por segundo em máquina de 25 MIPS, 1 acesso custa tanto como

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

Métodos de Ordenação Parte I

Métodos de Ordenação Parte I Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar

Leia mais

Ordenação Externa (Merge Sort)

Ordenação Externa (Merge Sort) Ordenação Externa (Merge Sort) Referências: A.V.Aho, J.E.Hopcroft, J.D.Ullman, Data Structures and Algorithms, Cap. 11. Problema: ordenar dados organizados como arquivos, ou de forma mais geral, ordenar

Leia mais

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Introdução. Leandro C. Cintra Maria Cristina F. de Oliveira. Solução?

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Introdução. Leandro C. Cintra Maria Cristina F. de Oliveira. Solução? Algoritmos e Estruturas de Dados II Prof. Ricardo J. G. B. Campello Árvores B Parte I Introdução Adaptado e Estendido dos Originais de: Leandro C. Cintra Maria Cristina F. de Oliveira A Invenção da B-Tree

Leia mais

Estruturas de Dados Algoritmos de Ordenação

Estruturas de Dados Algoritmos de Ordenação Estruturas de Dados Prof. Eduardo Alchieri (introdução) Considere uma sequência arbitrária S = {s1, s2, s3,...sn} composta por n 0 elementos retirados do conjunto universo U O objetivo da ordenação é arrumar

Leia mais

Radix Sorting. Várias aplicações têm chaves que são inteiros, definidos dentro de um intervalo

Radix Sorting. Várias aplicações têm chaves que são inteiros, definidos dentro de um intervalo Radix Sorting Os registros a serem ordenados podem ter chaves bastante complexas, como por exemplo sequências de caracteres (lista telefônica) o Ordenação via comparação de chaves Várias aplicações têm

Leia mais