NoSQL是一個資料庫的統稱名詞,它也是個儲存資料的資料庫。但不同於傳統的關聯式資料庫如:MSSQL、MySQL、SyBase、Informix、PostgreSQL...等等,其較大差異在於它查詢資料時,主要並不是採SQL語法做查詢,雖然仍有某些NoSQL提供SQL語法查詢,但是,沒有優於關聯式的SQL結構化查詢。其次是資料儲存時無須定義schema才能儲存,且儲存時並非得以表格形式儲存。然而它的出現並不是要取代關聯式資料庫,而是在資料儲存會有日增月益的情況時,意指資料只會有增無減為前提,即是有必要採用NoSQL為資料儲存;或者網站服務中,有提供索引文件的查詢、網站流量屬於較高者,資料庫系統會比較適合使用NoSQL類型。常見的NoSQL資料庫主要有四類,分別是:Key-Value儲存分散式資料、記憶體資料庫(In-memory Database)、文件資料庫(Document Database)、圖形資料庫(Graph Database)的資料庫。目前,較具主流且被廣泛使用則是Key-Value儲存,該資料庫運用上,特色在於適用儲存大量資料,能夠以Key值快速的查詢到資料,較具代表性先驅有Google、Facebook這兩家公司。
如下為各個NoSQL資料庫的用途:
Key-Value 存儲:Google BigTable、Amazon Dynamo、Hadoop HBase、Facebook Cassandra、Hypertable
記憶體存儲:Memcached、Redis、Velocity、Tuple space
文件資料庫:MongoDB、CouchDB、Riak
圖形料庫:AllegroGraph、Neo4j、InfoGrid
NoSQL 秉持著五大原則:
1.NoSQL是Not Only SQL
2.增加機器就能自動擴充資料庫容量
3.打破Schema欄位架構的限制
4.資料遲早會一致
5.成熟度不足,版本升級風險高
參考出處:
http://zh.wikipedia.org/wiki/NoSQL
http://www.ithome.com.tw/itadm/article.php?c=63360&s=1
http://nosql-database.org/
沒有留言:
張貼留言