查了一下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跟行動裝置的高度發展,
現在也是一個主題/關鍵字了.
沒有留言:
張貼留言