M - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

M

Description:

M todos de Acesso Indices estruturados por B-TREE Plano Geral M todo de Acesso Indexado Sequencial (ISAM) Busca Inser o Supress o B-Tree: uma estrutura ... – PowerPoint PPT presentation

Number of Views:78
Avg rating:3.0/5.0
Slides: 43
Provided by: Sandra438
Category:
Tags: maxima | minima

less

Transcript and Presenter's Notes

Title: M


1
Métodos de Acesso
  • Indices estruturados por B-TREE

2
Plano Geral
  • Método de Acesso Indexado Sequencial (ISAM)
  • Busca
  • Inserção
  • Supressão
  • B-Tree uma estrutura dinâmica
  • Busca
  • Inserção
  • Supressão

3
Dados e Indices
  • Dados armazenados em arquivo de dados
  • lta1,a2, , k,, angt página i, slot j
  • Arquivos de indice estruturados em árvore
  • Folhas lt k, (i,j) gt
  • Nós intermediários ltchave, pagIdgt
  • Objetivo melhorar a busca de registros

4
Dados e Indices
  • Inserção e supressões são feitas no arquivo de
    dados
  • A cada inserção ou supressão de um registro de
    dados, a estrutura do arquivo de indices deve ser
    ajustada.
  • O ajuste implica em inserção ou supressão de
    entradas no arquivo de indice.
  • Como gerenciar inserções e supressões num arquivo
    de indice de modo a manter sua estrutura ?

5
ISAM - Motivação
  • Quais os empregados com salário gt 2000 ?
  • Busca binária no arquivo de indice até encontrar
    o primeiro salário gt 2000
  • Escaneia o arquivo de índice a partir deste ponto
    e lê os registros correspondentes.
  • Se o arquivo de indice é muito grande busca
    binária pode ser dispendiosa.

6
Idéia
  • Criar um segundo arquivo com um registro para
    cada página do arquivo de indice original
  • ltprimeira chave da página, ponteiro da páginagt
  • Ordenado por chave

14
2
5
7
12
14
17
19
22
7
Idéia (continuação)
  • Segundo arquivo menor que arquivo original
  • Busca binária no segundo arquivo mais rápida
  • Se segundo arquivo não cabe numa página
  • Repetir o processo cria-se um terceiro
    arquivo com um registro para cada página do
    segundo arquivo
  • Raiz cabe numa página

8
Esquema Geral do Método ISAM
Páginas dos arquivos de indices (a partir da 2a
camada)
Páginas primárias as entradas do arquivo de
índice da primeira camada
Páginas de overflow
9
Alocação de Páginas em ISAM
  • Páginas primárias e de overflow contém as
    entradas primárias k
  • ISAM é uma estrutura estática
  • Na criação do arquivo
  • Páginas primárias são alocadas
  • Páginas de índice são alocadas
  • 20 de cada página é livre para posteriores
    inserções
  • Manutenção
  • Páginas de overflow são alocadas à medida que as
    páginas de dados são preenchidas em decorrência
    de inserções.


10
Busca de um registro de dados
Procura 27
Raiz
40
51
63
20
33
10
15
20
27
33
37
46
40
51
55
63
97
11
Inserção de um registro
Inserção de 23, 48, 41, 42
Raiz
40
51
63
20
33
10
15
20
27
33
37
46
40
51
55
63
97
23
48
41
Página de Overflow
42
12
Supressão de um registro
Supressão de 42, 51, 97
Procura 51
Raiz
Nunca são alteradas !!
40
51
63
20
33
10
15
20
27
33
37
46
40
51
55
63
97
23
48
41
Pagina de Overflow
42
13
Comparação de Custos
  • Número de I/O número de níveis da árvore
  • Capacidade do nó F
  • Total de páginas primárias N
  • Número de níveis logF N
  • Custo
  • Arquivo de 1 000 000 registros
  • 10 registros por página de dados total de
    páginas 100 000
  • 100 entradas em cada página de índice
  • Scan 1000 000/10 100000 I/0
  • Busca binária log2 100000 17 I/0
  • ISAM log100 100000 entre 2 e 3 I/0, pois
  • 1002 lt 100000 lt 1003

14
Vantagens de ISAM
  • ISAM é estático inserções e supressões afetam
    somente as folhas.
  • Em alguns casos, ISAM é preferível a B-Trees

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

16
B-Trees Método de Acesso Dinâmico
  • Operações de inserção e supressão são balanceadas
    de modo a que cada nó tenha uma ocupação minima e
    máxima.
  • Uma ocupação mínima de 50 é garantida em cada nó
    (exceto a raiz)
  • Procura por um registro requer somente uma busca
    em profundidade da raiz até uma folha apropriada.
  • Arvore é balanceada
  • Todos os caminhos da raiz até a folha têm o mesmo
    comprimento.
  • Cada nó intermediário contém m entradas, onde d
    m 2d,
  • d ordem da B-tree
  • Páginas das folhas são ligadas em sequência
    através de ponteiros podem ser percorridas em
    sequência nas duas direções.

17
Busca
Ordem 2 cada nó contém K entradas, 2 lt K lt
4
Chave contém chave candidata (não há duplicatas)
13
17
24
30
15 ?
5 ?
5
14
2
3
7
16
19
20
22
24
27
29
33
34
39
38
18
Inserção
Inserindo 8
Cheia !
13
17
24
30
7
8
14
5
5
7
16
19
20
22
24
27
29
33
34
39
38
5
Cheia !
19
Inserção
  • Variante 1 Se nó está cheio divida e ajuste os
    nós ancestrais.
  • Variante 2 Testa primeiro se pode redistrisbuir
    num nó vizinho. Em caso negativo, divide.
  • Ideal
  • Não redistribuir nós intermediários sempre
    dividir o nó.
  • Se uma folha está cheia, procure um vizinho.
  • Se tiver espaço, redistribua.
  • Caso contrário, divida a folha cheia.

20
Inserção - Variante 1
Inserindo 8
Cheia !
13
17
24
30
7
8
14
5
5
7
16
19
20
22
24
27
29
33
34
39
38
5
Cheia !
21
Inserção Variante 1
Inserindo 8
17
17
13
24
30
5
7
8
5
14
16
19
20
22
24
27
29
33
34
39
38
22
Inserção Variante 2
Inserindo 8
8
13
17
24
30
5
8
2
3
7
14
16
16
19
20
22
24
27
29
33
34
39
38
14
8
23
Resumo Metodologia de Inserção
  • 1. Busca a página onde deve ser inserida a
    entrada.
  • 2. Caso a página suporte a inserção (sem
    ultrapassar o max)
  • Insere a tupla no final da página e pára.
  • 3. Caso a página P não suporte a inserção
  • 3.1 Verifica se um dos vizinhos suporta a
    inserção
  • 3.2 Caso positivo
  • Vizinho à direita VD a entrada é inserida na 1a
    posição de VD o elemento da camada imediatamente
    superior que tem um ponteiro à direita apontando
    para VD é substituido pela chave da entrada
    inserida.
  • Vizinho à esquerda VE
  • Insere-se a nova entrada na posição adequada em
    P, obtendo-se P (P tem d1 elementos agora)
  • primeira chave X da página P passa para a última
    posição de VE,
  • o elemento da camada imediatamente superior que
    tem um ponteiro apontando à esquerda para VE é
    substituido pela chave X.

24
Resumo Metodologia de Inserção
  • 3.2 Caso negativo número de elementos de P d
  • Considera-se a página P P nova entrada X
  • Quebra-se a P em duas páginas P1, P2 de tamanho
    d. Considera-se o elemento X do meio das duas
    páginas.
  • Insere-se o elemento X na camada imediatamente
    acima, à esquerda do ponteiro que apontava para
    P.
  • Ajusta-se os ponteiros desta camada o da
    esquerda de X aponta para P1, o da direita de X
    aponta para P2. O restante permanece como estava.
  • Caso após a inserção de X na camada acima, a
    página fique cheia, repete-se o mesmo processo
    (testa se é possível distribuir entre os vizinhos
    e em caso negativo, quebra-se a página e
    modifica-se a camada imediatamente acima).

25
Supressão
  • Se ocupação não fica abaixo do mínimo, suprime,
    não altera ponteiros, nem nós ancestrais
  • Se ocupação fica abaixo do mínimo
  • Tenta redistribuição com nó vizinho, se possível
  • Caso contrário junta com vizinho

26
Nem junta nem redistribui
Suprimindo 19
17
7
8
5
14
16
24
33
34
39
38
2
3
19
20
22
27
29
27
Redistribuição nas folhas
Suprimindo 20
17
5
13
24
30
27
7
8
5
14
16
20
24
27
29
33
34
39
38
22
24
22
27
29
28
Juntando folhas
Suprimindo 24
17
Quase vazia !
5
13
30
27
30
7
8
5
14
16
33
34
39
38
24
22
27
29
22
27
29
29
Junção de dois nós intermediários
17
5
13
30
27
30
5
13
30
7
8
5
14
16
33
34
39
38
24
27
22
27
29
São necessários 5 ponteiros
30
Junção de dois nós intermediarios
17
17
30
27
30
5
13
30
30
27
30
5
13
30
7
8
5
14
16
33
34
39
38
24
27
22
27
29
31
Redistribuição em nós intermediários
22
17
13
5
5
13
27
30
17
20
2
3
5
7
8
14
16
17
18
20
21
22
24
29
27
33
34
38
39
32
Redistribuição em nós intermediários
22
Quase vazia
17
13
5
5
13
30
17
20
2
3
5
7
8
14
16
17
18
20
21
22
29
27
33
34
38
39
33
Redistribuição em nós intermediários
22
17
13
5
5
13
30
17
20
??
2
3
5
7
8
14
16
17
18
20
21
22
29
27
33
34
38
39
??
34
Redistribuição em nós intermediários
22
17
17
13
5
5
13
13
5
20
30
17
22
2
3
5
7
8
14
16
17
18
20
21
29
27
33
34
38
39
??
35
Resumo Metodologia de Supressão
  • Busca a página onde está a tupla a ser removida.
  • Caso após a remoção da tupla, a ocupação não fica
    abaixo do mínimo, a tupla é removida e nenhum
    ajuste suplementar é feito nos outros níveis.
  • Caso após a remoção da tupla, a ocupação fica
    abaixo do mínimo
  • Há possibilidade de redistrisbuir com um dos
    vizinhos.
  • Primeiro elemento do vizinho à direita passa para
    a folha à esquerda- elimina-se o primeiro
    elemento do pai do vizinho à direita
  • Exercicio Último elemento do vizinho à esquerda
    passa para a folha- ?
  • Não há possibilidade de redistribuição com os
    vizinhos
  • Junta-se com o vizinho à direita
  • Remove do pai do ex-vizinho o elemento cujo
    ponteiro à direita apontava para o ex-vizinho da
    direita.

36
Resumo Metodologia de Supressão
  • Junção de nós intermediários
  • Caso o nó à esquerda tenha no máximo d elementos
  • Remove-se do pai do ex-nó à direita o elemento
    cujo ponteiro à direita apontava para este ex-nó.
    Insere-se este elemento no nó juntado.
  • Ajusta-se os ponteiros.
  • Redistribuição de nós intermediários
  • Caso o nó à esquerda tenha mais de d elementos
  • Ultimo elemento do nó à esquerda passa para o nó
    à direita.
  • Remove-se do pai do nó à direita o elemento cujo
    ponteiro à direita apontava para este nó.
    Insere-se este elemento no nó juntado.
  • Transfere-se para o lugar que ocupava o elemento
    removido, o ultimo elemento do nó à esquerda.

37
Exercicio
  • Como tratar o caso em que o nó que ficou abaixo
    da ocupação minima é o primeiro nó (não tem nó
    vizinho à esquerda) ?

38
Gerenciando Duplicatas
  • Quando a chave do índice não é chave candidata da
    relação
  • Em sistemas comerciais
  • Sybase dados são ordenados pela chave páginas
    são ordenadas sequencialmente acrescenta-se
    páginas de overflow
  • DB2, Oracle, MS SQL Server considera-se um
    identificador de tuplas, eliminando-se as
    duplicatas.
  • Exemplo (k,) (k,) ... ? (k,id1,)
    (k,id2,),...

39
Método Geral para Gerenciamento de Duplicatas
17
17
17
13
5
7
9
13
5
-
37
43
7
8
9
10
13
17
23
23
41
37
43
47
2
3
5
23
23
Primeira nova Chave é 37
Segundo Filho não contém nenhuma nova chave
Primeiro Filho
40
Duplicatas chave não contém chave candidata
Busca 17
17
17
17
13
5
7
9
13
5
-
37
43
23
7
8
9
10
13
17
23
23
41
37
43
47
2
3
5
23
41
Duplicatas chave não contém chave candidata
Busca 24
17
17
17
13
5
7
9
13
5
-
37
43
23
7
8
9
13
13
17
23
23
41
37
43
47
2
3
5
23
?
Não precisa ir mais adiante !
42
Duplicatas chave não contém chave candidata
Busca 13
17
17
17
13
5
7
9
13
5
-
37
43
13
23
7
8
9
13
17
23
23
41
37
43
47
2
3
5
23
Write a Comment
User Comments (0)
About PowerShow.com