TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 14 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 1 Agenda Transformação de Chave - Hashing Bibliografia 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 2 Transformação de Chave - Hashing Indexação Para redução do tempo de acesso a um registro o mais indicado é o uso de índice para orientar a busca. Por este motivo, um dos importantes componentes de um arquivo é o diretório que abriga uma coleção de um ou mais índices do arquivo. Um índice é um mapeamento que associa a cada chave, uma referência ao registro que a contém. Assim, dada uma chave de pesquisa, o índice fornece imediatamente a localização do registro correspondente. Resumindo, índice é um par (chave, endereço) 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 3 Transformação de Chave - Hashing Indexação - continuação Chave primária – Valores sempre únicos e não nulos. Chaves comuns – Outros valores que podem se repetir. Ex. Arquivo de funcionários Chave primária ID Chave comum - Função Arquivos que utilizam estrutura de indices é composto por duas partes: Arquivo de dados Estrutura de índice associada. 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 4 Transformação de Chave - Hashing Indexação - continuação A cada inserção de um novo registro no arquivo de dados, é inserido no índice uma referência a ele. Para acessar um determinado registro, para consulta ou alteração, é feita a pesquisa na estrutura de índice para que sua localização no disco seja encontrada e, em seguida, é feito o acesso direto para leitura ou gravação 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 5 Transformação de Chave - Hashing Indexação - continuação Exemplo: 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 6 Transformação de Chave - Hashing Indexação - continuação Objetivo do uso de indexação é melhorar o desempenho no processo de inclusao de novos registros, pesquisa e atualização. Indice é carregado na memória temporaria para melhorar performance na procura por registros Não havendo movimentação dentro do arquivo, a eficiência na inclusão pode ser facilmente obtida se os registros forem inseridos sempre no final do arquivo. Porém, a pesquisa será extremamente lenta, uma vez que os registros não estão armazenados ordenados e a busca será realizada através de uma leitura seqüencial dos registro 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 7 Transformação de Chave - Hashing Indexação - continuação Exlclusão de registros Lógica – Somente a referencia no índice é removida Física – Processo de geração de cópia do arquivo com somente os registros referenciados no índice. 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 8 Transformação de Chave - Hashing Hashing Método de busca por chaves que tem como maior vantagem o fato de que, na média dos casos, é possível encontrar a chave com apenas uma operação de leitura. Diferente da busca normal por comparação de chaves . Gera endereço de entrada de uma tabela a partir onde se encontra a informação associada a chave, a partir da chave . Tabela – Tabela de dispersão Hashing - espalhamento 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 9 Transformação de Chave - Hashing Hashing Método de busca por chaves que tem como maior vantagem o fato de que, na média dos casos, é possível encontrar a chave com apenas uma operação de leitura. Diferente da busca normal por comparação de chaves . Gera endereço de entrada de uma tabela a partir onde se encontra a informação associada a chave, a partir da chave . Tabela – Tabela de dispersão Hashing - espalhamento 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 10 Transformação de Chave - Hashing Com base na Matéria exposta, leia o material de apoio e responda os exercícios abaixo: Explique funções de transformação de chaves. Explique o que são colisões e como são tratadas. Explique o que é Hash linear. 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 11 Bibliografia BIBLIOGRAFIA BÁSICA AZEREDO, Paulo A. Métodos de Classificação de Dados. Rio de Janeiro: Ed. 1 Campus, 1996. LAUREANO, M. Estrutura de Dados com Algoritmos e C. 1ª Ed. São Paulo: Brasport, 2 2008. PEREIRA, Silvio do Lago. Estruturas de Dados Fundamentais – Conceitos e 3 Aplicações. 7.ed. São Paulo: Érica, 2008. BIBLIOGRAFIA COMPLEMENTAR KOFFMANN, E.B. Objetos, Abstração, Estrutura de Dados e Projetos. 1ª Ed. Rio de 4 Janeiro: LTC, 2008. MORAES, Celso Roberto. Estruturas de Dados e Algoritmos.Uma abordagem didática. 5 Edição revista e Ampliada. São Paulo: Editora Futura, 2003. WIRTH, Niklaus. Algoritmos e estruturas de dados. Rio de Janeiro: Prentice Hall do 6 Brasil, 1989. ZIVIANI, N. Projeto de Algoritmos com implementações em Pascal e C , Editora 7 Pioneira, 1999. 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 12