Selon Immerman , la classe de complexité associée aux requêtes SQL est exactement la classe des requêtes sécurisées dans (requêtes de premier ordre plus opérateur de comptage): SQL capture les requêtes sécurisées. (En d'autres termes, toutes les requêtes SQL ont une complexité dans , et tous les problèmes dans peuvent être exprimés comme une requête SQL.)Q ( F O ( C O U N T ) ) Q ( F O ( C O U N T ) )
Sur la base de ce résultat, d'un point de vue théorique, il existe de nombreux problèmes intéressants qui peuvent être résolus efficacement mais ne sont pas exprimables en SQL. Une extension de SQL encore efficace semble donc intéressante. Voici donc ma question:
Existe-t-il une extension de SQL (implémentée et utilisée dans l'industrie ) qui capture (c'est-à-dire qui peut exprimer toutes les requêtes calculables en temps polynomial et aucune autre)?
Je veux un langage de requête de base de données qui remplit les trois conditions. Il est facile de définir une extension qui étendrait SQL et capturerait . Mais ma question est de savoir si une telle langue a un sens du point de vue pratique, donc je veux une langue qui est utilisée dans la pratique. Si ce n'est pas le cas et qu'il n'y a pas un tel langage, alors je voudrais savoir s'il y a une raison qui rend un tel langage inintéressant du point de vue pratique? Par exemple, les requêtes qui augmentent dans la pratique sont-elles généralement assez simples pour qu'il n'y ait pas besoin d'une telle langue?