SQL的替代方案?(关系数据库的替代性声明查询语言?)

14

我刚刚发现了HTSQL,这让我想起了一个问题:是否存在替代关系数据库声明式查询语言的选择?尽管SQL存在许多抱怨,但我期望会有很多替代方案,但是谷歌搜索并没有产生什么结果。

各种编程语言都有列表/单子(monad)综合功能,但我更具体地寻找具有实际关系数据库实现的内容。同时,突出它们与SQL的主要区别(可读性、模块化、简洁性等)。实现还需要是开源的,最好能够针对现有的RDBMS(例如Postgresql)实际使用。


3
就像在其他许多网站上所说的那样,SQL是一种糟糕的语言。它很难编写、分析和处理,甚至没有标准化。关系代数是美妙的,但很难透过SQL的混浊看到这种美。 - Michael Lorton
@Yang:你是指“LINQ to SQL”吗?这不是唯一的“LINQ”。 - John Saunders
@John Saunders:是的,我指的是“LINQ to SQL”。再次强调,我知道它不是唯一的提供程序;它是一个通用的表达式子语言,具有多个后端是无关紧要的。 - Yang
@Yang:这怎么不相关呢?一个提供程序可以被认为是嵌入式SQL,而其他所有提供程序都不行。 - John Saunders
1
@Yang:LINQ to Entities 怎么样? - John Saunders
显示剩余6条评论
3个回答

5

这是我的完整列表,附有指向说明性示例代码的链接(将最初在我的问题中的示例移至此处):

  • Muldis D:简洁的 Perl 风格语法;旨在成为一个实用的全面脚本语言。

  • HTSQL:非常简洁;针对外键连接进行了优化;表达能力有些有限。

  • MDX

    多维表达式(MDX)语言提供了一种专门的语法,用于查询和操作存储在 OLAP 立方体中的多维数据。[1] 虽然有些可以将其翻译成传统的 SQL,但即使对于非常简单的 MDX 表达式,也经常需要合成笨拙的 SQL 表达式。MDX 已被广大 OLAP 供应商所接受,并已成为 OLAP 系统的事实标准。

    我认为它就像在关系型数据库管理系统上的数据透视表。由 MS 推动(不确定它是否仍在推动 - 看起来很老)。 Pentaho Mondrian 是一个实现,可以与任何 JDBC 提供程序一起使用。

  • PIQL:SQL 的“性能可预测”语言子集;设计用于事务处理;几乎要将其删除,直到我注意到有一个Rails 实现,虽然它看起来不完整。

  • Pig:SQL、命令式风格和嵌套数据模型的结合;由于底层处理框架(Map-Reduce/Hadoop)的特性,仅限于等值连接;不适用于关系型数据库,因此应将其删除 :)

  • LINQ to SQL(这并不算数,因为它主要是嵌入式 SQL,但是无所谓):在我看来,比 SQL 更自然的语法顺序;还支持嵌套数据模型


嗨。最终你选了哪个?为什么?为什么不选?这些中有哪些适用于Oracle数据库?谢谢! - Jesús Zazueta

1

维基百科提供的查询语言示例列表:

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

虽然并非所有这些都是针对关系型数据库的。

我将列出QUEL,它被SQL取代了,但仍在Ingres DBMS中使用。维基百科称它比SQL更“规范化”,但需要引用。 ;)


是的,大多数不是关系型的,大多数我不能在(例如)Postgresql上运行,同时这只是一个不完整的列表。它也没有一致地突出与SQL的主要区别。 - Yang
当然可以,但我想不出你可以在(例如)Postgresql 上运行的任何东西。我已经在我的答案中添加了QUEL。 - Brandon Frohbieter
我列出了三个:HTSQL、LINQ和PIQL(据说可以在MySQL上运行)。 - Yang

-1

杨,你可以使用两种很棒的替代语言 - LINQ 和 CQuel。

LINQ 是微软专有的,而 CQuel 是开源的。

通过 CQuel,你可以连接到 MySQL 和 MSSQL。

CQuel 是全新的。

你可以从以下链接下载 CQuel: CQuel 网站


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接