SQL已經老化。我們?yōu)槭裁床皇褂酶F代的技術?
像匯編一樣,SQL是低級語言。你是喜歡使用匯編還是Java呢?類似地,你是喜歡使用SQL還是Hibernate呢?
LukasEder是jOOQ母公司DataGeekeryGmbH的創(chuàng)建者兼首席執(zhí)行官。關于SQL,他經常聽到一些錯誤的觀點,比如:
-
SQL已經老化。我們?yōu)槭裁床皇褂酶F代的技術?
-
像匯編一樣,SQL是低級語言。你是喜歡使用匯編還是Java呢?類似地,你是喜歡使用SQL還是Hibernate呢?
近日,他發(fā)表了一篇博文,逐一反駁了類似的偏見和謬論。
謬論1:SQL已經老化
Lukas認為,許多人之所以認為SQL已經老化,是因為它是一項已經超過了30年的ISO/IEC標準,而且是以更為古老的關系代數學為基礎。但他指出,知名網站UseTheIndex,Luke的作者MarkusWinand已經很好地展示了SQL這些年的發(fā)展?,F代SQL已經可以做許多超出通用編程語言開發(fā)人員意料的事。
謬論2:SQL是低級語言
Lukas并不認為SQL是同匯編一樣的低級語言。相反,他認為SQL是主流語言中最高級的,因為SQL是唯一真正流行的第四代編程語言。而且,SQL還是唯一真正流行的聲明式編程語言。使用SQL,只需要告訴機器需要什么數據,如何獲取這些數據則由查詢分析器完成。
謬論3:NoSQL更現代
“NoSQL比SQL更現代”,Lukas認為,這是NoSQL數據庫供應商的宣傳之詞。他指出,如果(層次化)的JSON數據存儲就是現代的話,那么SQL并不落后。許多關系型數據庫提供商都已經集成了JSON。而且,即使是對半結構化數據而言,SQL仍然是最好的查詢和數據批處理語言。實際上,SQL就是針對SQL出現之前的混亂而設計的。關于這一點,感興趣的讀者可以閱讀《Codd的關系型觀點——NoSQL兜了個圈又回到了原點?》?,F如今,許多大數據數據庫提供商都押寶SQL作為查詢語言,MarkMadsen已經在StrataConf大會上做了很好地展示。
謬論4:數據庫不適合編寫業(yè)務邏輯
在Lukas看來,這是最大的謬論,因為事實正好相反,數據庫是進行統(tǒng)計運算的最佳之處。它有許多信息可以幫助運算,而且是在內存中進行。它還有約束、索引和其它各種元數據來幫助優(yōu)化查詢。這種優(yōu)化使用純Java代碼可能是無法實現的。另外,這種方法還有一個巨大的優(yōu)勢,就是業(yè)務邏輯在一個地方實現,卻可以供多個應用程序使用。
此外,Lukas還以窗口函數為例說明了SQL的簡潔性,并指出,窗口函數及其它許多很棒的SQL特性自SQL:2003起已經實現標準化,使用這些特性,無需擔心被數據庫供應商鎖定。
最后,Lukas總結道:
SQL能做的事比你知道的要多許多;
SQL比許多其它技術都要先進得多;
SQL是實現業(yè)務邏輯的理想之地。
河南億恩科技股份有限公司(prubsntakaful.com)始創(chuàng)于2000年,專注服務器托管租用,是國家工信部認定的綜合電信服務運營商。億恩為近五十萬的用戶提供服務器托管、服務器租用、機柜租用、云服務器、網站建設、網站托管等網絡基礎服務,另有網總管、名片俠網絡推廣服務,使得客戶不斷的獲得更大的收益。
服務器/云主機 24小時售后服務電話:
0371-60135900
虛擬主機/智能建站 24小時售后服務電話:
0371-55621053
網絡版權侵權舉報電話:
0371-60135995
服務熱線:
0371-60135900