Tampaknya dalam bahasa kueri populer untuk basis data relasional, dimungkinkan untuk membuat kueri yang akan membutuhkan banyak sumber daya untuk menjawab. Dalam praktiknya, admin basis data mengelola ini dengan membatasi jumlah memori per kueri , dan memeriksa kueri yang telah berjalan lama jika ada perlambatan dalam database. Ini sepertinya agak ad-hoc, apakah ada solusi TCS untuk ini?
Apakah ada bahasa permintaan yang hanya dapat mengimplementasikan permintaan efisien?
Jika tidak ada bahasa seperti itu, apakah ada alasan teoretis untuk ini?
Beberapa alasan mengapa saya mengharapkan hal-hal semacam ini ada atau setidaknya masuk akal:
- kami memiliki bahasa pemrograman yang secara khusus dirancang untuk hanya menerapkan perhitungan efisien (biasanya dengan memiliki beberapa logika restriktif dalam sistem tipenya)
- bahasa query populer (seperti SQL) sudah terinspirasi oleh logika, sehingga tidak tampak sebagai peregangan bagi pengguna database untuk mempertimbangkan logika yang lebih ketat.
- pengguna basis data yang tidak jahat sudah mencoba menyiapkan kueri yang dieksekusi dengan cepat, jadi kita harus berharap bahasa query yang lebih ketat ini hanya menghambat pengguna jahat.
Pertanyaan ini terinspirasi oleh persimpangan dua pertanyaan sebelumnya: