Parece sabido que, para encontrar uma resposta para uma consulta em um banco de dados relacional , é preciso tempo e não é possível se livrar do expoente.
Como pode ser muito grande, nos perguntamos por que os bancos de dados funcionam na prática.
É apenas uma questão de as consultas usuais não serem grandes nas aplicações do mundo real? (É interessante saber qual é o tamanho usual das consultas feitas aos sistemas de bancos de dados relacionais e qual é o tamanho "máximo" das consultas que devem ser efetivamente respondidas por um sistema de banco de dados na prática .)
Notas sobre o expoentenão `removível '
Para mostrar que o expoentenão é removível, pode-se usar uma consulta perguntando se existe um clique do tamanho no gráfico fornecido pelo banco de dados. Verificar se um gráfico tem um class é um problema NP-complete. Além disso, não é um parâmetro fixo tratável, com o parâmetro . Detalhes podem ser encontrados em, por exemplo,
Libkin, L .: Elements Of Finite Model Theory. Springer (2004)
ou
Papadimitriou, CH, Yannakakis, M .: Sobre a complexidade das consultas ao banco de dados. J. Comput. Syst. Sci. 58 (3), 407-277 (1999)
SELECT * FROM users WHERE username="abc" AND passwrod="xyz"
) são pesquisas simples, que levam O (| D |) para serem executadas. Se houver um índice nos campos relevantes do banco de dados, será usado O (log | D |). Não gosto de bancos de dados, mas não acho que consultas mais complicadas levem um tempo exponencial.