網頁

搜尋此網誌

2013年7月23日 星期二

NoSQL Distilled 搞懂 NoSQL 的15堂課

最近這一年以來,NoSQL 資料庫越來越熱門,一直缺少一本書籍好好介紹 NoSQL ,現在,「搞懂NoSQL的15堂課 (NoSQL Distilled 中文版)」是很好的基礎入門書,讓我們搞清楚什麼是 NoSQL 資料庫,作者不講各個資料庫的操作細節,而是站在一個高度下有系統的介紹 NoSQL 資料庫,讓我們清楚瞭解 NoSQL 資料庫,不管你是否正在使用 NoSQL ,這本搞懂 NoSQL 的15堂課都非常值得閱讀。

Pramod J. Sadalage、Martin Fowler 著,吳曜撰譯,搞懂 NoSQL 的15堂課,台北,碁峰資訊,2013。
譯自:NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence

NoSQL 不是 Not Only SQL ,事實是來自 Twitter 的分類標籤 (hashtag) ,由 Johan Oskarsson 命名使用的。實際上, NoSQL 是對一種類型資料庫的統稱,這類資料庫有幾個特徵:聚集 (aggregate) 的資料模型、無綱要 (schemaless) 、使用叢集 (cluster) 執行等,目前世界上有的 NoSQL 清單可以參考這個網站:http://nosql-databases.org/

「搞懂 NoSQL 的15堂課」分成兩大部分共15章,第一部分介紹 NoSQL 的資料模型,主要讓我們瞭解 NoSQL 的特點,第二部分則針對實作進行說明,主要是說明鍵值資料庫 (Key-Value Databases)文件資料庫 (Document Databases)欄位群資料庫 (Column-Family Stores ) 圖形資料庫 (Graph Databases) 這四大資料模型的差異與特性。

NoSQL 由於無綱要的性質,使得程式設計師開發應用程式的生產力提高,加上叢集的實現方式, NoSQL 有利於大規模的資料量。相對的,這些看似優點的特性也產生另外一些問題,例如一致性 (consistency) 的議題,由於無綱要與叢集的性質,這讓資料必須分散在各主機上,加上聚集的資料模型,使資料庫在讀取與更新的一致性必須處理與注意。

書中最後提到不同的資料庫是設計用來解決不同的問題,我們面對 NoSQL 的同時,不應該完全放棄使用關聯式資料庫,針對不同應用場合使用特定的資料庫,或是採用多語言維持 (polyglot persistence) 的儲存方式,這些都值得我們進一步思考設計。

###

沒有留言:

張貼留言

熱門文章