Nosql分類
http://www.cnblogs.com/sunli/archive/2011/01/24/nosql_or_relation.html
列式儲存
面向列的DBMS是這樣一種資料庫管理系統,它將資料表儲存為資料列而非行的形式。從物理上來說,表是列的集合,每一列從本質上來說都是隻有一個欄位的表。這些資料庫通常用於分析系統、商業智慧與分析型資料儲存。
優點:
- 可以比較資料,因為在表的一列中,資料通常都是同種型別的。
- 可以透過便宜、效能一般的硬體實現高速的查詢效能;由於壓縮的原因,相對於關係型資料庫來說,這種方式磁碟上的資料所佔據的空間要少5到10倍。
缺點:
- 通常沒有事務。
- 對於熟悉傳統RDBMS的開發者來說存在不少限制。
典型代表:
- HBase
- Cassandra
- Accumulo
- Amazon SimpleDB
鍵值儲存
你可以透過這種資料庫將鍵值對儲存到持久化儲存中,隨後使用鍵來讀取值。那麼對於這種初看起來用途非常有限的解決方案來說有哪些好處呢?在根據鍵來儲存/讀取值時,系統是非常高效的,因為它沒有SQL處理器、索引系統以及分析系統等諸多限制。這種解決方案提供了最高效的效能,代價最低的實現以及可伸縮性。
優點:
- RDBMS太慢了,SQL遊標的負擔過於沉重。
- 採用RDBMS的解決方案來儲存少量資料的代價有些大。
- 沒必要使用SQL查詢、索引、觸發器、儲存過程、臨時表、表單以及檢視等等。
- 由於其輕量級的設計,鍵值資料庫可以很容易實現可伸縮性以及高效能。
缺點:
- 關係型資料庫的限制可以從底層就確保資料的完整性,而鍵值儲存就沒有這些限制,資料的完整性是由應用來控制的。在這種情況下,資料的完整性可能會由於應用程式碼的錯誤而做一些妥協。
- 在RDBMS中,如果模型設計良好,那麼資料庫的邏輯結構就能完全反映出儲存資料的結構,並且與應用的結構有所不同(資料是獨立於應用的)。對於鍵值儲存來說,要想取得這種效果是非常困難的事情。
典型代表:
- Amazon DynamoDB
- Riak
- Redis
- LevelDB
- Scalaris
- MemcacheDB
- Kyoto Cabinet
文件儲存
文件儲存指的是用於儲存、搜尋與管理面向文件的資訊(半結構化資料)的程式,其中心概念就是文件。具體的面向文件資料庫的實現是不同的,不過總的來說,他們都會以各種標準化格式對資料(文件)進行封裝與加密,主要格式有XML、YAML、JSON、BSON、PDF等等。
優點:
- 足夠靈活的查詢語言。
- 易於水平擴充套件。
缺點:
在很多時候原子性是得不到保障的。
典型代表:
- MongoDB
- Couchbase
- CouchDB
- RethinkDB
圖型資料庫
圖型資料庫指的是使用圖結構的資料庫,透過結點、邊與屬性來表示和儲存資料。根據定義,圖型資料庫是一種提供了無需索引而彼此鄰接的儲存系統。這意味著每個元素都包含了直接指向鄰接元素的指標,因此沒必要再透過索引進行查詢了。
優點:
- 對於關聯資料集的查詢速度更快。
- 可以很自然地擴充套件為更大的資料集,因為他們無需使用代價高昂的連線運算子。
缺點:
- RDBMS可以用在更為通用的場景下,圖型資料庫只適合類似於圖的資料。
典型代表:
- Neo4j
- FlockDB
- InfoGrid
- OrientDB
多模資料庫
這些資料庫包含了多種資料庫的特性。
有兩種不同的產品分組可以認為是多模的:
- 支援多種資料模型和用例的多模資料庫。 比如說,ArangoDB宣稱它擁有鍵值儲存的好處,同時還提供了面向文件以及圖型資料庫的支援。
- 支援多種模式的通用目的的資料庫。 比如說,Oracle的MySQL 5.6支援SQL方式的訪問,也可以透過Memcached API實現鍵值訪問。
典型代表:
- ArangoDB
- Aerospike
- Datomic
物件資料庫
資料庫中的資料都建模為物件、屬性、方法以及類。物件導向的資料庫通常適合於需要高效能資料處理的應用,這種應用一般都有非常複雜的結構。
優點:
- 相比於關係元組來說,物件模型最適合於展現現實世界,對於複雜、多方位的物件來說尤為如此。
- 使用層次特性來組織資料。
- 訪問資料時並不需要專門的查詢語言,因為訪問是直接物件導向的。然而,有時也是需要使用查詢的。
缺點
- 在RDBMS中,由於表的建立、修改或是刪除而導致的模式修改通常並不依賴於應用。在使用物件資料庫的應用中,模式修改類通常意味著還要對與當前類關聯的其他應用類進行修改。這會導致對整個系統進行修改。
- 物件資料庫通常會透過單獨的API與特定的語言繫結,只有透過該API才能查詢資料。在這方面,RDBMS就做得很好,這要歸功於它所使用的通用查詢語言。
典型代表:
- VelocityDB
- Objectivity
- ZODB
- Siaqodb
- EyeDB
多維資料庫
這是針對線上分析處理的一種資料庫,它可以從各種關係型資料庫中檢索資料,並且以某種方式將資訊組織為類別和段當中。
典型代表:
- GlobalsDB
- Intersystems Cache
- SciDB
- Rasdaman
多值資料庫
多維資料庫的變種。主要的特性是支援使用屬性來儲存值的列表。
典型代表:
- Rocket U2
- OpenInsight
- Reality
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10973950/viewspace-1209553/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- NoSQL資料庫的四大分類及分析SQL資料庫
- NoSQL資料庫的四大分類介紹SQL資料庫
- 四類NoSQL資料庫SQL資料庫
- 四大類NOSQL資料庫SQL資料庫
- 京東獲得jd商品分類API介面(父分類、根分類、子分類)API
- wordpress 獲取分類ID,分類標題,分類描述,分類連結url函式函式
- 分類 和 聚類聚類
- NoSQLSQL
- ML.NET 示例:多類分類之問題分類
- ML.NET 示例:多類分類之鳶尾花分類
- MySQL、NoSQL分別是什麼?有什麼區別?MySql
- SQL分類SQL
- 分類-CategoryGo
- 模式分類模式
- 分類器
- 分類2
- Wait Events的分類及分類依據AI
- IP地址分類(A類 B類 C類 D類 E類)
- 聊聊 NoSQLSQL
- Why NoSQL?SQL
- NoSQL 初探SQL
- 概率分類之樸素貝葉斯分類(垃圾郵件分類python實現)Python
- @thinkphp 分類bugPHP
- php分頁類PHP
- IPC 方法分類
- 文字分類-TextCNN文字分類CNN
- mysql 索引分類MySql索引
- 商品分類元件元件
- 文字分類模型文字分類模型
- opencv svm分類OpenCV
- 資料分類
- oracle索引分類Oracle索引
- noise的分類
- 分類導航
- 06 ## 模組分類
- 異常分類
- 主鍵分類
- C++分類C++