簡單分析靈活的非關(guān)系型數(shù)據(jù)庫NoSQL
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
非關(guān)系型數(shù)據(jù)庫NoSQL催生了另一種數(shù)據(jù)存儲方式,所有的這些改變都試圖填補傳統(tǒng)關(guān)系型數(shù)據(jù)庫的缺陷。NoSQL可以很容易地兼容各種關(guān)系型數(shù)據(jù)庫,如MySQL,Oracle,DB2等。NoSQL的世界更加多樣化,以及常規(guī)化的NoSQL標(biāo)簽。 NoSQL 與 MongoDB(基于分布式文件存儲的數(shù)據(jù)庫) 和 Cassandra(非關(guān)系型數(shù)據(jù)庫)的數(shù)據(jù)存儲方式不同,蘋果機(jī)對蘋果機(jī)就不可以。因此,NoSQL有著自己的適用范圍,如鍵值數(shù)據(jù)庫,圖形數(shù)據(jù)存儲和面向文檔的存儲。 不論是面向文檔的存儲還是文檔存儲都不是什么新的存儲方式。行業(yè)巨頭很快的承認(rèn)了Lotus Notes,80年代后期唯一成功采用NoSQL文檔存儲的應(yīng)用。文檔中存儲的數(shù)據(jù)封裝成松耦合文件,而不是列和行。底層文件實現(xiàn)不同的數(shù)據(jù)存儲,以JSON 和XML為代表。 但在一般情況下,文件沒有嚴(yán)格的定義,事實上,他們提供了高度的靈活性。例如,這些數(shù)據(jù)存儲不支持SQL,反而支持Query。Query是一種基礎(chǔ)文件架構(gòu)(就像 XPath,類似XML的數(shù)據(jù)存儲)。在定義數(shù)據(jù)方面有很多好處,比如更加靈活。在很多情況下,相對傳統(tǒng)關(guān)系型數(shù)據(jù)庫具有更快的迭代算法,這也是數(shù)據(jù)庫開發(fā)時所必須考慮的以及未來的發(fā)展趨勢。 近年來許多文檔存儲數(shù)據(jù)庫出現(xiàn),并在開發(fā)者心中得到了認(rèn)可。其中最受歡迎的就是MongoDB,用c++編寫的一個開源文檔存儲數(shù)據(jù)庫,模式自由(schema-free),意味著對于存儲在MongoDB數(shù)據(jù)庫中的文件,我們不需要知道它的任何結(jié)構(gòu)定義。如果需要的話,你完全可以把不同結(jié)構(gòu)的文件存儲在同一個數(shù)據(jù)庫里。支持多語言,例如RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言,可以為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。 Mongo支持跨節(jié)點集群文件的集合,允許橫向擴(kuò)展,從而使讀取速度更快。更重要的是,Mongo提供兩種模式:master-slave(主從式數(shù)據(jù)同步)和replica sets(異步主從復(fù)制集)。在replica sets模式中,并沒有master node模式;相反,所有的節(jié)點都是一個副本,并沒有單點故障。因此,副本集帶來更多的容錯性較大的環(huán)境,支持大量的數(shù)據(jù)。這些功能和更多并不需要數(shù)據(jù)庫管理工具,也不需要大量的硬件。 Mongo 可以運行在大部分硬件平臺上,只要有一個充足的內(nèi)存。 Mongo 能夠存儲任何文件,你也可以決定文件的存放位置。存儲在集合中的文檔,被存儲為鍵-值對的形式。在Mongo內(nèi)部,JSON使用它的二進(jìn)制形式表示,名為BSON(Binary Serialized dOcument Format)。鍵用于唯一標(biāo)識一個文檔,為字符串類型,而值則可以是各種復(fù)雜的文件類型(這有點像列和行)。 該文章在 2012/3/25 10:49:04 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |