Во-первых, выразительная сила SQL менее очевидна, чем кажется. Агрегирующие, групповые и арифметические особенности SQL оказываются весьма неуловимыми. Априори кажется возможным, что при некотором кодировании алгебраических операторов, использующих эти функции, можно фактически выразить достижимость в SQL. Оказывается, это не совсем так для SQL-92 , который является «локальным».
Это означает, что для SQL-92 требуется расширение для захвата PTIME, и такое, которое позволяет результирующему языку быть «нелокальным».
Однако разрешение упорядоченных структур и реалистично ограниченной арифметики доказывает, что SQL-92 не может выразить достижимость, будет означать, что равномерное и, следовательно, вероятно, будет довольно трудным. (Можно утверждать, что в типах данных в SQL-92 всегда существует естественное линейное упорядочение, и поэтому можно предположить, что базовые структуры упорядочены.)TC0⊊NLOGSPACE
Затем ландшафт снова изменился, поскольку SQL: 1999 (SQL3) включал рекурсию. Таким образом, SQL: 1999 кажется, по крайней мере, столь же выразительным, как и логика с фиксированной запятой при подсчете (хотя я думаю, что детали могут снова быть довольно сложными, включая проблему порядка). Сделали ли новые конструкции логику более выразительной, чем требуется для захвата PTIME, я не знаю, и для установления этого потребуются некоторые исследования. Тем временем дальнейшие изменения были внесены в 2003 , 2006 , 2008 и 2011 годах.(будучи документами ISO, только проекты доступны бесплатно). Эти изменения добавили множество новых функций, в том числе XQuery как «часть» SQL-запросов. Я предполагаю, что «SQL» теперь более выразителен, чем требуется для захвата PTIME, но для этого требуется кодирование, которое может потребовать больших и довольно неестественных запросов, которые могут не поддерживаться в реальных системах.
Так что я думаю, что есть доказательства того, что нет промышленного расширения SQL, которое бы точно захватывало PTIME , отвечая на ваш вопрос нечетко. Короче говоря, промышленные расширения довольно мощные и могут уже иметь перегруженный PTIME. Если это правда, что SQL: 1999 уже достаточно мощный, чтобы захватить хотя бы PTIME, то также неясно, что на самом деле означает «SQL» в вашем вопросе, поскольку нужно было бы определить «SQL» для обозначения версии, предшествующей SQL: 1999.
Наконец, опрос Гроэ о поиске логики захвата PTIME (также упоминаемой Яномой) показывает, что захват PTIME не только сложен, если у нас нет линейного порядка в качестве части языка, но и доказательство того, что такой логики не может быть, также подразумевать .P≠NP