Arquivos Extensíveis.

Slides:



Advertisements
Apresentações semelhantes
Contadores e Registradores
Advertisements

AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Motivação para listas duplamente encadeadas e circulares
AULA 8 Profa. Sandra de Amo GBC053 – BCC
INTRODUÇÃO À LÓGICA DIGITAL
UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA SÃO PAULO Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus.
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
VISÃO GERAL Profa. Fernanda Denardin Walker
Hash Extensivel Rápido acesso a dados com um custo mínimo de processamento (overhead cost).
Indice estruturado por Hash
Indices estruturados por B-TREE
Algoritmos de Junção – BNL e IndexNL AULA 16 Profa. Sandra de Amo GBC053 – BCC
Organização de Arquivos Introdução
Gerenciamento de Arquivos, Páginas e Registros
Método de Acesso Dinâmico - B-Tree AULA 14 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Revisão Prova 2 Métodos de Acesso: BTree e Hash AULA 20 Profa. Sandra de Amo GBC053 – BCC
Série de Exercícios.
Hashing Extensível o espaço de endereços disponíveis não é fixo
Árvore Binária de Busca
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Árvores.

Arquivos Seqüenciais Inhaúma Neves Ferraz
Árvores B Conceitos Exemplos.
Arquivos de Acesso Direto
Exemplos de arquivos de Acesso Direto
Estatística Básica Utilizando o Excel
Pesquisa em Memória Primária
Pesquisa em Memória Primária
Classificação e Pesquisa de Dados
THOBER CORADI DETOFENO, MSC. Aula 07
Polinômios Prof. Marlon.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
I – Informação Digital Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações Tecnologias de.
Listas Encadeadas.
Classes e objetos Arrays e Sobrecarga
Apontadores ou Ponteiros
PROFESSORES GENAILSON /MICHELIANY
Indexação de Arquivos Página de rosto.
Marco Antonio Montebello Júnior
Lógica do Sequenciamento das Operações
Como controlar o caixa Supermercados.
INTRODUÇÃO À ENGENHARIA
PROFESSORES GENAILSON /VICTOR
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Pesquisa em Memória Primária
Árvores binárias de pesquisa com balanceamento
Linguagem de Programação II Parte IX
ASSUNTO 7: Operãções com números inteiros (SUBTRAÇÃO)
Conceitos de Lógica Digital
INF70 – Gerenciamento de Banco de Dados 2 Índices baseados em Hash Ilmério Reis da Silva UFU/FACOM/BCC.
Estruturas de Dados com Jogos
Coordenação Geral de Ensino da Faculdade
Operações com frações (semana 9).
Medidas de posição  Estudando as distribuições de  frequência,  percebe-se que existe uma  posição de  concentração dos valores, que podem estar mais concentrados no início, no meio ou no 
Revisão Prova 2 Métodos de Acesso – Parte 2 AULA 21 Profa. Sandra de Amo GBC053 – BCC.
Universidade Católica de Pelotas Mestrado em Ciência da Computação
Conceitos de Lógica Digital
Arquivos Estruturados por Hashing– Custos I/O
Introdução e Busca Cega
Rotação Simples e Dupla Katia Guimarães
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Agenda Modos de Endereçamento.
Algoritmos para Operação de Junção Loops Aninhados AULA 17 Profa. Sandra de Amo GBC053 – BCC.
Ceça Moraes – Introdução à Programação SI1
Campus de Caraguatatuba Aula 2: Somatório e Produtório
Planilha Eletrônica - Excel
Transcrição da apresentação:

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

Tipos de espalhamento em arquivos extensíveis 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

Espalhamento dinâmico

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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.

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

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

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