Ⅰ 什麼是nosql
nosql是not only sql的意思。是近今年新發展起來的存儲系統。當前使用最多的是key-value模型,用於處理超大規模的數據。
以下是摘自網路中的一部分
NoSQL 是非關系型數據存儲的廣義定義。它打破了長久以來關系型資料庫與ACID理論大一統的局面。NoSQL 數據存儲不需要固定的表結構,通常也不存在連接操作。在大數據存取上具備關系型資料庫無法比擬的性能優勢。該術語在 2009 年初得到了廣泛認同。
當今的應用體系結構需要數據存儲在橫向伸縮性上能夠滿足需求。而 NoSQL 存儲就是為了實現這個需求。Google 的BigTable與Amazon的Dynamo是非常成功的商業 NoSQL 實現。一些開源的 NoSQL 體系,如Facebook 的Cassandra, Apache 的HBase,也得到了廣泛認同。從這些NoSQL項目的名字上看不出什麼相同之處:Hadoop、Voldemort、Dynomite,還有其它很多。
NoSQL與關系型資料庫設計理念比較
關系型資料庫中的表都是存儲一些格式化的數據結構,每個元組欄位的組成都一樣,即使不是每個元組都需要所有的欄位,但資料庫會為每個元組分配所有的欄位,這樣的結構可以便於表與表之間進行連接等操作,但從另一個角度來說它也是關系型資料庫性能瓶頸的一個因素。而非關系型資料庫以鍵值對存儲,它的結構不固定,每一個元組可以有不一樣的欄位,每個元組可以根據需要增加一些自己的鍵值對,這樣就不會局限於固定的結構,可以減少一些時間和空間的開銷。
Ⅱ 簡述什麼是nosql資料庫,並列舉兩種常見的nosql資料庫名稱及其特點
NoSQL太火,冒出太多產品了,保守估計也成百上千了。
互聯網公司常用的基本集中在以下幾種,每種只舉一個比較常見或者應用比較成功的例子吧。
1. In-Memory KV Store : Redis
in memory key-value store,同時提供了更加豐富的數據結構和運算的能力,成功用法是替代memcached,通過checkpoint和commit log提供了快速的宕機恢復,同時支持replication提供讀可擴展和高可用。
2. Disk-Based KV Store: Leveldb
真正基於磁碟的key-value storage, 模型單一簡單,數據量不受限於內存大小,數據落盤高可靠,Google的幾位大神出品的精品,LSM模型天然寫優化,順序寫盤的方式對於新硬體ssd再適合不過了,不足是僅提供了一個庫,需要自己封裝server端。
3. Document Store: Mongodb
分布式nosql,具備了區別mysql的最大亮點:可擴展性。mongodb 最新引人的莫過於提供了sql介面,是目前nosql里最像mysql的,只是沒有ACID的特性,發展很快,支持了索引等特性,上手容易,對於數據量遠超內存限制的場景來說,還需要慎重。
4. Column Table Store: HBase
這個富二代似乎不用贅述了,最大的優勢是開源,對於普通的scan和基於行的get等基本查詢,性能完全不是問題,只是只提供裸的api,易用性上是短板,可擴展性方面是最強的,其次坐上了Hadoop的快車,社區發展很快,各種基於其上的開源產品不少,來解決諸如join、聚集運算等復雜查詢。
Ⅲ nosql有幾種模型
mongodb
Ⅳ 如何用好NoSQL
No SQL DB是一種和關系型資料庫相對應的對象資料庫。按照數據模型保存性質將當前NoSQL分為四種:
1.Key-value stores鍵值存儲, 保存keys+BLOBs
2.Table-oriented 面向表, 主要有Google的BigTable和Cassandra.
3.Document-oriented面向文本, 文本是一種類似XML文檔,MongoDB 和 CouchDB
4.Graph-oriented 面向圖論. 如Neo4J.
關系型資料庫的弊端:
關系型資料庫的歷史已經有30餘年了,因此,在某些情況下,關系型資料庫的弱點就會暴露出來:
1. 「對象-關系 阻抗不匹配」。關系模型和面向對象模型在概念上存在天然的不匹配的地方,比如對象模型當中特有的「繼承」,「組合」,「聚合」,「依賴」的概念在關系模型當中是不存在的。
2. 「模式演進」。即隨著時間的推移,需要對資料庫模式進行調整以便適應新的需求,然而,對資料庫模式的調整是的成本很高的動作,因此很多設計師在系統設計之初會設計一個兼容性很強的資料庫模式,以應對將來可能出現的需求,然而在現在的web系統開發過程中,系統的變更更加頻繁,幾乎無法預先設計出一種「萬能」的資料庫模式以滿足所有的需求,因此 模式演進的弊端就愈發凸顯。
3. 關系型資料庫處理 稀疏表時的性能非常差。
4. networkoriented data 很適合處理 人工智慧、社交網路中的一些需求。
所以,各種各樣的No SQL DB 出現了,這里只簡單介紹下Neo4J 的基本知識。
Neo 數據模型
Neo4J 是一個基於圖實現的No SQL DB, 其基本的數據類型有如下幾種:
Node, Relationship, Property.
Node 對應於圖中的 節點,Relationship 對應圖中的邊,Node 和 Relationship 都可以擁有Property,
Property 的數據結構為。
數據遍歷
Ⅳ nosql資料庫是什麼 具有代表性以key-value的形式存儲的
NoSQL,泛指非關系型的資料庫。隨著互聯網web2.0網站的興起,傳統的關系資料庫在應付web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而非關系型的資料庫則由於其本身的特點得到了非常迅速的發展。NoSQL資料庫的產生就是為了解決大規模數據集合多重數據種類帶來的挑戰,尤其是大數據應用難題。
鍵值(Key-Value)存儲資料庫
這一類資料庫主要會使用到一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數據。Key/value模型對於IT系統來說的優勢在於簡單、易部署。但是如果DBA只對部分值進行查詢或更新的時候,Key/value就顯得效率低下了。[3] 舉例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
列存儲資料庫。
這部分資料庫通常是用來應對分布式存儲的海量數據。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如:Cassandra, HBase, Riak.
文檔型資料庫
文檔型資料庫的靈感是來自於Lotus Notes辦公軟體的,而且它同第一種鍵值存儲相類似。該類型的數據模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。文檔型資料庫可 以看作是鍵值資料庫的升級版,允許之間嵌套鍵值。而且文檔型資料庫比鍵值資料庫的查詢效率更高。如:CouchDB, MongoDb. 國內也有文檔型資料庫SequoiaDB,已經開源。
圖形(Graph)資料庫
圖形結構的資料庫同其他行列以及剛性結構的SQL資料庫不同,它是使用靈活的圖形模型,並且能夠擴展到多個伺服器上。NoSQL資料庫沒有標準的查詢語言(SQL),因此進行資料庫查詢需要制定數據模型。許多NoSQL資料庫都有REST式的數據介面或者查詢API。[2] 如:Neo4J, InfoGrid, Infinite Graph.
因此,我們總結NoSQL資料庫在以下的這幾種情況下比較適用:1、數據模型比較簡單;2、需要靈活性更強的IT系統;3、對資料庫性能要求較高;4、不需要高度的數據一致性;5、對於給定key,比較容易映射復雜值的環境。
Ⅵ 什麼是nosql非結構化資料庫
基本含義NoSQL(NoSQL = Not Only SQL ),意即「不僅僅是SQL」,是一項全新的資料庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對於鋪天蓋地的關系型資料庫運用,這一概念無疑是一種全新的思維的注入。NoSQLNoSQL資料庫的四大分類鍵值(Key-Value)存儲資料庫這一類資料庫主要會使用到一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數據。Key/value模型對於IT系統來說的優勢在於簡單、易部署。但是如果DBA只對部分值進行查詢或更新的時候,Key/value就顯得效率低下了。[3] 舉例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.列存儲資料庫。這部分資料庫通常是用來應對分布式存儲的海量數據。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如:Cassandra, HBase, Riak.文檔型資料庫文檔型資料庫的靈感是來自於Lotus Notes辦公軟體的,而且它同第一種鍵值存儲相類似。該類型的數據模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。文檔型資料庫可 以看作是鍵值資料庫的升級版,允許之間嵌套鍵值。而且文檔型資料庫比鍵值資料庫的查詢效率更高。如:CouchDB, MongoDb. 國內也有文檔型資料庫SequoiaDB,已經開源。圖形(Graph)資料庫圖形結構的資料庫同其他行列以及剛性結構的SQL資料庫不同,它是使用靈活的圖形模型,並且能夠擴展到多個伺服器上。NoSQL資料庫沒有標準的查詢語言(SQL),因此進行資料庫查詢需要制定數據模型。許多NoSQL資料庫都有REST式的數據介面或者查詢API。[2] 如:Neo4J, InfoGrid, Infinite Graph.因此,我們總結NoSQL資料庫在以下的這幾種情況下比較適用:1、數據模型比較簡單;2、需要靈活性更強的IT系統;3、對資料庫性能要求較高;4、不需要高度的數據一致性;5、對於給定key,比較容易映射復雜值的環境。
Ⅶ nosql資料庫的幾大類型
1. 鍵值資料庫
相關產品:Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached
應用:內容緩存
優點:擴展性好、靈活性好、大量寫操作時性能高
缺點:無法存儲結構化信息、條件查詢效率較低
使用者:網路雲(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter(Ridis和Memcached)
2. 列族資料庫
相關產品:BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS
應用:分布式數據存儲與管理
優點:查找速度快、可擴展性強、容易進行分布式擴展、復雜性低
使用者:Ebay(Cassandra)、Instagram(Cassandra)、NASA(Cassandra)、Facebook(HBase)
3. 文檔資料庫
相關產品:MongoDB、CouchDB、ThruDB、CloudKit、Perservere、Jackrabbit
應用:存儲、索引並管理面向文檔的數據或者類似的半結構化數據
優點:性能好、靈活性高、復雜性低、數據結構靈活
缺點:缺乏統一的查詢語言
使用者:網路雲資料庫(MongoDB)、SAP(MongoDB)
4. 圖形資料庫
圖形資料庫-使用圖作為數據模型來存儲數據。
相關產品:Neo4J、OrientDB、InfoGrid、GraphDB
應用:大量復雜、互連接、低結構化的圖結構場合,如社交網路、推薦系統等
優點:靈活性高、支持復雜的圖形演算法、可用於構建復雜的關系圖譜
缺點:復雜性高、只能支持一定的數據規模
使用者:Adobe(Neo4J)、Cisco(Neo4J)、T-Mobile(Neo4J)