A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Revisão Prova 2 Métodos de Acesso – Parte 2 AULA 21 Profa. Sandra de Amo GBC053 – BCC.

Apresentações semelhantes


Apresentação em tema: "Revisão Prova 2 Métodos de Acesso – Parte 2 AULA 21 Profa. Sandra de Amo GBC053 – BCC."— Transcrição da apresentação:

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 h h(7) mod 6 = 1 7 … … Inserindo 4 3 Cheia

17 Supressão 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 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 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 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 Diretório 1*5*21* 2 10* 2 15*7*19* 2 Inserindo 20* 13* 4*12*20* 3 32*16* 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* 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 h1h 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 h1h 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 h1h 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

32 Inserção de 37* 32* 9*25*5* 14* 31*35*7* 18*10*30* 11* * Next = 1 44*36* h 0 (37) = 01 37*

33 Inserção de 29* 32* 9*25*5* 14* 31*35*7* 18*10*30* 11* * Next =1 44*36* h 0 (29) = 01 37* 5*37*29* Next =2

34 Incremento de Nível 32* 9*25* 66* 31*35* 7* 18*10*34* 11* * 44*36* h 0 (50) = 10 5*37*29* *30*22* h 1 (50) = * Next =3 Next =0 Nivel = 1 31* * 43* 11*


Carregar ppt "Revisão Prova 2 Métodos de Acesso – Parte 2 AULA 21 Profa. Sandra de Amo GBC053 – BCC."

Apresentações semelhantes


Anúncios Google