BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

你对SQL的认识可能是错的

| 作者 谢丽 关注 9 他的粉丝 发布于 2015年10月16日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Lukas Eder是jOOQ母公司Data Geekery GmbH的创建者兼首席执行官。关于SQL,他经常听到一些错误的观点,比如:

SQL已经老化。我们为什么不使用更现代的技术?

像汇编一样,SQL是低级语言。你是喜欢使用汇编还是Java呢?类似地,你是喜欢使用SQL还是Hibernate呢?

近日,他发表了一篇博文,逐一反驳了类似的偏见和谬论。

谬论1:SQL已经老化

Lukas认为,许多人之所以认为SQL已经老化,是因为它是一项已经超过了30年的ISO/IEC标准,而且是以更为古老的关系代数学为基础。但他指出,知名网站Use The Index, Luke的作者Markus Winand已经很好地展示了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作为查询语言,Mark Madsen已经在Strata Conf大会上做了很好地展示

谬论4:数据库不适合编写业务逻辑

在Lukas看来,这是最大的谬论,因为事实正好相反,数据库是进行统计运算的最佳之处。它有许多信息可以帮助运算,而且是在内存中进行。它还有约束、索引和其它各种元数据来帮助优化查询。这种优化使用纯Java代码可能是无法实现的。另外,这种方法还有一个巨大的优势,就是业务逻辑在一个地方实现,却可以供多个应用程序使用。

此外,Lukas还以窗口函数为例说明了SQL的简洁性,并指出,窗口函数及其它许多很棒的SQL特性自SQL:2003起已经实现标准化,使用这些特性,无需担心被数据库供应商锁定。

最后,Lukas总结道:

  • SQL能做的事比你知道的要多许多;
  • SQL比许多其它技术都要先进得多;
  • SQL是实现业务逻辑的理想之地。

感谢魏星对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

非常正确 by Yuan Zhang

SQL是程序员的一大宝库

SQL不是不能写业务逻辑,而是不好管理 by Chen Island

SQL不是不能写业务逻辑,而是不好管理。SQL需要在软件工程、服务化这方面有更好的支持。

sql写业务 by 黄 锦成

有挺多人都在sql中写业务,但是看得头大,不好维护

认为“SQL已经老化”大概是被NoSQL这个名词误解的 by Wong Peter

NoSQL是Not only SQL的缩写,可往往会被误解为No SQL。其实NoSQL技术应该是和Reational对立,指的是no-reational。SQL语言可以构建在关系型/非关系型数据库之上的。

Re: 认为“SQL已经老化”大概是被NoSQL这个名词误解的 by Wei Mikey

赞同

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

5 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT