我最近遇到了由負責SQLite的開發人員D. Richard Hipp編寫的http://www.fossil-scm.org/index.html/doc/tip/www/theory1.wiki。SQL是NoSQL數據庫世界的'彙編'嗎?
它讓我思考,是Fossil唯一使用SQL的NoSQL數據庫嗎?
其他人是否使用SQL作爲「高級腳本語言」?
我最近遇到了由負責SQLite的開發人員D. Richard Hipp編寫的http://www.fossil-scm.org/index.html/doc/tip/www/theory1.wiki。SQL是NoSQL數據庫世界的'彙編'嗎?
它讓我思考,是Fossil唯一使用SQL的NoSQL數據庫嗎?
其他人是否使用SQL作爲「高級腳本語言」?
從文章中,聽起來像化石不是一個數據庫不僅僅是git是數據庫。是的,這是一個包含數據的東西,是的,它是由數據庫支持的,但它似乎離數據庫本身很遠。所以你的問題的第一部分基本上依賴於錯誤的假設。有一個名爲Friendly的數據庫,該數據庫使用MySQL來存儲無模式模型,但它看起來像一個尷尬的bandaid解決方案。
我當然不熟悉所有的NoSQL選項,但據我所知,沒有任何一個好的使用SQL的東西。我最熟悉的兩個MongoDB和CouchDB都使用Javascript作爲查詢界面的一部分,儘管方式各不相同。 MongoDB的查詢更像是你期望從關係數據庫中得到的結果:你可以爲所有匹配一組屬性的文檔編寫任意查詢。但是,與關係數據庫不同,不存在連接的情況(您只能獲得不同文檔的列表,而不是複合文檔),您可以編寫任意Javascript代碼來選擇文檔。另一方面,CouchDB不允許任意查詢。相反,您使用Javascript編寫的map/reduce函數創建視圖(本質上是更簡單的鍵值存儲),然後從開始鍵到結束鍵查詢這些視圖。
在這兩種情況下,傳輸到服務器執行查詢的信息類型都不適合SQL擅長解決的問題類型。 SQL的高度平衡(使用論文作者的邏輯)在於它僅適用於一組非常狹窄的問題。