João não sabe fazer consultas em banco de dados e buscou a ...

Próximas questões
Com base no mesmo assunto
Q3035760 Banco de Dados
João não sabe fazer consultas em banco de dados e buscou a literatura para fazer uma junção interna otimizada. Um dos pontos observados por João foi que suas relações não tinham seus registros fisicamente organizados, necessitando de uma ordenação externa. Os atributos de junção são atributos chave. Pares de blocos de arquivo são copiados para buffers de memória na ordem, e os registros de cada arquivo são varridos apenas uma vez cada um, para combinar com o outro arquivo.
O método de implementação da junção utilizado por João foi o(a):
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a C - ordenação - intercalação.

Vamos entender o conceito por trás da questão. O enunciado menciona que João precisa realizar uma junção interna otimizada em um banco de dados, onde as relações não estão ordenadas fisicamente. Os registros dos arquivos necessitam de uma ordenação externa, e os atributos de junção são chaves. Nesse contexto, um dos métodos clássicos e eficientes para lidar com essa situação é o método de ordenação - intercalação.

O método de ordenação - intercalação funciona em duas etapas principais:

  • Ordenação: Os dados de cada tabela são primeiro ordenados de acordo com os atributos de junção. Isso é necessário quando os dados não estão fisicamente organizados.
  • Intercalação: Após a ordenação, os dados são percorridos para realizar a junção, aproveitando a ordenação para otimizar o processo, reduzindo o número de comparações necessárias.

Agora, vamos analisar por que as outras alternativas estão incorretas:

A - loop alinhado: Este método é uma abordagem mais simples e menos eficiente, que envolve percorrer cada registro de uma tabela e compará-lo com todos os registros da outra tabela. Não é otimizado para situações onde o desempenho é crítico.

B - bloco alinhado: É uma variação do loop alinhado, mas utiliza blocos de dados ao invés de registros individuais. Ainda assim, não se aproveita da ordenação dos dados, tornando-o menos eficiente que a ordenação - intercalação.

D - único loop: Este método não se aplica à junção interna entre duas tabelas. É mais utilizado em situações onde apenas uma tabela é percorrida.

E - partição - hash: Este método utiliza uma técnica de hashing para dividir os dados em partições e unir essas partições. É eficiente para grandes volumes de dados, mas não foi indicado no enunciado como a técnica utilizada por João.

Com esses conceitos em mente, entendemos que a escolha do método de ordenação - intercalação é a mais adequada para a situação descrita.

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

Comentários

Veja os comentários dos nossos alunos

A intercalação (sorting) é um dos principais algoritmos utilizados no processamento de consulta. Por exemplo, sempre que uma consulta SQL especifica uma cláusula ORDER BY, o resultado da consulta precisa ser ordenado. A intercalação também é um componente chave nos algoritmos ordenação-intercalação (sort-merge) usados para JUNÇÃO e outras operações.

Intercalação externa refere-se a algoritmos de intercalação que são adequados para grandes arquivos de registros armazenados no disco que não cabem inteiramente na memória principal, como a maioria dos arquivos de banco de dados. O algoritmo de classificação externa típico usa uma estratégia ordenação-intercalação (sort-merge), que começa classificando pequenos subarquivos — chamados pedaços — do arquivo principal e depois mescla os pedaços classificados, criando subarquivos classificados maiores, que, por sua vez, são intercalados. O algoritmo ordenação-intercalação (sort-merge), como outros algoritmos de banco de dados, exige espaço de buffer na memória principal, onde a classificação e mesclagem reais dos pedaços são realizadas.

Elmasri • Navathe Sistemas de banco de dados 6a edição

O método de junção por ordenação-intercalação (sort-merge join) é adequado para situações em que os dados não estão fisicamente ordenados e os atributos de junção são chaves. Ele funciona da seguinte forma:

  1. Ordenação: As relações são ordenadas externamente pelos atributos de junção.
  2. Intercalação: As relações ordenadas são percorridas simultaneamente, comparando os valores dos atributos de junção e combinando os registros correspondentes.

As outras opções não se encaixam na descrição fornecida:

  • Loop alinhado (nested loop join): Este método compara cada registro de uma relação com todos os registros da outra, o que seria ineficiente se os dados não estivessem ordenados.
  • Bloco alinhado (block nested loop join): Uma variação do loop alinhado que utiliza buffers de memória para reduzir o número de acessos a disco.
  • Único loop (single loop join): Não existe esse tipo de junção comumente usado em bancos de dados.
  • Partição-hash (hash join): Este método utiliza funções hash para particionar as relações e combinar os registros correspondentes, mas não depende da ordenação dos dados.

Gabarito: C

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo