Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouSophia Resendes Alterado mais de 9 anos atrás
1
Revisão Prova 2 Métodos de Acesso – Parte 2 AULA 21 Profa. Sandra de Amo GBC053 – BCC
2
REVISÃO – BULK LOADING
3
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
4
Exemplo 3*4*6*9*10*11*12*13*20*22*23*31*35*36*38*41*44* Ordem da b-tree = 1 6*10* Páginas restantes a alocar
5
Exemplo 3*4*6*9*10*11*12*13*20*22*23*31*35*36*38*41*44* 6*10*12* Precisa dividir 20*
6
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
7
Exemplo 3*4*6*9*10*11*12*13*22*31*35*36*38*41*44* 6*12* 10* 20* 23* Precisa dividir 35*
8
Exemplo 3*4*6*9*10*11*12*13*22*31*35*36*38*41*44* 6*12* 10* 20* 23* 20* 35* Páginas restantes a alocar
9
Exemplo 3*4*6*9*10*11*12*13*22*31*35*36*38*41*44* 6*12* 10* 20* 23* 20* 35* 38* 44* Precisa dividir
10
Exemplo 3*4*6*9*10*11*12*13*22*31*35*36*38*41*44* 6*12* 10* 20* 23* 20* 38* 44* 35* Precisa dividir
11
Exemplo 3*4*6*9*10*11*12*13*22*31*35*36*38*41*44* 6*12* 10* 20* 23* 38* 44* 35* 20*
12
Exemplo: Entrada: Arquivo de indice de 9 páginas com 4 registros em cada uma. d = 2, k = 0, x = 1 Saída: (3, ) B0 = 18 páginas (folhas em amarelo) contendo 2 (= d + k) registros em cada uma B1 = Nível 1 da Btree = 5 páginas (azuis) de 3 (= d + x) registros cada (exceto a última) B2 = Nível 2 da Btree (raiz) = 1 página com 4 registros
13
Exemplo: Entrada: Arquivo de indice de 9 páginas com 4 registros em cada uma. d = 2, k = 0, x = 1 Saída: (3, ) B0 = 18 páginas (folhas em amarelo) contendo 2 (= d + k) registros em cada uma B1 = Nível 1 da Btree = 5 páginas (azuis) de 3 (= d + x) registros cada (exceto a última) B2 = Nível 2 da Btree (raiz) = 1 página com 4 registros
14
REVISÃO – HASH
15
Hash Estático Função Hash não se altera Caso um bucket fique cheio cria-se páginas de overflow para este bucket que ficou cheio. Alguns buckets podem concentrar muito mais páginas que outros buckets.
16
Inserção 0 1 2 5 h h(7) mod 6 = 1 7 … … Inserindo 4 3 Cheia
17
Supressão 0 1 2 5 h h(25) mod 6 = 1 25 … … Suprimindo 4 3
18
Função Hash Componente importante da técnica hash Deve distribuir valores das chaves de maneira uniforme nos buckets. Número de buckets = N = parâmetro h(x) = a*x + b, a, b : parâmetros de ajuste
19
Custos Páginas primárias do índice podem ser armazenadas em páginas de disco sucessivas. Caso não haja overflow Busca no índice requer 1 I/O Inserção e Supressão requerem 2 I/O Custo pode ser alto se existem muitas páginas de overflow. Estratégia : criar inicialmente os buckets deixando 20% de área livre em cada um.
20
Hash (dinâmico) Extensível Solução 1 : quando algum bucket ficar cheio Dobrar o número de buckets Distribuir as entradas nos novos buckets Defeito : o arquivo todo deve ser lido e reorganizado e o dobro de páginas devem ser escritas. Espaço em alguns buckets é alocado bem antes de sua utilização efetiva. Solução 2 : utilizar um diretório de ponteiros para os buckets. Dobrar o número de entradas no diretório Separar somente os buckets que ficaram cheios.
21
Exemplo 00 01 10 11 2 Diretório dos Ponteiros Profundidade Global 4*12*32*16* 2 1*5*21* 2 10* 2 15*7*19* 2 Bucket A Bucket B Bucket C Bucket D Páginas do Indice Profundidade Local
22
Exemplo – inserção 00 01 10 11 2 Diretório 4*12*32*16* 2 1*5*21* 2 10* 2 15*7*19* 2 Páginas do Indice Inserindo 13* 13*
23
Exemplo – inserção 00 01 10 11 2 Diretório 4*12*32*16* 2 1*5*21* 2 10* 2 15*7*19* 2 Inserindo 20* 13* 4*12*20* 2 32*16* 2
24
Exemplo – Inserção 00 01 10 11 2 Diretório 1*5*21* 2 10* 2 15*7*19* 2 Inserindo 20* 13* 4*12*20* 3 32*16* 3 000 001 010 011 100 101 110 111 3 Global Local Bucket A1 Bucket A2 Bucket D Bucket C
25
Exercicio: Busca 22*, 21*, 8* Diretório 1*5*21* 2 10* 2 15*7*19* 2 13* 4*12*20* 3 32*16* 3 000 001 010 011 100 101 110 111 3 Global Bucket A1 Bucket A2 Bucket D Bucket C Local
26
Hash (Dinâmico) Linear Assim como o Hash Extensível, o Hash Linear é ideal para inserções e supressões; Vantagem sobre extensível Lida muito bem com colisões Oferece muita flexibilidade Cadeias de overflow podem tornar o hash linear inferior em performance ao hash extensivel
27
Parâmetros e Contadores Nivel = indica a rodada atual Inicializado com 0 Next = bucket que deve ser dividido, se necessário Inicializado com 0 N m = número de buckets na rodada m N 0 = N N m = N*2 m Somente o bucket com número Next é dividido. Usa-se páginas de overflow para os outros buckets, se ficarem cheios. Após divisão, Next é incrementado.
28
Esquema Geral : rodada k Bucket Next a ser dividido Imagens dos buckets divididos Bucket b Bucket b + m Buckets existentes no inicio da rodada k m = número de buckets da rodada k
29
32*44*36* 9*25*5* 14* 31*35*7* 18*10*30* 11* Páginas Primárias Nivel = 0, N = 4 = 2 2 Next = 0 h0h0 h1h1 00 01 10 11 000 001 010 011 Esta informação não é armazenada ! Inserção de 43* h 0 (43) = 3 (11) 43* Next = 1 44*36* 00
30
32* 9*25*5* 14* 31*35*7* 18*10*30* 11* Nivel = 0, N = 4 = 2 2 h0h0 h1h1 00 01 10 11 000 001 010 011 Busca de 18* h 0 (18) = 2 (10) 43* Next = 1 44*36* 00 2 > Next Bucket 2 não foi dividido ainda 100
31
32* 9*25*5* 14* 31*35*7* 18*10*30* 11* Nivel = 0, N = 4 = 2 2 h0h0 h1h1 00 01 10 11 000 001 010 011 Busca de 32* e 44* h 0 (32) = 00 43* Next = 1 44*36* 00 0 < Next Bucket 0 já foi dividido ainda h 0 (44) = 00 h 1 (32) = 000 h 1 (44) = 100 Bucket 0 + 4 100
32
Inserção de 37* 32* 9*25*5* 14* 31*35*7* 18*10*30* 11* 00 01 10 11 000 001 010 011 43* Next = 1 44*36* 00 100 h 0 (37) = 01 37*
33
Inserção de 29* 32* 9*25*5* 14* 31*35*7* 18*10*30* 11* 00 01 10 11 000 001 010 011 43* Next =1 44*36* 00 100 h 0 (29) = 01 37* 5*37*29* 01101 Next =2
34
Incremento de Nível 32* 9*25* 66* 31*35* 7* 18*10*34* 11* 00 01 10 11 000 001 010 01143* 44*36* 00100 h 0 (50) = 10 5*37*29* 01101 14*30*22* 10 110 h 1 (50) = 010 50* Next =3 Next =0 Nivel = 1 31* 11111 7* 43* 11*
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.