23
Revisão Prova 2 Métodos de Acesso Ordenação Externa Algoritmos de Junçã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

Embed Size (px)

Citation preview

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

Revisão Prova 2Métodos de AcessoOrdenação Externa

Algoritmos de Junção

AULA 21Profa. Sandra de Amo

BCC - UFU

Page 2: 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

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

Método de Acesso – ISAM Organização do índice em árvore

Páginasauxiliaresque permitemchegar rapidamente a uma folha

Páginas do arquivo de índice

Páginas do Arquivo de Dados

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

Exemplo: Busca de um registro de dados

40

Raiz

5120

10* 15* 20* 27* 33* 37* 46*40* 51* 55* 63* 97*

33 63

Busca da chave 27

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

Inserção de um registro

40Raiz

5120

10* 15* 20* 27* 33* 37* 46*40* 51* 55* 63* 97*

33 63

Inserção de 23*, 48*, 41*, 42*

23*

Página de Overflow

48* 41*

42*

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

Deleção de um registro

40Raiz

5120

10* 15* 20* 27* 33* 37* 46*40* 51* 55* 63* 97*

33 63

Deleção de 42*, 51*, 97*

23*

Pagina de Overflow

48* 41*

42*

Procura 51*

Nunca sãoalteradas !!

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

Comparação de CustosCusto 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

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

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.

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

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.

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

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 !

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

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.

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

BTREE – Método de Acesso Dinâmico

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

13 1755 13 30

22

17 20

Nó N1 Nó N2

Nível I - 1

Nível I

Nível I+1≥ 17< 20

20 ≤ chave < 22≥30

22 ≤ chave < 30

1 nó para 2 ponteiros ??

1 ponteiro para 2 nós ??

< 22 ≥ 22

O ponteiro vermelho não pode ser eliminado.Logo, o preto será eliminado.O registro 17 deve sumir do nó N1!

É preciso mais um registro entre o 20 e o 30 para ganhar um ponteiro !

???

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

Ajuste final

13 1755 13 13 17520 3017

22

≥ 17< 20 20 ≤ chave < 22 22 ≤ chave < 30 ≥30

≥ 17< 17

≥ 13< 17

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

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 !

13 1755 13 13 175

20

3017 22

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

? ? ?

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

Exercicio: Remove 34*

13 1755 13 27 30

21

18 20

2* 3* 5* 7* 8* 14*16* 18* 19* 20* 21* 22* 24* 29*27* 33* 34*

50