網頁

2013年1月8日 星期二

Log Day2 NoSQL


查了一下NoSQL,
本來以為是某種特殊的SQL,
結果並不是...

根據維基百科的定義: In computing, NoSQL (commonly interpreted as "not only SQL") is a broad class of database management systems identified by non-adherence to the widely used relational database management system model. NoSQL databases are not built primarily on tables, and generally do not use SQL for data manipulation.

所以可理解NoSQL有底下的特性:
  • 就是"沒有SQL"
  • 是一種資料庫管理系統, 模型跟relational database不同
為什麼要開發這種資料庫?
通常對Web的應用會有底下的需求:
  • 不需要太強的查詢功能, 也不需要全ACID的支援
  • 資料格式固定(Structured)但也沒有很複雜 (如key-value pair)
  • 需要大量/迅速的資料存取需求 (Performance)
  • 需要Scalability, 甚至Fault-tolerant的需求
以上的需求當然是相對於關連式資料庫來說,
NoSQL的資料庫不外乎要發展一個更符合Web環境使用的資料庫,
或針對某個語言的需求(如物件導向),
來提供一個符合該設計模型所需要的資料庫.

以模型來區分NoSQL的資料庫, 
大致上會有底下的分類:
  • key–value stores
  • BigTable implementations 
  • document store databases
  • graph databases
個人比較感興趣的是document store databases, 
一般提到這個模型都會有底下的關鍵字:
  • Collections
  • Tags
  • Non-visible Metadata
  • Directory hierarchies
這也是之前研究一直在作的東西,
沒想到由於Web跟行動裝置的高度發展,
現在也是一個主題/關鍵字了.

沒有留言:

張貼留言