Альтернативы SQL? (Альтернативные языки декларативных запросов для реляционных баз данных?)

Я только что наткнулся на HTSQL, что напомнило мне вопрос, который я задал себе вопрос: какие альтернативные декларативные языки запросов для реляционных баз данных там? Для всех жалоб, которые существуют против SQL, я ожидал бы многих, но Googling был бесплоден.

Различные языки программирования имеют понимание списка/монады, но я более конкретно рассматриваю что-то с реальной реализацией для реляционных баз данных. Было бы также полезно отметить их основные различия по сравнению с SQL (читаемость, модульность, сжатие и т.д.). Реализация также должна быть открытым исходным кодом, и в идеале я могу фактически использовать ее против существующей РСУБД, например. Postgresql.

Ответ 1

Вот мой полный список, со ссылками на иллюстративный пример кода (здесь были перенесены примеры в мой вопрос):

  • Muldis D: Тесный синтаксис, вдохновленный Perl; разработанный для практического полного сценария.

  • HTSQL: очень короткая; оптимизирован для подключения внешних ключей; несколько ограниченная выразительность.

  • MDX:

    Язык MultiDimensional eXpressions (MDX) предоставляет специализированный синтаксис для запросов и манипулирования многомерными данными, хранящимися в кубах OLAP. [1] Хотя некоторые из них можно перевести в традиционный SQL, часто требуется синтез неуклюжих выражений SQL даже для очень простых выражений MDX. MDX был охвачен широким большинством поставщиков OLAP и стал стандартом де-факто для OLAP-систем.

    Я думаю об этом как о сводных таблицах над РСУБД. Толкаемый MS (не уверен, что он все еще толкается - кажется старым сейчас). Pentaho Mondrian - это реализация, которая работает с любым поставщиком JDBC.

  • PIQL: подпрограмма языка, предсказуемая для производительности SQL; предназначенные для обработки транзакций; почти оставил это, пока я не заметил Rails-реализацию, хотя он не выглядит полным, поэтому я могу удалить этот

  • Свиньи: брак SQL, императивный стиль и вложенная модель данных; из-за характера базовой структуры обработки (Map-Reduce/Hadoop), ограниченной эквитионами; не для реляционных баз данных, поэтому я должен удалить это:)

  • LINQ to SQL (на самом деле это не так, как в основном встроенный SQL, но что, черт возьми): ИМО более естественный порядок синтаксиса, чем SQL; также поддерживает вложенную модель данных

Ответ 2

Пример списка доступных языков запросов. Wikipedia:

http://en.wikipedia.org/wiki/Query_language

Хотя это не все реляционные базы данных.

Я перечислю QUEL, который был выпущен SQL, но все еще используется с СУБД Ingres. Википедия говорит, что она более "нормализована", чем SQL, но нужна цитата.;)

Ответ 3

Ян, есть два отличных альтернативных языка, которые вы можете использовать - LINQ и CQuel.

LINQ - это прокси-сервер Microsoft, в то время как CQuel является открытым исходным кодом.

Через CQuel можно также подключиться к MySQL и MSSQL.

CQuel - все новое.

Вы можете скачать CQuel по ссылке ниже: Веб-сайт CQuel