SQL 已死,但 SQL 將永存!
在 SQL 被引入的 47 年中,它經歷了許多資料庫的誕生和消亡,也經歷了許多資料處理方式的誕生和消亡。
“SQL是一種只有它自己的力量才能超越它的神秘手段。”——Lukas Eder
宣告性的語言和流程(而不是程式性的) 使語言可組合以幫助輕鬆編寫複雜的查詢 和Edger F Codd開發的關係模型共同工作
現在,NoSQL資料庫相關的SQL專案要比SQL資料庫的專案多。
SQL 為何會成功?
宣告性:你只需要宣告輸出,查詢引擎就會找出執行查詢的最佳方式。最佳化器,特別是1979年Pat Selinger等人發明的基於成本的最佳化器,幫助持續地改進效能。這為每個新進入者提供了一個很高的標準。最近一篇關於Apache Hive的論文就是一個複雜性和完善涉及的例子為什麼SQL如此成功? SQL不僅用於“查詢”,還用於更新資料、執行事務。儲存過程,UDF透過將過程語言與宣告性SQL相結合來擴充套件訪問範圍。 SQL具有可塑性。它已經多次標準化,每次都會新增一本功能齊全的書,一個充滿語法的商店,以及一個充滿關鍵詞的詞典。當然,並非所有的SQL都是相同的。即使是RDBMS上的傳統SQL實現也不完全相容,除非您小心地編寫SQL使其相容。透過所有這些,SQL的原始精神得以保留。SQL的一個進化的例子是SQL++。Don Chamberlin和Mike Carey教授討論了支援複雜資料模型的需求,使使用者和開發人員可以輕鬆訪問JSON中的資料。Don寫的書《SQL++ for SQL users:A Tutorial》介紹了SQL++的最新發展,SQL++這種語言是為靈活的JSON資料模型上的資料處理而設計的,它保持了與SQL的相容。 就像它所借用的英語一樣,SQL對新資料型別、訪問方法和用例的新思想和擴充套件持開放態度。 SQL與資料表示的獨立性使其可以用於非關係資料:CSV, JSON和所有大資料格式。有些人把關係模型表示的剛性和SQL的剛性混為一談。實際上,對於任何給定的Schema,SQL允許你對任何資料格式執行select-join-group-aggregate-project操作
評估SQL支援
找出每個工作負載的特徵和目標。例如,互動式應用程式,或互動式分析,或批次分析,或BI工作負載等等。 支援的宣告反映了操作能力。 在表示式(標量、聚合、布林值)、聯接(內聯、左聯/右聯/全聯)、子查詢、派生表、排序和分頁(LIMIT / OFFSET)方面的語言能力。 索引:沒有正確索引的SQL只是一個圖靈機器原型。 最佳化器:查詢重寫,選擇正確的訪問路徑,建立最佳執行路徑是使得SQL語言成為成功的第4代語言的原因。有些具有基於規則的最佳化器,有些具有基於成本的最佳化器,而有些則兩者都有。評估最佳化器的質量至關重要。典型的基準(TPC-C、TPC-DS、YCSB、YCSB-JSON)在這裡對你沒有幫助。 正如我們常說:“資料庫有三個重要方面:效能、效能和效能”。測量工作負載的效能很重要。YCSB和擴充套件的YCSB-JSON將使評估更容易。 SDK:豐富的SDK和語言支援,加快你的開發速度。 BI工具支援:對於大型資料分析,透過標準資料庫連線驅動程式來支援BI工具通常非常重要。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545820/viewspace-2668449/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL已死? - thenewstackSQL
- 程式設計將死,程式設計師永存程式設計師
- SQL Server死鎖SQLServer
- sql server死鎖的問題SQLServer
- [zt] sql server 死鎖總結SQLServer
- Flash已死,但這些古老的Flash遊戲還在努力活著遊戲
- [翻譯]:SQL死鎖-阻塞探測SQL
- 減少SQL Server死鎖的方法SQLServer
- Web已死Web
- MVC模式已死MVC模式
- 通過 sysprocesses 解決Sql死鎖問題SQL
- [zt] Sql Server死鎖的查詢和解除SQLServer
- SATA介面已死:PCI-E SSD將成市場主流
- 面試官:請用SQL模擬一個死鎖面試SQL
- 解決SQL2005死鎖問題SQL
- MVC 在前端已死?MVC前端
- CrunchBang Linux 已死!!!Linux
- 技術面試已死面試
- 資料庫已死資料庫
- 估算SQL已經執行了多少時間SQL
- SQL Sever 7日誌檔案已滿SQL
- sql 中將多列變成行SQL
- 掌握SQL Monitor這些特性,SQL最佳化將如有神助!SQL
- 在 SQL Server 中查詢活動連線和死鎖SQLServer
- 無法復現的“慢”SQL《死磕MySQL系列 八》MySql
- SQL 中的一些小巧但常用的關鍵字SQL
- 已將資料庫上下文更改為 'distribution'。 (Microsoft SQL Server,錯誤: 21613)資料庫ROSSQLServer
- DevOps已死?2024年的DevOps將如何發展dev
- SQL Server如何查詢鎖已經kill lockSQLServer
- Spark已死?DBT會替代?Spark
- Web已死 Internet永生Web
- 執行緒池已死執行緒
- “Java已死”的簡史Java
- 如何透過sid查詢造成死鎖的sql語句,並殺死會話SQL會話
- 如何通過sid查詢造成死鎖的sql語句,並殺死會話SQL會話
- 如何將模組化應用於 SQLSQL
- Google Buzz將死?Go
- ----------------SQL Server2000中死鎖經驗總結 ---------------SQLServer