-
As vantagens do uso de índices são claras e não há dúvidas. A única frase que pode causar alguma suspeita é : "Sem um índice, o gerenciador precisará sempre procurar determinados valores da primeira até a última linha do banco de dados."
Mas ela está correta visto que o armazenamento de informações em um banco não é ordenado, portanto não teríamos nem como fazer uma busca binária. Sem índices seríamos sempre obrigado a buscar sequenciamente, passando por todos os registros (O(n/2)).
-
Alguém sabe que tipo de busca pode causar perda de informação, como afirma a questão? Achei que estivesse errada por causa disto.
Obrigado.
-
A perda de dados a que a questão se refere não é uma perda de dados algoritmica e sim de falha de sistema devido ao stress de buscar uma grande fonte de dados, já que em sistemas ditos grandes como o da questão as tabelas contêm dezenas de milhões de registros ou até bilhões de registros o que levaria o Servidor de Banco de dados à fazer uma busca intensa em Disco já que devido ao tamanho das tabelas seria impossível armazenar o BD em memória. Como o HD é um dispositivo mecânico de armazenamento alem de mais lento ele é mais sucetivel à falhas.
-
perda de informação != perda de dados
-
Para poder afirmar que o SGBD "sempre [irá] procurar determinados valores da primeira até a última linha do banco de dados", o enunciado precisava dizer qual tipo de arquivo de dados está em questão. Segundo Navathe, podemos ter um arquivo de dados desorganizado, ou heap, um organizado (sequencial) e de hash. Para o primeiro tipo de arquivo, a afirmativa é verdadeira. Já para as demais, se torna falsa.
Quem discordar, comente.
-
Pessoal, a questão é realmente estranha quando afirma que em "todos os casos haverá uma busca do primeiro ao último registro".
Porém, ao buscar mais referencias, vi que a organização das páginas (contendo os dados em si) em arquivos pode ser de duas formas principais: Heap Files e Arquivos Indexados. No primeiro caso, os dados (páginas) são organizadas sequencialmente. No segundo caso, os dados possuem uma estrutura auxiliar (índices) que ajuda a encontrar rids de registros satisfazendo determinada condição. As operações possíveis no Heap File são: Create/Destroy arquivos, Insert/Delete/get um registro e Scan all records (Busca em todos os registros). Como temos somente esses três tipos, provalmente a questão estava se referindo o terceiro tipo, e nele a consulta realmente é feita em todos os registros. Bem, é o que a teoria fala. E pode ser verdade mesmo, pois trata-se de uma forma não utilizada nos BD atuais, onde a utilização de índices para garantir performance às operações é uma constante absoluta!
Espero ter contribuido!
-
A questão aborda uma lógica correta em relação ao Banco de Dados sem Índice, porém peca ao dizer que SEMPRE percorrerá toda a tabela, esta seria apenas a pior das hipóteses.