Vamos agora a outro exemplo, no qual o nome do funcionário pesquisado está em dois blocos.

Ao solicitar todas as informações do funcionário Mauro (SELECT * FROM FUNCIONARIOS WHERE NOME = “Mauro”):

Resumindo em um passo a passo, o SGBD se comporta assim:

  1. Há um funcionário de nome “Mauro” no índice?
  2. Sim, há, os dados dela estão no bloco 3.
  3. Leia todo o bloco 3.
  4. O primeiro funcionário chama-se “Mauro”?
  5. Não, então despreze os dados dele (Eduardo Martins).
  6. O próximo funcionário chama-se “Mauro”?
  7. Não, então despreze os dados dele (Fábio Lemos Maia).
  8. O próximo funcionário chama-se “Mauro”?
  9. Não, então despreze os dados dele (Felipe César).
  10. O próximo funcionário chama-se “Mauro”?
  11. Sim, então mantenha os dados dele em memória (Mauro Benvindo).
  12. Chegamos ao fim do bloco, então leia o próximo bloco (bloco 4).
  13. O primeiro funcionário desse bloco chama-se “Mauro”?
  14. Sim, então mantenha os dados dele em memória (Mauro Lemos).
  15. O próximo funcionário chama-se “Mauro”?
  16. Não, então despreze os demais dados do bloco.
  17. Retorne os dados mantidos em memória para o usuário.

Concluindo, o SGBD processa bloco por bloco e despreza as informações lidas que não são de interesse do usuário.

Alguns registros podem ser tão grandes que cada um deles ocupa mais de um bloco; dessa forma, o SGBD também é capaz de ler blocos em sequência recuperando todos os blocos com informações desejadas pelo usuário. Por exemplo, os dados completos de um único funcionário poderiam estar em 5 blocos.
Copyright © 2016 AIEC.