28
Arquivos Extensíveis

Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Embed Size (px)

Citation preview

Page 1: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Arquivos ExtensíveisArquivos Extensíveis

Page 2: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Sumário

• Aplicação• Tipos de espalhamento em arquivos extensíveis• Mecanismo de acesso• Espalhamento dinâmico• Espalhamento extensível

2

Page 3: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Aplicação

• Arquivos de acesso direto que possam expandir-se sem programação

• Embora com menor frequencia este tipo de arquivos também pode contrair-se diminuindo sem programação

3

Page 4: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Tipos de espalhamento em arquivos extensíveis

• Espalhamento dinâmico• Espalhamento extensível

4

Page 5: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Mecanismo de acesso

• O espalhamento em arquivos extensíveis utiliza um mecanismo de acesso, em memória, para obter o endereço de bucket da memória secundária

• No espalhamento dinâmico o mecanismo é uma floresta de árvores binárias

• No espalhamento extensível o mecanismo de acesso é um diretório (array uni dimensional) contendo o endereço de bucket da memória secundária

• Tal como no espalhamento baseado em tabelas os mecanismos de acesso precisam ser arquivados em arquivos auxiliares, carregados na abertura dos arquivos e salvos no fechamento dos arquivos

5

Page 6: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Espalhamento dinâmicoEspalhamento dinâmico

Page 7: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Mecanismo de acesso

• Em memória existem• Células

• Seu número é igual ao número de home buckets

• Caixa de nós de células

• Cada célula possui três atributos• Filho da esquerda• Filho da direita• Pai

• Os atributos filho da direita e pai iniciam aterrados• Os atributos filho da esquerda apontam os home

buckets

7

Page 8: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Conceito• Usa-se uma função hash original• O home address retornado por esta função seleciona uma

célula em memória• Inicialmente existem tantas células quantos são os home

addresses• Ao se ter acesso a uma célula, se o filho da direita estiver

aterrado, o filho da esquerda aponta para o bucket onde deve estar o registro buscado

• O acesso a esse bucket em memória secundária completa a operação de busca

• A operação de busca retorna o registro buscado ou um slot para a gravação de registro novo caso não exista ainda essa chave no arquivo

8

Page 9: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Memória secundária

• Em memória secundária existem• Buckets em quantidade determinada pela função hash• Caixa de nós de buckets para transbordamento

9

Page 10: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Células em memória – situação inicial

Page 11: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Células em memória – início da floresta

Page 12: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Transbordamento (1)

• Quando um home bucket, considerado de primeiro nível, transbordar:• A caixa de nós de buckets aloca um bucket de

transbordamento• Os registros do home bucket e o registro que causou o

transbordamento são divididos entre o home bucket e o bucket de transbordamento

• Estes dois buckets passam a ser considerados de nível i + 1, no caso de segundo nível

• A caixa de nós de células aloca duas novas células

12

Page 13: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Transbordamento (2)• Atributos das células alocadas

• Primeira• Pai – célula que apontava o home bucket• Filho da esquerda – Home bucket• Filho da direita – null

• Segunda• Pai – célula que apontava o home bucket• Filho da esquerda – Bucket de transbordamento• Filho da direita – null

• Célula que apontava o home bucket• Filho da esquerda – Primeira nova célula alocada• Filho da direita – Segunda nova célula alocada

• A célula que apontava o home bucket passa a ser a raiz de uma árvore binária de acesso a buckets

• O mecanismo de acesso passa a ser uma floresta de árvores binárias

13

Page 14: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Transbordamento (3)

• Para a divisão de registros entre buckets calcula-se a assinatura digital de cada chave de registro

• São direcionados para o bucket da esquerda os registros que possuam primeiro bit da assinatura digital igual a 0

• São direcionados para o bucket da direita os registros que possuam primeiro bit da assinatura digital igual a 0

• Quando um bucket de nível i transbordar repete-se o processo utilizando como seletor o bit de ordem i das assinaturas digitais e assim por diante

14

Page 15: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Buckets companheiros

• Definem-se como "buckets" companheiros no "hash" dinâmico aqueles apontados por nós externos (folhas da árvore de índices) com pai comum

• Teste de bucket meu companheiro• Se o filho da esquerda de meu pai sou eu

• Então o candidato a bucket companheiro é o apontado pelo filho da direita de meu pai

• Senão o candidato a bucket companheiro é o apontado pelo filho da esquerda de meu pai

• Se o filho da direita da célula que aponta o bucket candidato a companheiro está aterrado

• Então este é meu bucket companheiro• Senão não tenho bucket companheiro

15

Page 16: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Exclusão de registros

Nas exclusões de registros:• Se a somas das populações do bucket aonde vai

ocorrer a exclusão e de seu bucket companheiro são comportadas por um único bucket• Então

• Todos os registros são concentrados em um dos dois buckets• Desaloca-se o outro bucket• Desalocam-se duas células da árvore de índices correspondentes• A célula mãe das células desalocadas aponta o bucket que restou

alocado e com registros

16

Page 17: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Espalhamento ExtensívelEspalhamento Extensível

Page 18: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Mecanismo de acesso

• Em memória existe• Um diretório (array uni dimensional) contendo o endereço

de bucket da memória secundária• Uma variável inteira (d) contendo a profundidade do

diretório (2d)• Identificadores das posições do diretório que são os

números binários entre 0 e 2d – 1• Estes identificadores não são armazenados

18

Page 19: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Conceito• Semelhante ao espalhamento dinâmico com o mecanismo de

acesso simplificando a floresta de árvores binárias por um diretório

• Não são empregadas funções hash• O endereçamento é feito exclusivamente por meio de

assinaturas digitais• Consideram-se d bits da assinatura digital como home address• A posição do diretório correspondente a este home address

contém o endereço de bucket para a busca• A operação de busca retorna o registro buscado ou um slot

para a gravação de registro novo caso não exista ainda essa chave no arquivo

19

Page 20: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Memória secundária

• Em memória secundária existem• Buckets inicialmente alocados (um ou dois)• Caixa de nós de buckets para transbordamento• Cada bucket contém além dos slots um atributo nível (t)

que é igual ao número de bits iniciais iguais das assinaturas de todos os registros contidos no bucket

• Os valores d e t são também chamados de headers, do diretório e dos buckets, respectivamente

20

Page 21: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Diretório em memória (1)

21

•Havia dois buckets com d = 1•O número de registros com assinatura começando por 0 não coube em um bucket•Houve necessidade de dobrar o diretório d = 2•Foi alocado mais um bucket ficando um bucket com registros de assinaturas começando por 00 e outro bucket com registros de assinaturas começando por 01•O bucket com registros de assinaturas começando por 1 não transbordou aceitando 10 e 11

Page 22: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Diretório em memória (2)

22

A imagem abaixo mostra:•Diretório com d = 3•Bucket com T= 3 e registros com assinaturas começando por 000•Bucket com T= 3 e registros com assinaturas começando por 001•Bucket com T= 2 e registros com assinaturas começando por 010 ou 011•Bucket com T= 2 e registros com assinaturas começando por 010 ou 011•Bucket com T= 2 e registros com assinaturas começando por 100 ou 101•Bucket com T= 2 e registros com assinaturas começando por 110 ou 111

Page 23: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Inicialização do Diretório

Bucket Nível Slot Reg K Assinaturad=1 1 1 1 1 11125 001111100010

0 1 21 2 3

2 1 1 2 41035 1010101001112 43

Bucket Nível Slot Reg K Assinaturad=0 1 1 1 1 11125 001111100010

0 1 2 2 41035 1010101001113

Alternativas para inicialização do diretório•Bucket único (d = 0)•Dois buckets (d = 1)•Um bucket para assinaturas começando com 0•Um bucket com assinaturas começando com 1

Page 24: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Transbordamento (1)

• Quando um "bucket" com "header" de T bits transborda ocorre uma partição e os C+1 (C é a capacidade do "bucket", medida em "slots") registros são dispersados entre a folha do "bucket" existente e a recém-alocada, de acordo com o bit de ordem T+1 da assinatura de suas chaves.

24

Page 25: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Transbordamento (2)

• Os "headers" dos "buckets" passam a ter T+1 bits.• Se d T +1 a partição é trivial sem necessidade de

alterar a tabela de índices.Se d < T+1 há necessidade de incrementar d, o que dobra a tabela.

• Os "buckets" não partidos passam a receber o dobro do número de ponteiros.

25

Page 26: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Buckets companheiros

• São "buckets" companheiros no "Hash" extensível "buckets" que tem a mesma cabeça T e, além disso, as assinaturas ou pseudo-chaves dos registros contidos em ambos tem T-1 bits iniciais iguais

• Para achar o bucket companheirro de um dado bucket faz-se o seguinte:• Seja y um binários com os T bits inicias da assinatura de

qualquer dos registros do bucket• Seja z = y XOR 1• O bucket de endereço z, no diretório é o bucket

companheiro

26

Page 27: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Exclusão de registros (1)

Nas exclusões de registros:• Se a somas das populações do bucket aonde vai

ocorrer a exclusão e de seu bucket companheiro são comportadas por um único bucket• Então

• Todos os registros são concentrados em um dos dois buckets• Desaloca-se o outro bucket• Decrementa-se o valor do header T do bucket que permanece

27

Page 28: Arquivos Extensíveis. Sumário Aplicação Tipos de espalhamento em arquivos extensíveis Mecanismo de acesso Espalhamento dinâmico Espalhamento extensível

Exclusão de registros (2)

• Para o "Hashing" Extensível, após a exclusão, o "header" do "bucket" remanescente é decrementado de 1 unidade

• Se todos os "headers" T forem menores do que d• Então d deve ser decrementado reduzindo a tabela

diretório à metade

28