Похоже, что в популярных языках запросов для реляционных баз данных можно создавать запросы, для ответа на которые потребуется много ресурсов. На практике администраторы базы данных управляют этим, ограничивая объем памяти на запрос и проверяя наличие длительных запросов на предмет замедления в базе данных. Это кажется довольно случайным, есть ли решение TCS для этого?
Существуют ли языки запросов, которые могут реализовывать только эффективные запросы?
Если таких языков нет, есть ли теоретическая причина для этого?
Некоторые причины, по которым я могу ожидать, что подобные вещи существуют или хотя бы имеют смысл:
- у нас есть языки программирования, специально разработанные для реализации только эффективных вычислений (обычно с помощью некоторой ограничительной логики в их системе типов)
- популярные языки запросов (такие как SQL) уже основаны на логике, поэтому пользователям баз данных не стоит задумываться над более строгой логикой.
- пользователь базы данных, не являющийся вредоносным, уже пытается подготовить запросы, которые выполняются быстро, поэтому следует ожидать, что эти более строгие языки запросов будут препятствовать только злонамеренным пользователям.
Этот вопрос вдохновлен пересечением двух предыдущих вопросов: