Arquivos Seqüenciais Inhaúma Neves Ferraz

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Software Básico Silvio Fernandes
Motivação para listas duplamente encadeadas e circulares
Marco Antonio Montebello Júnior
AULA 8 Profa. Sandra de Amo GBC053 – BCC
Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Estrutura de Dados e Algoritmos e Programação e Computadores II
Software Básico Silvio Fernandes
Indices estruturados por B-TREE
Introdução aos Métodos de Acesso AULA 7 – Parte II Profa. Sandra de Amo GBC053 – BCC
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
Série de Exercícios.
Análise de Requisitos Use Case Renata Araujo Ricardo Storino
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.

Classificação Externa
Recursividade Inhaúma Neves Ferraz
Coleta de resíduos. Sumário Resíduos Coleta de resíduos Contador de referências Marcação e varredura Parada e cópia Marcação e compactação Gerenciamento.
Árvores B Conceitos Exemplos.
EXPRESSÕES ARITMÉTICAS
Variáveis Dinâmicas Caixas de Nós
EXPRESSÕES ARITMÉTICAS
Arquivos Extensíveis.
Estatística Básica Utilizando o Excel
Estruturas de Dados e Algoritmos
Classificação e Pesquisa de Dados
Classificação (Ordenação) de dados
FUNÇÃO MODULAR.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Controle
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Experiments with Strassen’s Algorithm: from sequential to parallel
Programação Baseada em Objectos Desenho de TAD
Listas Encadeadas.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Indexação de Arquivos Página de rosto.
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Sistemas Operacionais
Pesquisa em Memória Primária
Árvores binárias de pesquisa com balanceamento
Resolução de problemas por meio de busca
Salas de Matemática.
Aula 17 1 Análise Sintáctica Compiladores, Aula Nº 17 João M. P. Cardoso.
Entendendo as definições de classe
Ordenação Externa de Arquivos – Um exemplo
Universidade Católica de Pelotas Mestrado em Ciência da Computação
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Entrada de Produtos Posto de Combustível.
Introdução e Busca Cega
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Grupo A – Azul Claro, Marrom, Laranja
Conceitos básicos em grafos
Controle Distribuído da Concorrência
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Ceça Moraes – Introdução à Programação SI1
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Campus de Caraguatatuba Aula 2: Somatório e Produtório
Rio Verde - Goiás - Brasil
UML - Unified Modeling Language
Campus de Caraguatatuba
Planilha Eletrônica - Excel
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Fontes de Erros Aula 1 Introdução; Erros em processos numéricos;
Contagem Sequencial do Estoque
Contagem Sequencial do Estoque
Transcrição da apresentação:

Arquivos Seqüenciais Inhaúma Neves Ferraz ferraz@ic.uff.br Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br

Sumário Caracterização do Problema Transações Problemáticas GENERALIDADES ATUALIZAÇÃO DO ARQUIVO MESTRE ("BALANCED LINE ") Caracterização do Problema Transações Problemáticas INTERCALAÇÃO Generalidades Algoritmo Básico Otimização do algoritmo

Conceito Arquivos em série são aqueles nos quais os registros só podem ser acessados em ordem linear, ou seja, o registro de ordem i só pode ser acessado depois do registro de ordem i 1 Arquivos seqüenciais são aqueles nos quais os registros são armazenados em ordem ascendente ou descendente do valor de um ou mais de seus atributos (chave)

Utilização Não há melhor organização do que a seqüencial para as situações que exijam varredura ou cobertura periódica de todos os registros de um dado arquivo Exemplos Cobranças periódicas de serviços públicos Geração das listas de presença das escolas Confecção das folhas de pagamento de empregados Extração dos talões de cobrança de clientes, etc.

ATUALIZAÇÃO DO ARQUIVO MESTRE (" BALANCED LINE ") Caracterização do Problema Um problema comum no tratamento da informação consiste na atualização de um arquivo (o arquivo mestre) por um conjunto de transações que podem ser : inclusão de registros exclusão de registros modificação de registros 5

Arquivo de Transações Registros do arquivo de transações são compostos de : chave primária identificador do tipo de transação(" I ", "E ", " M ") identificador do atributo a atualizar, no caso de modificação valores de todos os atributos, no caso de inclusão   É interessante fazer um pré-processamento no arquivo de transações para validação de dados e verificação da consistência, reduzindo a complexidade do algoritmo principal 6

Esquema de Balance Line 7

Gerações de Balance Line 8

Processamento do Balance Line (1) Os arquivos são classificados em ordem ascendente e terminados por um delimitador de fim de arquivo(" flag " ou " sentinela "), com valor de chave primária não inferior a qualquer outro ("high value") Na repetição principal, em cada laço, a variável chave_corrente recebe o valor da próxima chave a ser gravada Tudo se passa como se os arquivos principal e de transações fossem pilhas cujos topos fossem os registros correntes de cada arquivo Os topos destas pilhas são comparados e o de menor chave é excluído da pilha e incluído no arquivo de saída Se a chave dos dois topos coincidirem, o registro do arquivo principal sofre as atualizações indicadas no registro do arquivo de transações e o resultado vai para o arquivo de saída Se existir registro com chave igual a chave corrente no arquivo mestre, o " flag " alocado é ligado e o registro é movido para o " buffer " mestre 9

Processamento do Balance Line (2) Transações com a mesma chave da chave corrente são tratadas da maneira que se segue :  Inclusão - Cria-se novo registro no " buffer" mestre e liga-se o " flag " alocado Se este " flag " já estivesse ligado ocorreria erro por tentativa de inclusão de registro com chave igual a de registro já existente. Exclusão - O " flag" alocado é desligado Se este "flag " já estivesse desligado ocorreria erro por tentativa de exclusão de registro já inexistente.  Modificação - O " flag " alocado não é alterado Se estiver desligado ocorre erro por tentativa de modificação de registro inexistente Caso contrário efetuam-se as modificações 10

Processamento do Balance Line (3) Ao final do tratamento do registro de transações, caso o " flag " alocado esteja ligado, o " buffer " mestre é gravado no arquivo de saída. Após o processamento de todos os registros gravase no arquivo de saída um " flag " de final de arquivo. 11

Transações Problemáticas Existem algumas transações que são problemáticas Não se trata de imperfeições no algoritmo Os problemas são oriundos de situações reais provocados por usuários, a saber: Inclusão de registro seguida de modificações nesse registro quando o registro já existia Aproveita-se ou não as modificações ? Alteração do atributo chave Uma possibilidade consiste em pré-processar o arquivo de transações transformando essas modificações em uma exclusão seguida de inclusão 12

INTERCALAÇÃO Generalidades Algoritmo Básico  Intercalação é o processo através do qual diversos arquivos seqüenciais classificados por um mesmo critério são mesclados gerando um único arquivo seqüencial     Algoritmo Básico De cada um dos arquivos a intercalar basta ter em memória um registro. Considera-se cada arquivo como uma pilha e o registro em memória seu topo Em cada iteração do algoritmo, o topo da pilha com menor chave é gravado no arquivo de saída e é substituído pelo seu sucessor. Pilhas vazias têm topo igual a " high value " O algoritmo termina quando todos os topos da pilha tiverem " high value " 13

Busca Direta na Intercalação Quando a ordem de intercalação (número de arquivos a serem intercalados) é grande, é interessante otimizar a busca da menor chave Buffer é um " array " de registros topos de pilhas Podese fazer busca neste " array “ Busca direta para determinar o elemento de menor chave Uso de árvores binárias de seleção, tais como as árvores binárias de vencedores e de perdedores 14

Esquema Básico de Intercalação 15

Árvore binária de vencedores Árvores binárias de seleção são aquelas nas quais cada nó representa o menor de seus dois filhos e assim a raiz representa o menor nó da árvore Na árvore binária de vencedores os nós externos representam os elementos do “array” de registros “topos de pilha” dos arquivos a intercalar.. Cada nó interno tem três componentes : Cada nó interno contém informações um ponteiro para o menor de seus descendentes, esteja em que nível estiver (vencedor) Um nó vencedor em vários níveis aparece diversas vezes ao longo da árvore 16

Exemplo de árvore de vencedores 17

Árvore de Perdedores Conceito : Nesta árvore cada nó interno tem dois componentes : Os nós externos ou de falha formam o " array " Buffer, de registro topos de pilha. Cada pilha é um arquivo seqüencial a intercalar 18

Nó da Árvore de Perdedores 19

Processamento da árvore de perdedores Monta-se a árvore de perdedores representando apenas os nós internos Na árvore de perdedores figurarão todos os nós exceto o nó vencedor Determina-se s o índice do menor valor em Buffer Grava-se Buffer[s] no arquivo de saída A " pilha " s sofre uma operação de POP Um ponteiro T percorre a árvore de perdedores de pai( Buffer[s] ) até a raiz Em cada momento faz-se o teste : Buffer[perdedor(T)] < Buffer[s] Se o teste for positivo, troca-se s por perdedor[T] e vice-versa T vai para pai(T) Quando T chega a raiz grava-se Buffer[s] na saída e reinicia-se o processo O processo termina quando todas as pilhas estiverem vazias Os valores de chave não ficam armazenados na árvore e a saída não é pelo elemento da raiz 20

Exemplo Considere-se a existência de 11 arquivos a intercalar, exibindo apenas as chaves dos registros 21

Derivação da Árvore de Perdedores . Derivação da Árvore de Perdedores Como existe número ímpar de pilhas, será necessário considerar uma pilha isolada. Pode-se fazer , por exemplo, 3 comparações, uma pilha isolada e duas comparações 22

Desenvolvimento do exemplo 23

Situação Inicial 24

Evolução da Intercalação (1) Situação após a exclusão do registro de chave 2 25

Evolução da Intercalação (2) Situação após a exclusão do registro de chave 6 26

Evolução da Intercalação (3) Situação após a exclusão do registro de chave 10 27

Evolução da Intercalação (4) Situação após a exclusão do registro de chave 13 28

Evolução da Intercalação (5) Situação após a exclusão do registro de chave 15 29

Evolução da Intercalação (6) Situação após a exclusão do registro de chave 20 30

Evolução da Intercalação (7) Situação após a exclusão do registro de chave 31 31

Evolução da Intercalação (8) Situação após a exclusão do registro de chave 37 32