SQL 已死,但 SQL 將永存!

“SQL是一種只有它自己的力量才能超越它的神秘手段?!薄狶ukas Eder
聲明性的語言和流程(而不是程序性的) 使語言可組合以幫助輕松編寫復雜的查詢 和Edger F Codd開發(fā)的關系模型共同工作
現(xiàn)在,NoSQL數(shù)據(jù)庫相關的SQL項目要比SQL數(shù)據(jù)庫的項目多。

聲明性:你只需要聲明輸出,查詢引擎就會找出執(zhí)行查詢的最佳方式。優(yōu)化器,特別是1979年Pat Selinger等人發(fā)明的基于成本的優(yōu)化器,幫助持續(xù)地改進性能。這為每個新進入者提供了一個很高的標準。最近一篇關于Apache Hive的論文就是一個復雜性和完善涉及的例子為什么SQL如此成功? SQL不僅用于“查詢”,還用于更新數(shù)據(jù)、執(zhí)行事務。存儲過程,UDF通過將過程語言與聲明性SQL相結(jié)合來擴展訪問范圍。 SQL具有可塑性。它已經(jīng)多次標準化,每次都會添加一本功能齊全的書,一個充滿語法的商店,以及一個充滿關鍵詞的詞典。當然,并非所有的SQL都是相同的。即使是RDBMS上的傳統(tǒng)SQL實現(xiàn)也不完全兼容,除非您小心地編寫SQL使其兼容。通過所有這些,SQL的原始精神得以保留。SQL的一個進化的例子是SQL++。Don Chamberlin和Mike Carey教授討論了支持復雜數(shù)據(jù)模型的需求,使用戶和開發(fā)人員可以輕松訪問JSON中的數(shù)據(jù)。Don寫的書《SQL++ for SQL users:A Tutorial》介紹了SQL++的最新發(fā)展,SQL++這種語言是為靈活的JSON數(shù)據(jù)模型上的數(shù)據(jù)處理而設計的,它保持了與SQL的兼容。 就像它所借用的英語一樣,SQL對新數(shù)據(jù)類型、訪問方法和用例的新思想和擴展持開放態(tài)度。 SQL與數(shù)據(jù)表示的獨立性使其可以用于非關系數(shù)據(jù):CSV, JSON和所有大數(shù)據(jù)格式。有些人把關系模型表示的剛性和SQL的剛性混為一談。實際上,對于任何給定的Schema,SQL允許你對任何數(shù)據(jù)格式執(zhí)行select-join-group-aggregate-project操作。
找出每個工作負載的特征和目標。例如,交互式應用程序,或交互式分析,或批量分析,或BI工作負載等等。 支持的聲明反映了操作能力。 在表達式(標量、聚合、布爾值)、聯(lián)接(內(nèi)聯(lián)、左聯(lián)/右聯(lián)/全聯(lián))、子查詢、派生表、排序和分頁(LIMIT / OFFSET)方面的語言能力。 索引:沒有正確索引的SQL只是一個圖靈機器原型。 優(yōu)化器:查詢重寫,選擇正確的訪問路徑,創(chuàng)建最佳執(zhí)行路徑是使得SQL語言成為成功的第4代語言的原因。有些具有基于規(guī)則的優(yōu)化器,有些具有基于成本的優(yōu)化器,而有些則兩者都有。評估優(yōu)化器的質(zhì)量至關重要。典型的基準(TPC-C、TPC-DS、YCSB、YCSB-JSON)在這里對你沒有幫助。 正如我們常說:“數(shù)據(jù)庫有三個重要方面:性能、性能和性能”。測量工作負載的性能很重要。YCSB和擴展的YCSB-JSON將使評估更容易。 SDK:豐富的SDK和語言支持,加快你的開發(fā)速度。 BI工具支持:對于大型數(shù)據(jù)分析,通過標準數(shù)據(jù)庫連接驅(qū)動程序來支持BI工具通常非常重要。
逆鋒起筆是一個專注于程序員圈子的技術平臺,你可以收獲最新技術動態(tài)、最新內(nèi)測資格、BAT等大廠的經(jīng)驗、精品學習資料、職業(yè)路線、副業(yè)思維,微信搜索逆鋒起筆關注!
記得點「贊」和「在看」 愛你們
評論
圖片
表情

