Os dados de uma agenda contendo nome, telefone e endereço de...

Próximas questões
Com base no mesmo assunto
Q287832 Banco de Dados
Os dados de uma agenda contendo nome, telefone e endereço de pessoas estão organizados em um arquivo de dados com acesso somente de leitura. Um dispositivo eletromecânico D, que possibilita acesso direto, contém, aproximadamente, 90 milhões de registros ordenados por nome. Assumindo que o tamanho do campo endereço é
variável e que D pode ter arquivos (pré-existentes) de índices que se referenciam ao arquivo de dados, e supondo que D não possui cache, qual é a estratégia que realizará, em média, menos operações de I/O para consultar todos os registros cujo nome começa por uma determinada letra?

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a Alternativa C. Vamos entender por quê.

Tema Central: A questão trata de métodos de acesso a registros em um arquivo de dados ordenados. É fundamental compreender como o uso de índices pode otimizar o acesso a dados, especialmente em um contexto sem cache, onde operações de I/O (entrada/saída) são mais custosas em termos de tempo.

Resumo Teórico: Em bancos de dados, o acesso eficiente a registros é crucial, especialmente em grandes conjuntos de dados. Um índice é uma estrutura de dados que melhora a velocidade das operações de consulta em um banco de dados à custa de espaço adicional e tempo de manutenção. Existem diferentes tipos de índices, como o sequencial, a árvore B-Tree e índices de acesso direto, cada um com suas vantagens e desvantagens dependendo do cenário.

Justificativa da Alternativa C - Correta: A alternativa C sugere o uso de um arquivo de índices que mapeia as letras do alfabeto para as posições de início dos registros no arquivo de dados. Este método é eficiente porque:

  • Reduz o número de operações de I/O ao permitir acesso direto aos registros iniciados por uma letra específica.
  • Uma vez encontrado o início dos registros com a letra desejada, uma leitura sequencial é rápida e não requer mais operações de I/O desnecessárias.

Portanto, essa estratégia minimiza o número de acessos ao disco, tornando-a a mais eficiente para o cenário descrito.

Análise das Alternativas Incorretas:

Alternativa A: Pesquisa binária diretamente sobre o arquivo de dados é menos eficiente, pois embora os dados estejam ordenados, a pesquisa binária não é ideal em arquivos de acesso direto sem cache, devido ao custo alto de I/O.

Alternativa B: A B-Tree é excelente para buscas rápidas, mas, neste caso, os dados já são ordenados por nome, e o objetivo é acessar rapidamente um grupo de registros. O uso de uma B-Tree para um conjunto específico de registros é desnecessário e pode não ser otimizado para a situação.

Alternativa D: Embora uma pesquisa binária sobre um arquivo de índices indexado pelo nome possa ser eficiente para encontrar um registro específico, não é ideal para encontrar todos os registros que começam com uma letra específica, pois requer várias operações de I/O.

Alternativa E: A leitura sequencial diretamente sobre o arquivo de dados sem índices é a abordagem menos eficiente, pois requer a leitura de todos os registros, resultando em um número muito alto de operações de I/O.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo