SQL已经老化。我们为什么不利用更现代的技能? 像汇编一样,SQL是初级语言。你是喜欢利用汇编照旧Java呢?雷同地,你是喜欢利用SQL照旧Hibernate呢?
克日,他颁发了一篇博文,逐一辩驳了雷同的成见和谬论。
谬论1:SQL已经老化
Lukas认为,很多人之所以认为SQL已经老化,是因为它是一项已经高出了30年的ISO/IEC尺度,并且是以更为陈腐的干系代数学为基本。但他指出,知名网站UseTheIndex,Luke的作者MarkusWinand已经很好地展示了SQL这些年的成长。现代SQL已经可以做很多超出通用编程语言开拓人员料想的事。
谬论2:SQL是初级语言
Lukas并不认为SQL是同汇编一样的初级语言。相反,他认为SQL是主流语言中第一流的,因为SQL是独一真正风行的第四代编程语言。并且,SQL照旧独一真正风行的声明式编程语言。利用SQL,只需要汇报呆板需要什么数据,如何获取这些数据则由查询阐明器完成。
谬论3:NoSQL更现代
“NoSQL比SQL更现代”,Lukas认为,这是NoSQL数据库供给商的宣传之词。他指出,假如(条理化)的JSON数据存储就是现代的话,那么SQL并不落伍。很多干系型数据库提供商都已经集成了JSON。并且,纵然是对半布局化数据而言,SQL仍然是最好的查询和数据批处理惩罚语言。实际上,,SQL就是针对SQL呈现之前的杂乱而设计的。关于这一点,感乐趣的读者可以阅读《Codd的干系型概念——NoSQL兜了个圈又回到了原点?》。现如今,很多大数据数据库提供商都押宝SQL作为查询语言,MarkMadsen已经在StrataConf大会上做了很好地展示。
谬论4:数据库不适合编写业务逻辑
在Lukas看来,这是最大的谬论,因为事实正好相反,数据库是举办统计运算的最佳之处。它有很多信息可以辅佐运算,并且是在内存中举办。它尚有约束、索引和其它各类元数据来辅佐优化查询。这种优化利用纯Java代码大概是无法实现的。别的,这种要领尚有一个庞大的优势,就是业务逻辑在一个处所实现,却可以供多个应用措施利用。
另外,Lukas还以窗口函数为例说明白SQL的简捷性,并指出,窗口函数及其它很多很棒的SQL特性自SQL:2003起已经实现尺度化,利用这些特性,无需担忧被数据库供给商锁定。
最后,Lukas总结道:
SQL能做的事比你知道的要多很多;
SQL比很多其它技能都要先进得多;
SQL是实现业务逻辑的抱负之地。