Il semble que dans les langages de requête populaires pour les bases de données relationnelles, il est possible de créer des requêtes qui nécessiteront beaucoup de ressources pour répondre. En pratique, les administrateurs de base de données gèrent cela en limitant la quantité de mémoire par requête et en recherchant les requêtes de longue durée en cas de ralentissement dans la base de données. Cela semble plutôt ponctuel, existe-t-il une solution TCS à cela?
Existe-t-il des langages de requête qui ne peuvent implémenter que des requêtes efficaces?
S'il n'y a pas de telles langues, y a-t-il une raison théorique à cela?
Certaines raisons pour lesquelles je pourrais m'attendre à ce que ce genre de choses existent ou au moins aient un sens:
- nous avons des langages de programmation qui sont spécifiquement conçus pour implémenter uniquement des calculs efficaces (généralement en ayant une logique restrictive dans leur système de type)
- les langages de requête populaires (tels que SQL) sont déjà inspirés par la logique, il ne semble donc pas exagéré pour les utilisateurs de bases de données de considérer des logiques plus restrictives.
- un utilisateur de base de données non malveillant essaie déjà de préparer des requêtes qui s'exécutent rapidement, nous devons donc nous attendre à ce que ces langages de requête plus restrictifs ne gênent que les utilisateurs malveillants.
Cette question est inspirée de l'intersection de deux questions précédentes: