nosql=not only sql,用於指代那些非關係型的、分布式的,且一般不保證遵循acid原則的資料儲存系統。
非關係型資料庫嚴格上不是一種資料庫,應該是一種資料結構化儲存方法的集合。
*****資料的持久儲存,尤其是海量資料的持久儲存,還是需要一種關聯式資料庫!!!*****
非關係型資料庫:mongodb、redis、hbase、couchdb、memcached、cassandra
redis,memcache,mongodb特點詳見區分(感謝整理)
nosql資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題。
1、鍵值(key-value
)儲存資料庫
這一類資料庫主要會使用到乙個雜湊表,這個表中有乙個特定的鍵和乙個指標指向特定的資料。key/value模型對於it系統來說的優勢在於簡單、易部署。但是如果dba只對部分值進行查詢或更新的時候,key/value就顯得效率低下了。舉例如:tokyo cabinet/tyrant, redis, voldemort, oracle bdb.
2、列儲存資料庫。
這部分資料庫通常是用來應對分布式儲存的海量資料。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如:cassandra, hbase, riak.
3、文件型資料庫
文件型資料庫的靈感是來自於lotus notes辦公軟體的,而且它同第一種鍵值儲存相類似。該型別的資料模型是版本化的文件,半結構化的文件以特定的格式儲存,比如json。文件型資料庫可 以看作是鍵值資料庫的公升級版,允許之間巢狀鍵值。而且文件型資料庫比鍵值資料庫的查詢效率更高。如:couchdb, mongodb. 國內也有文件型資料庫sequoiadb,已經開源。
4、圖形(graph)資料庫
圖形結構的資料庫同其他行列以及剛性結構的sql資料庫不同,它是使用靈活的圖形模型,並且能夠擴充套件到多個伺服器上。nosql資料庫沒有標準的查詢語言(sql),因此進行資料庫查詢需要制定資料模型。許多nosql資料庫都有rest式的資料介面或者查詢api。如:neo4j, infogrid, infinite graph.
因此,我們總結nosql資料庫在以下的這幾種情況下比較適用:1、資料模型比較簡單;2、需要靈活性更強的it系統;3、對資料庫效能要求較高;4、不需要高度的資料一致性;5、對於給定key,比較容易對映複雜值的環境。
分類examples舉例典型應用場景
資料模型
優點缺點
鍵值(key-value)tokyo cabinet/tyrant, redis, voldemort, oracle bdb
內容快取,主要用於處理大量資料的高訪問負載,也用於一些日誌系統等等。
key 指向 value 的鍵值對,通常用hash table來實現
查詢速度快
資料無結構化,通常只被當作字串或者二進位制資料
列儲存資料庫cassandra, hbase, riak
分布式的檔案系統
以列簇式儲存,將同一列資料存在一起
查詢速度快,可擴充套件性強,更容易進行分布式擴充套件
功能相對侷限
文件型資料庫couchdb, mongodb
web應用(與key-value類似,value是結構化的,不同的是資料庫能夠了解value的內容)
key-value對應的鍵值對,value為結構化資料
資料結構要求不嚴格,表結構可變,不需要像關係型資料庫一樣需要預先定義表結構
查詢效能不高,而且缺乏統一的查詢語法。
圖形(graph)資料庫neo4j, infogrid, infinite graph
社交網路,推薦系統等。專注於構建關係圖譜
圖結構利用圖結構相關演算法。比如最短路徑定址,n度關係查詢等
很多時候需要對整個圖做計算才能得出需要的資訊,而且這種結構不太好做分布式的集群方案。
1、資料模型比比較簡單;
2、需要靈活性更強的it系統;
3、對資料庫效能要求較高;
4、不需要高度的資料一致性;
5、對於給定的key,比較容易對映複雜值的環境。
1、已有的鍵-值資料庫產品大多是面向特定應用構建的,缺乏通用性;
2、已有產品支援的功能有限(不支援事務特性),導致其應用具有一定的侷限性;
3、缺乏類似關係型資料庫所具有的強有力的理論、技術、標準規範的支援。
關係型資料庫與非關係型資料庫(NoSQL)
1.關係型資料庫 mysql oracle sqlserver,acess.特點 sql 結構化的查詢語言 如下圖為關係型資料庫圖示 關係型資料庫存在的問題 1.儲存在硬碟上,讀寫慢 2.保持acid 事務原則,事務四項基本原則 難擴充套件 如何解決?非關係型資料庫 2.非關係型資料庫 優點 一致性...
關係型資料庫和nosql非關係型資料庫
關係型資料庫目前主流 oracle,mysql,sql server,db2等 非關聯式資料庫包括 mongodb,nosql,cloudant 關係型資料庫的優勢 1.複雜查詢可以用sql語句方便的在乙個表以及多個表之間做非常複雜的資料查詢。2.事務支援使得對於安全效能很高的資料訪問要求得以實現。...
NoSQL 從關係型資料庫到非關係型資料庫
關係型資料庫 所謂關係型資料庫,就是指採用了關係模型來組織資料的資料庫。什麼是關係模型,簡單說,關係模型就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個資料組織。關係模型中常用的概念 1 關係 可以理解為一張二維表,每個關係都有乙個關係名,在資料庫中被稱為表名 2 元組 可以...