AULA 21 Profa. Sandra de Amo BCC - UFU

Slides:



Advertisements
Apresentações semelhantes
AULA 8 Profa. Sandra de Amo GBC053 – BCC
Advertisements

Estruturas de Dados Arvores
Hash Extensivel Rápido acesso a dados com um custo mínimo de processamento (overhead cost).
Algoritmos BUSCA E INSERÇÃO
Indice estruturado por Hash
Cálculo de Custos de Operações I/O – Arquivos Ordenados
Bulk Loading – Algoritmo AULA 12 - COMPLEMENTO Profa. Sandra de Amo GBC053 – BCC Sandra de Amo.
RESUMO DA AULA 5 Profa. Sandra de Amo GBC053 – BCC
Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso
Indices estruturados por B-TREE
Organização de Arquivos Cálculo de Custos de I/O Arquivos Hashed AULA 7 – Parte I Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Projeção eliminando Duplicatas
Organização de Arquivos Introdução
Algoritmos para Seleção Simples AULA 16 Profa. Sandra de Amo GBC053 – BCC
Estimativas de Custos: Arquivos Heap, Ordenados e Hashed Indices e Métodos de Acesso AULA 13 Profa. Sandra de Amo Programa de Pós-graduação em Ciência.
Organização de Arquivos Tipos de Indices Cálculo de Custos de I/O
Algoritmos para Seleção Simples
AULA 23 Profa. Sandra de Amo GBC053 – BCC
Gerenciamento de Arquivos, Páginas e Registros
Introdução aos Métodos de Acesso AULA 7 – Parte II Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
B-tree Gerenciamento de Duplicatas Bulk Loading AULA 12 Profa. Sandra de Amo GBC053 – BCC
Método de Acesso Dinâmico - B-Tree AULA 14 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
Método de Acesso Dinâmico: B-Tree - Deleção Chaves de busca sem duplicatas AULA 9 Profa. Sandra de Amo GBC053 – BCC
Revisão Prova 2 Métodos de Acesso: BTree e Hash AULA 20 Profa. Sandra de Amo GBC053 – BCC
Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n)

David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária – Árvores de Busca
David Menotti Estruturas de Dados I DECOM – UFOP
André Lopes Pereira Luiz Carlos Barboza Júnior
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Classificação e Pesquisa de Dados
Indexação e Hashing Muitas consultas referenciam apenas uma pequena porção dos registros em uma tabela. Portanto necessitamos ser capaz de localizar estes.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Listas com Ponteiros Listas encadeadas Listas circulares.
CAP-223 Árvore através de uma Árvore Binária A BCDE FGHIJK A BC D E FGHIJK.
Indexação de Arquivos Página de rosto.
Pesquisa em Memória Primária
Árvores binárias de pesquisa com balanceamento
INF70 – Gerenciamento de Banco de Dados 2 Índices baseados em Hash Ilmério Reis da Silva UFU/FACOM/BCC.
Arquivos Estruturados por Ordenação– Custos I/O AULA 5 Profa. Sandra de Amo GBC053 – BCC.
Indices: Estruturas Auxiliares para Otimizar Acesso aos Dados
Algorítmos e estrutura de dados III
Algorítmos e estrutura de dados III
Revisão Prova 2 Métodos de Acesso – Parte 2 AULA 21 Profa. Sandra de Amo GBC053 – BCC.
Universidade Católica de Pelotas Mestrado em Ciência da Computação
Operações de Inserção e Remoção – BTree Resumo
Arquivos Estruturados por Hashing– Custos I/O
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
Algoritmos para Operação de Junção Loops Aninhados AULA 17 Profa. Sandra de Amo GBC053 – BCC.
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto.
Árvores B Obs: Uma árvore 2-3 é uma árvore B de ordem 1.
SISTEMAS DE INFORMAÇÃO
Algoritmos para Operações Binárias entre blocos SQL AULA 19 – Parte I Profa. Sandra de Amo GBC053 – BCC.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Prof. Hilton Cardoso Marins Junior
Árvores Rubro-Negras São árvores balanceadas segundo um critério ligeiramente diferente do usado em árvores AVL A todos os nós é associada uma cor que.
Algoritmos de Junção – IndexNL e Sort Merge Join AULA 19 Profa. Sandra de Amo GBC053 – BCC.
Algoritmos para o operador de Projeção AULA 19 – Parte II Profa. Sandra de Amo GBC053 – BCC.
INF70 – Gerenciamento de Banco de Dados 2 Índices baseados em Árvores Ilmério Reis da Silva UFU/FACOM/BCC.
B-tree Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB Multidimensionais quaternárias k-d Pesquisa Lexicográfica tries multivia tries.
Árvores B Motivação: pesquisa em disco
PostgreSQL Índices Nuno Campos N.º Nuno Campos - N.º Índice Introdução Tipos de Índices – B-Tree – R-Tree – Hash – GiST Classes de Operadores.
Algoritmos para Seleção AULA 23 Profa. Sandra de Amo GBC053 – BCC.
Árvores Balanceadas (AVL)
BANCO DE DADOS II Árvore de Dados. FATEC - GUARATINGUETÁ Professor: Eduardo Barbosa Adiel Lemos Ana Renata Bruno Michael Jéssica Fernanda Layla Monique.
INE5408 Estruturas de Dados Árvores B - Estrutura e peculiaridades -Algoritmos de inserção, pesquisa e deleção.
UNIVERSIDADE FEDERAL DE MINAS GERAIS Árvores Cristiano Arbex Valle Vinicius Fernandes dos Santos
Transcrição da apresentação:

AULA 21 Profa. Sandra de Amo BCC - UFU Revisão Prova 2 Métodos de Acesso Ordenação Externa Algoritmos de Junção AULA 21 Profa. Sandra de Amo BCC - UFU

Métodos de Acesso baseados em Arvore, onde cada nível é composto por arquivos (de indice) ORDENADOS

Método de Acesso – ISAM Organização do índice em árvore Páginas auxiliares que permitem chegar rapidamente a uma folha Páginas do arquivo de índice Páginas do Arquivo de Dados 3

Exemplo: Busca de um registro de dados Busca da chave 27 Raiz 40 51 63 20 33 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* 4

Inserção de um registro Raiz 40 51 63 20 33 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* 23* 48* 41* Página de Overflow 42* 5

Deleção de um registro Deleção de 42*, 51*, 97* Procura 51* Raiz Nunca são alteradas !! 40 51 63 20 33 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* 23* 48* 41* Pagina de Overflow 42* 6

Comparação de Custos Custo de uma busca A = a Arquivo de 1 000 000 registros 10 registros por página de dados : total de páginas = 100 000 100 ponteiros em cada página de índice (99 entradas (chave,pt) + ponteiro P0) Arquivo não ordenado por A Scan = 1000 000/10 = 100000 I/0 Arquivo ordenado por A Busca binária = log2 100000 = 17 I/0 Arquivo estruturado usando método ISAM Arquivo de indice usa alternativa 1 (registro do indice = registro de dados) Custo = log100 100000 = entre 2 e 3 I/0, pois 1002 < 100000 < 1003 7

Vantagens de ISAM ISAM é estático : inserções e deleções afetam somente as folhas. Nós internos não sofrem modificações após uma inserção ou deleção de registros do indice. Logo, páginas internas podem ser manipuladas por outras transações sem problemas de bloqueios, já que nunca são alteradas. 8

Desvantagens de ISAM Possibilidade de cadeias de páginas overflow Páginas overflow geralmente não são ordenadas, a fim de agilizar inserções. Para aliviar este problema : Árvore é criada com 20% de cada folha livre Entretanto, uma vez preenchido este espaço, cadeias de overflow só podem ser eliminadas através de uma total reorganização da estrutura. 9

Inserção de Registros nas Folhas Caso a ocupação não fique acima da máxima : insere, não altera nada nos niveis superiores Caso a ocupação fique acima da máxima Tenta distribuição com vizinho à direita. Caso não der: tenta distribuição com vizinho à esquerda Caso não der: Divide folha com nó inserido, produzindo dois nós N1 e N2. N2 precisa de um ponteiro vindo do nó acima !

Inserção: distribuição nas folhas Não há aumento no número de folhas Não há aumento de ponteiros vindo do nivel superior Não há aumento de registros no nó pai Não há modificações propagadas para os níveis superiores ao nível do nó pai. Só há modificação de registro R no nó pai: R = registro do lado esquerdo do ponteiro apontando para a folha da direita.

BTREE – Método de Acesso Dinâmico

Inserção: Divisão de 1 folha em 2 folhas F1 e F2 Número de folhas cresce de um. Número de ponteiros saindo do nó pai cresce de um. Número de registros no nó pai deve crescer de um. Caso nó pai não tenha ocupação máxima antes da alteração: Primeiro registro de F2 sobe para nó pai em posição adequada. Ponteiro à esquerda do novo nó deve apontar para F1 Ponteiro à direita do novo nó deve apontar para F2

Inserção: Divisão de 1 folha em 2 folhas F1 e F2 Caso nó pai tenha ocupação máxima antes da alteração: Subida de registro para o nó pai causa overflow no nó. Nó pai fica com 2d+1 elementos após “subida” Solução simples Divide nó pai em dois nós N1 e N2 com d elementos cada (ocupação mínima) Elemento do meio M sobe para nó pai do pai. Ponteiros do nó pai para seus filhos não são alterados ! Ponteiros à esquerda e à direita de M apontam para N1 e N2 respectivamente

Remoção de Registros nas Folhas Caso a ocupação não fique abaixo da mínima : remove, não altera nada nos niveis superiores Caso a ocupação fique abaixo da minima Tenta distribuição com vizinho à direita. Caso não der: tenta distribuição com vizinho à esquerda Caso não der: Junta folha com nó removido com à direita ou, se não der, com a esquerda.

Remoção: distribuição nas folhas Não há diminuição no número de folhas Não há diminuição de ponteiros vindo do nivel superior Não há diminuição de registros no nó pai Não há modificações propagadas para os níveis superiores ao nível do nó pai. Só há modificação de registro R no nó pai: R = registro do lado esquerdo do ponteiro apontando para a folha da direita envolvida na distribuição

Remoção: Junção de 2 folhas Número de folhas decresce de um. Número de ponteiros decresce de um. Número de registros no nó pai decresce de um. Caso nó pai não fique abaixo da ocupação minima Remove-se registro R à esquerda do ponteiro apontando para o nó do nível inferior, à direita. Caso nó pai fique abaixo da ocupação minima Tenta JUNTAR com nó irmão, à direita ou à esquerda. Caso não der para juntar (pois o resultado teria ocupação maior do que a máxima), DISTRIBUI com um dos nós irmãos (tente primeiro o da direita, se não der, tente o da esquerda).

Remoção: Junção de nós N1 e N2 em um nível intermediário I Há diminuição de nós no nível I. Porém o número K de ponteiros saindo do nível I deve continuar o mesmo que antes da junção, pois o nível abaixo (I+1) necessita de K ponteiros ! Logo, é necessário que apareça um novo registro no nível I. (1) Há diminuição de ponteiros vindo do nível I-1 (pois houve diminuição de nós no nível I). Logo, há diminuição de registros no nível I-1. (2) De (1) e (2) conclui-se que um registro do nível I-1 deve descer para o nível I Qual é este nó que desce ? Registro R à esquerda do ponteiro apontando para o nó N2 (da direita) DESCE para o novo nó juntado N1+N2. Este ponteiro da esquerda é eliminado do nível I-1 Modificação se propaga recursivamente para o nível I-1, já que houve diminuição de registros neste nível

Remoção: Distribuição de elementos entre nós N1 e N2 em um nível intermediário I Não há diminuição de nós no nível I. Não há diminuição de ponteiros vindo do nível I-1. Não há diminuição de registros no nível I-1

Entretanto, as coisas não são tão simples assim... Supondo que o último registro do nó N1 virou primeiro registro do nó N2 22 Nível I - 1 < 22 ≥ 22 Nível I ??? Nó N2 Nó N1 5 13 5 17 13 17 20 30 1 ponteiro para 2 nós ?? O ponteiro vermelho não pode ser eliminado. Logo, o preto será eliminado. O registro 17 deve sumir do nó N1! Nível I+1 1 nó para 2 ponteiros ?? ≥ 17 < 20 ≥30 20 ≤ chave < 22 22 ≤ chave < 30 É preciso mais um registro entre o 20 e o 30 para ganhar um ponteiro !

Ajuste final 22 < 17 ≥ 17 5 13 5 17 13 17 20 30 5 13 17 ≥ 13 < 17 ≥ 17 < 20 ≥30 20 ≤ chave < 22 22 ≤ chave < 30

Exercicio para entregar Você acha que o ajuste final poderia ser feito “subindo” o 20 e descendo o 22 ao invés de “subir” o 17 e descer o 22 ? Explique sua resposta ! 20 5 13 5 17 13 17 22 30 5 13 17 ? ? ? Sugestão: para onde apontariam os ponteiros à direita de 17 e à esquerda de 22 ? E o ponteiro à direita do 22 ? Reveja slides 11, 12 e 13

Exercicio: Remove 34* 21 50 17 5 13 5 18 13 20 27 30 2* 3* 5* 7* 8* 14* 16* 18* 19* 20* 21* 22* 24* 27* 29* 33* 34*