SQL四部曲: SQL的未來在何方? | Blog

文章推薦指數: 80 %
投票人數:10人

筆者認為關聯式資料庫(Relational Database)會繼續廣泛使用,世界上大多數 ... 在現今大數據時代之前,SQL一直都是數據查詢語言的標準,因為絕大多數 ... MicroMasterFull-timeProfessionalProfessionalMobileAppDevelopment-FlutterProfessionalDataSciencePart-timeFlexCoursesPart-timeTeckyCodeFreeVideosFreeEventsMediaBlogAboutUsEnglish繁體中文English繁體中文SQL四部曲:SQL的未來在何方?GordonLau2019-10-25先前三篇關於SQL的文章,分別講述了SQL的歷史、功能、誤解,這一篇筆者將會大膽預測,預測SQL的未來發展的可能方向。

到底SQL在未來會是比現在更廣泛使用,成為每一個數據分析師的必備工具?還是被另外一種語言所取代?還是關聯式資料庫不會再受歡迎呢?關聯式資料庫不會被取代筆者認為關聯式資料庫(RelationalDatabase)會繼續廣泛使用,世界上大多數資料本質上都有關聯性質,一個教師要教多個學生,一個學生由多個教師身上學習,學生跟教師就成為了一個多對多關係(Many-to-ManyRelation);一夫一妻制,在資料庫表示就是一對一關係(One-to-OneRelation)。

關聯式資料基本上無處不在,這亦是為何關聯式資料庫出現了四十年還是歷久不衰的主要原因。

SQL會支援愈來愈多非傳統RDBMS的功能現今SQL已經支援了不少原本NoSQL才支援的功能。

今年九月,國際制定數據庫語言標準的組織正為圖資料庫(GraphDatabase)設計一種名為GQL的語言,全名為(GraphQueryLanguage)。

GQL的語法的靈感從何而來呢?只要看看一段PGQL(一種GQL考慮整合的圖資料庫查詢語言)的例子就可以知道。

Source很明顯的是,GQL看起來很像SQL,其實就是由SQL的語法出發,加上本身不是RDBMS的功能,去表達與關聯式資料庫迥異的概念。

SQL在大數據世界會成為數據查詢語言之標準在現今大數據時代之前,SQL一直都是數據查詢語言的標準,因為絕大多數數據本身都是儲存在SQL資料庫之內;及至大數據時代,大數據工具諸如ApacheHadoop、ApacheSpark亦開始有廣泛使用。

當這些工具廣泛使用後,就出現了一個實在的問題,不同工具的查詢方法截然不同,令開發者相當不方便。

SparkSQL正好於這樣的情況下開發,令開發者只需撰寫SQL,就可以查詢儲存之數據。

Googlecloudspanner是另一個例子,一開始CloudSpanner亦不支援SQL,但Google的工程師很快發現沒有熟悉的SQL,查詢數據不太方便,因此後來又加上了CloudSpannerSQL去統一資料查詢的方法。

SELECTl.LOCATION[offset(0)].* FROM(SELECTARRAY>[ ("Seattle","Washington"), ("Phoenix","Arizona")]ASlocation)ASl; +---------+------------+ |city|state| +---------+------------+ |Seattle|Washington| +---------+------------+SourceQueryBuilder的程式庫將慢慢取代ORM成為框架的基本部件上一篇提過ORM的一些問題,亦由於SQL的功能日漸方便完善,開發者不再需要如以前般需要使用ORM.因此筆者預計 愈來愈多網站框架(WebFrameworks)會開始將QueryBuilder作為基本部件。

更甚者,可以像.NET平台的LINQ一樣,像SQL放在代碼之中,令SQL與代碼完全整合。

//Query#1. Listnumbers=newList(){5,4,1,3,9,8,6,7,2,0}; //Thequeryvariablecanalsobeimplicitlytypedbyusingvar IEnumerablefilteringQuery= fromnuminnumbers wherenum<3||num>7 selectnum; //Query#2. IEnumerableorderingQuery= fromnuminnumbers wherenum<3||num>7 orderbynumascending selectnum; //Query#3. string[]groupingQuery={"carrots","cabbage","broccoli","beans","barley"}; IEnumerable>queryFoodGroups= fromitemingroupingQuery groupitembyitem[0];Source由Microsoft的例子可見,LINQ與C#融合得非常好。

可以看成是未來其他語言內嵌SQL的發展方向。

總結綜合上面所有預測,相信大家都知道筆者對SQL的前景相當樂觀,其實不只筆者,還有不少其他作者都抱持類似看法,因此想開學習的朋友,就不用再猶豫了!CommentsReadMoreSQL二部曲:五件事,你不知道SQL勝任有餘SQL三部曲:你不需要ORMSQL首部曲:NoSQL?No!SQL!PrivacyPolicy©[email protected]/TeckyAcademy+85297256400



請為這篇文章評分?