B-tree Gerenciamento de Duplicatas Bulk Loading AULA 12 Profa. Sandra de Amo GBC053 – BCC 2013-1.
Transcript of B-tree Gerenciamento de Duplicatas Bulk Loading AULA 12 Profa. Sandra de Amo GBC053 – BCC 2013-1.
B-tree Gerenciamento de Duplicatas
Bulk Loading
AULA 12Profa. Sandra de Amo
GBC053 – BCC2013-1
Gerenciando Duplicatas
• Quando a chave do índice não contém 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,*),...
Método Geral para Gerenciamento de Duplicatas
7* 8* 9* 10* 13*17* 23* 23* 41*37* 43* 47*
13 1757 9 13 175- 37
2* 3*
43
5* 23*
17
Primeiro Filho Segundo Filho não contém nenhuma nova chave
Primeira nova Chave é 37*
23*23*
Método Geral para Gerenciamento de Duplicatas
7* 8* 9* 10* 11*12* 14* 14* 41*37* 43* 47*
13 1757 9 13 17513 37
2* 3*
43
5*
12
15*15*15*
A primeira chave diferenteé a 37
Duplicatas : chave não contém chave candidata
7* 8* 9* 10* 13*17* 23* 23* 23* 41*37* 43* 47*
13 1757 9 13 175- 37
2*3*
43
5* 23*
17Busca 17*
Duplicatas : chave não contém chave candidata
7* 8* 9* 13* 13*17* 23* 23* 23* 41*37* 43* 47*
13 1757 9 13 175- 37
2*3*
43
5* 23*
17Busca 24*
?Não precisa ir mais adiante !
Duplicatas : chave não contém chave candidata
7* 8* 9* 13* 13*17* 23* 23* 23* 41*37* 43* 47*
13 1757 9 13 175- 37
2*3*
43
5* 23*
17Busca 13*
Construção de uma B-Tree – Bulk Loading
• Ordena-se as entradas do índice pela chave de busca
• Aloca-se uma página vazia para a raiz
• Insere nesta página um ponteiro para a primeira página do arquivo contendo as entradas.
Exemplo
3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* 35* 36* 38* 41* 44*
Páginas restantes a alocar
Ordem da b-tree = 1
Exemplo
3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* 35* 36* 38* 41* 44*
Ordem da b-tree = 16* 10*
Páginas restantes a alocar
Exemplo
3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* 35* 36* 38* 41* 44*
6* 10* 12*
Precisa dividir
20*
Exemplo
3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* 35* 36* 38* 41* 44*
6* 12*10* 20*
Páginas restantes a alocar
Exemplo
3* 4* 6* 9* 10* 11* 12* 13* 22* 31* 35* 36* 38* 41* 44*
6* 12*
10*
20*
20*
23*
23*
Precisa dividir
35*
Exemplo
3* 4* 6* 9* 10* 11* 12* 13* 22* 31* 35* 36* 38* 41* 44*
6* 12*
10*
20*
23*
23*
20*
35*
Páginas restantes a alocar
Exemplo
3* 4* 6* 9* 10* 11* 12* 13* 22* 31* 35* 36* 38* 41* 44*
6* 12*
10*
20*
23*
23*
20*
35* 38* 44*
Precisa dividir
Exemplo
3* 4* 6* 9* 10* 11* 12* 13* 22* 31* 35* 36* 38* 41* 44*
6* 12*
10*
20*
23*
23*
20*
38* 44*
35*
Precisa dividir
Exemplo
3* 4* 6* 9* 10* 11* 12* 13* 22* 31* 35* 36* 38* 41* 44*
6* 12*
10*
20*
23*
23*
38* 44*
35*
20*