新疆國土資源信息中心 吾木提·那合曼
?
NoSQL數據庫綜述
新疆國土資源信息中心 吾木提·那合曼
【摘要】NoSQL(Not Only SQL的縮寫)是一種非關系型數據庫產品的總稱。本文首先介紹了NoSQL數據庫,其次闡述了NoSQL數據庫優缺點和應用現狀;最后對在NoSQL產品之間進行了比較。
【關鍵詞】關系型數據庫;NoSQL數據庫;非關系型數據庫
回顧數據庫的發展歷程,數據庫技術從上世紀60年代末開始,經歷了層次數據庫、網狀數據庫和關系數據庫而進入數據庫管理系統(DBMS)階段至今,數據庫技術的研究也不斷取得進展[1]。傳統的關系型數據庫已在數據存儲方面占據了不可動搖的地位。近年來,隨著互聯網Web2.0技術的發展,網絡數據庫應用出現了一些新的變化,對與此相關的數據模型、分布式架構、數據存儲等數據庫相關的技術指標也提出了新的要求。但由于關系型數據庫本身的一些不足,已經越來越無法滿足互聯網對數據擴展、讀寫速度、支撐容量以及建設和運營成本的要求。NoSQL是在這種新變化、新要求之下產出的一種非關系型數據庫產品的總稱。
NoSQL(Not Only SQL的縮寫)數據庫是目前比較流行的,不同于傳統的關系型數據庫的數據庫管理系統的統稱。Wikipedia上定義:NoSQL是一種打破了關系型數據庫長久以來占主導地位的,快速成長起來的非關系松散數據庫存儲類型,這種數據存儲不需要事先設計好的表結構,它也不會出現表之間的連接操作和水平分割,學術界稱這種數據庫為非結構化存儲[2]。
作為新型的下一代數據庫,NoSQL數據庫系統主要解決以下要點:非關系型,分布式的,開源代碼和水平可擴展等。NoSQL數據庫往往具有無架構、易于復制、簡單的API、最終一致、大數據量等特點。目前有25種以上的NoSQL數據庫,各有各自的特點,是基于不同應用場景而開發的,其中MongoDB和Redis最受歡迎。
NoSQL數據庫相比其他模型的數據庫而言,具有以下優點:
(1)模式自由:目前NoSQL數據庫有列存儲、文檔存儲、鍵值對存儲、圖存儲、對象存儲、XML存儲等數據存儲模式,并且不需要事先為存儲的數據建立字段,不需要固定的表結構,可以隨時存儲自定義的數據格式。
(2)水平擴展:傳統的關系型數據庫采用向上擴展方式提高性能,而NoSQL數據庫則采用水平擴展的方式提高性能,即負載平均地分配到各個主機上。
(3)低廉的成本:NoSQL數據庫可以運行在廉價的PC服務器集群上。PC集群擴充起來便宜且成本低;此外輕松地添加新的節點來擴展集群。而且大部分NoSQL數據庫都是開源軟件,沒有昂貴的許可成本。
與傳統的關系型數據庫相比,NoSQL數據庫雖然有很多優勢,但也存在著一些缺陷,主要是:
(1)復雜性:因為在NoSQL數據庫中不使用SQL查詢語言,所以它需要用戶自主編寫程序來實現查詢功能,這種編程查詢的方式在完成簡單任務時會很快,但對使用者來說會耗費大量的時間。此外,想要通過編寫程序來實現復雜的數據庫查詢也是很困難的。
(2)可靠性:NoSQL數據庫本身是不支持ACID事務,因此NoSQL數據庫也不具有ACID所提供的可靠性。如果用戶想要在NoSQL的一個數據集里應用ACID事務,那么他們必須得通過額外的編程來實現。
(3)一致性:因為NoSQL數據庫本身是不支持ACID事務的,除非通過額外的編程才能實現,所以NoSQL的一致性可能會受到威脅。NoSQL不提供一致性,這讓它擁有更好的性能和可擴展性,但這使某些應用程序和交易系統存在隱患,比如銀行[3]。
(1)成熟度低:大多數企業不熟悉NoSQL數據庫,因此沒有足夠的知識去做NoSQL是最好的數據庫的選擇。
雖然NoSQL數據庫一詞早出現于1998年[4],其真正的發展是開始于2007年,先后出現了十多種NoSQL產品[5],例如:HBase、Cassandra、Hypertable、SimpleDB、MongoDB、CouchDB、DynamoDB、Redis、Neo4J等。從2009開始國內也陸續有公司或團隊進行NoSQL數據庫的開發,例如:豆瓣開源的BeansDB、新浪的MemcacheDB,淘寶網自主開發的Tair數據庫,人人網的Nucbar以及盛大創新院的TCDatabase紛紛發布。NoSQL數據庫在短短十幾年內得到如此快的發展是因為Web2.0與云計算技術的廣泛應用[6]。

表1 NoSQL數據庫之間的比較
目前市場上出現的NoSQL有二十多種[7],而它們之間也有一定的關聯與繼承,同時每個NoSQL數據庫有它獨到之處。表1是NoSQL數據庫產品之間的比較。
隨著現在網絡數據的爆炸式增長,NoSQL數據庫得到了廣泛的使用,它具有海量數據存儲,高性價比,靈活的擴展性等特點,一定程度上是傳統數據庫的代替品。目前,在某些場景下,可以將NoSQL數據庫與關系型數據庫結合使用,互相彌補各自的缺陷,這種數據庫組合對解決Web2.0所遇到的性能、擴展性等問題具有指導意義[30]。
參考文獻
[1]張華強.關系型數據男不男女不女 庫與NoSQL數據庫[J].電腦知識與技術,2011,7(20):4802.
[2]謝毅,高宏偉,范朝冬,楊望仙.NoSQL非關系型數據庫綜述[J].先進技術研究通報,2010,4(8):46-48.
[3]NealLeavitt.WillNoSQLDatabasesliveUpto their Promise?[J].Computer,2010:12-13.
[4]張冬.淺談互聯網運營商的特殊集群——NoSQL[J].網絡世界,2011,026:1-2.
[5]黃賢立.NoSQL非關系型數據庫的發展及應用初探[J].福建電腦,2010,7:30-31.
[6]盧益陽.NoSQL數據管理系統綜述[J].企業科技與發展,2011,17:31-32.
[7]徐娟娟,朱成亮.NoSQL在WEB日志分析中的應用[J].中國新技術新產品,2011(10):27.
吾木提·那合曼(1986-),女,新疆沙灣人,新疆國土資源信息中心工程師。
作者簡介: