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

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

Arquivos Extensíveis.

Apresentações semelhantes


Apresentação em tema: "Arquivos Extensíveis."— Transcrição da apresentação:

1 Arquivos Extensíveis

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

3 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

4 Tipos de espalhamento em arquivos extensíveis
Espalhamento dinâmico Espalhamento extensível

5 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

6 Espalhamento dinâmico

7 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

8 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

9 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

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

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

12 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

13 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 Filho da esquerda – Bucket de transbordamento 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

14 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

15 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

16 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

17 Espalhamento Extensível

18 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

19 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

20 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

21 Diretório em memória (1)
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

22 Diretório em memória (2)
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 100 ou 101 Bucket com T= 2 e registros com assinaturas começando por 110 ou 111

23 Inicialização do Diretório
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

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

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

26 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

27 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

28 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


Carregar ppt "Arquivos Extensíveis."

Apresentações semelhantes


Anúncios Google