Sembra che nei linguaggi di query popolari per i database relazionali sia possibile creare query che richiederanno molte risorse per rispondere. In pratica, gli amministratori del database gestiscono ciò limitando la quantità di memoria per query e verificando eventuali query di lunga durata in caso di rallentamento del database. Sembra piuttosto ad-hoc, esiste una soluzione TCS a questo?
Esistono linguaggi di query che possono implementare solo query efficienti?
Se non ci sono tali lingue, c'è una ragione teorica per questo?
Alcuni motivi per cui potrei aspettarmi che esistano cose del genere o almeno hanno senso:
- abbiamo linguaggi di programmazione appositamente progettati per implementare solo calcoli efficienti (di solito con una logica restrittiva nel loro sistema di tipi)
- i linguaggi di query popolari (come SQL) sono già ispirati dalla logica, quindi non sembra un tratto per gli utenti di database considerare logiche più restrittive.
- un utente di database non dannoso tenta già di preparare query che vengono eseguite rapidamente, quindi dovremmo aspettarci che questi linguaggi di query più restrittivi ostacolino solo gli utenti malintenzionati.
Questa domanda si ispira all'intersezione di due domande precedenti: