• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      NOSQL和可擴展的SQL

      2012-04-13 02:25:46呂美英郭顯娥
      關(guān)鍵詞:擴展性關(guān)系數(shù)據(jù)庫鍵值

      呂美英,郭顯娥

      (山西大同大學數(shù)學與計算機科學學院,山西大同 037009)

      NOSQL和可擴展的SQL

      呂美英,郭顯娥

      (山西大同大學數(shù)學與計算機科學學院,山西大同 037009)

      隨著互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)規(guī)模的不斷擴大,對訪問量,訪問速度的越來越高的要求,NoSQL作為一種數(shù)據(jù)存儲方式,得到越來越廣泛的關(guān)注和應用,對傳統(tǒng)的占據(jù)數(shù)據(jù)庫市場主導地位近三十年的SQL數(shù)據(jù)庫,也就是關(guān)系型數(shù)據(jù)庫提出了極大的挑戰(zhàn)。本文對現(xiàn)有的NoSQL數(shù)據(jù)存儲技術(shù)的數(shù)據(jù)模型,技術(shù)發(fā)展和應用,以及SQL數(shù)據(jù)庫發(fā)展的趨勢和現(xiàn)狀進行了綜述,提出SQL和NoSQL在數(shù)據(jù)庫市場中會根據(jù)系統(tǒng)的要求,主要是多版本并發(fā)控制,擴展性,一致性和速度要求等的不同而劃分數(shù)據(jù)庫市場。

      NoSQL;可擴展的SQL;網(wǎng)絡數(shù)據(jù)庫

      計算機應用離不開數(shù)據(jù)的管理和處理。數(shù)據(jù)的處理經(jīng)歷了三個階段:手工管理、文件管理和數(shù)據(jù)庫管理。數(shù)據(jù)庫管理數(shù)據(jù),使得大型的計算機應用成為可能。數(shù)據(jù)庫技術(shù)始于上世紀60年代,隨后發(fā)展迅速。盡管NoSQL數(shù)據(jù)庫如層次數(shù)據(jù)庫,圖形數(shù)據(jù)庫,和面向?qū)ο蟮臄?shù)據(jù)庫在60年代末就開發(fā)出來了[1],但是以SQL為主要的數(shù)據(jù)查詢和操縱語言的關(guān)系數(shù)據(jù)庫從上個世紀80年代起,成為了數(shù)據(jù)庫技術(shù)的主流產(chǎn)品。關(guān)系數(shù)據(jù)庫具有四個特性:ACID,即原子性,一致性,隔離性和持續(xù)性,且建立在嚴格的集合代數(shù)基礎之上,有強大的查詢功能。但是關(guān)系數(shù)據(jù)庫也有致命的弱點,那就是數(shù)據(jù)結(jié)構(gòu)規(guī)整,容錯性和擴展性差,在分布式數(shù)據(jù)庫和數(shù)據(jù)分片的情形下處理能力差,海量數(shù)據(jù)訪問處理速度慢等。隨著應用數(shù)據(jù)規(guī)模的擴大和互聯(lián)網(wǎng)的發(fā)展,這些缺陷就變得不能容忍。為此,一些新型的易于橫向擴展的NoSQL數(shù)據(jù)系統(tǒng)應運而生,如健值存儲數(shù)據(jù)庫,文檔存儲數(shù)據(jù)庫,RDF(資源描述框架)數(shù)據(jù)庫,大表數(shù)據(jù)庫等。它們不再以SQL作為主要的查詢語言,其優(yōu)點是易于擴展,大規(guī)模海量數(shù)據(jù)處理速度快,容錯性高,但同時這些系統(tǒng)在數(shù)據(jù)一致性上也大打折扣,不過,這并不對他們的使用造成太大的影響。很多大型的互聯(lián)網(wǎng)網(wǎng)站都使用這種類型數(shù)據(jù)存儲方式,如AMAZON的DYNAMO[2]和LINKEDIN使用的開源VOLDEMORT,GOOLGE的BIGTABLE[3]和FACEBOOK的CASSANDRA[4]等。與此同時,關(guān)系數(shù)據(jù)庫本身也在發(fā)展,產(chǎn)生了可擴展的關(guān)系數(shù)據(jù)庫,即SCALABLE SQL,一些大型的社交網(wǎng)站如FACEBOOK,MYSPACE,TWITTER和一些商務和銀行系統(tǒng),其核心的數(shù)據(jù)存儲仍是基于SQL的[5]。本文討論了一些可擴展的SQL和一些NoSQL數(shù)據(jù)存儲系統(tǒng)的特點和不足,對它們未來的發(fā)展做出了展望。

      1 NoSQL數(shù)據(jù)存儲

      NoSQL,意味著不僅僅SQL,或者不僅僅非關(guān)系型數(shù)據(jù)存儲。在關(guān)系數(shù)據(jù)庫作為主流的時代,非關(guān)系型的數(shù)據(jù)庫大都加上了SQL支持,如面向?qū)ο蟮臄?shù)據(jù)庫發(fā)展為關(guān)系對象數(shù)據(jù)庫,XML數(shù)據(jù)庫也受到了SQL2003的擴展支持[6]。但是隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和由之產(chǎn)生的海量、分布式、分片數(shù)據(jù)存儲和訪問,NoSQL數(shù)據(jù)存儲異軍突起,成為了當今絕大多數(shù)互聯(lián)網(wǎng)公司的主流。連當今世界最大的關(guān)系數(shù)據(jù)庫公司ORACLE也推出了自己的NoSQL解決方案[7-8]。下面,我們對NoSQL的數(shù)據(jù)模型作一概括:

      1.1 Key-Value(鍵值)存儲模型

      Key-Value模型由鍵和其相應的值組成,是結(jié)構(gòu)最簡單,使用最方便的NoSQL數(shù)據(jù)模型。它支持簡單的key(鍵)對value(值)的存儲和提取,這能夠滿足絕大多數(shù)網(wǎng)絡平臺數(shù)據(jù)存儲的需要。Key-Value模型通常是由HashTable實現(xiàn)的,所以無法進行范圍查詢,因而其后就出現(xiàn)了有序的Key-Value模型。有序Key-Value可以支持范圍查詢。雖然有序Key-Value模型能夠解決范圍查詢的問題,但是其Value(值)依然是無結(jié)構(gòu)的二進制碼或純字符串,通常我們只能在應用層去解析相應的結(jié)構(gòu)。使用鍵值存儲的NoSQL非常多,有Dynamo,Openlink的Virtuoso,Oracle Coherence,LevelDB,Memcache DB,Redis,Kyoto Cabinet,Berkeley DB,IBM的InformixC-ISAM等。

      1.2 類BigTable(也稱為Extensible-record,或wide-column stores)的數(shù)據(jù)模型

      此種數(shù)據(jù)存儲能夠支持結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù),包括列,列簇,時間戳以及版本控制等元數(shù)據(jù)的存儲,其基本的數(shù)據(jù)模型是行和列,而且行和列可以在多個節(jié)點上同時進行水平和垂直的擴展分割。行以主碼按范圍而非HASH來分片,因而一定范圍內(nèi)的查詢,就不需要遍歷各個節(jié)點。列則以列簇的方式分散在多個節(jié)點上,用戶可以決定那些列放在一起最方便。流行的開源的Apache HBase,Apache Cassandra都屬此類,此外,還有Hypertable,Accumulo,SimpleDB等都是這種數(shù)據(jù)庫。

      1.3 文檔型存儲

      文檔是以XML,YAML,JSON,BSON等形式以及一些二進制形式如PDF和MS Word,Excel等被編碼和封裝的,文檔型存儲沒有模式,最早始于Lotus Notes.MongoDB,CouchDB都是在Lotus的基礎上發(fā)展起來的[9]。文檔型存儲相對到類BigTable存儲又有兩個大的提升。一是其Value(值)支持復雜的結(jié)構(gòu)定義,二是支持數(shù)據(jù)庫索引的定義。除了支持主碼數(shù)據(jù)訪問外,文檔型存儲可以通過索引來快速訪問記錄的屬性。因為所有的數(shù)據(jù)都在一個文檔內(nèi),因而不需要數(shù)據(jù)連接和多對象事務處理,這使得數(shù)據(jù)的集群化更為容易,擴展性能更強[10]。全文索引模型是文檔型存儲的一個變種。它們的區(qū)別在于文檔型存儲的索引主要是按照字段名來組織的,而全文索引模型是按字段的具體值來組織的。支持全文索引的NoSQL包括:Apache Lucene,Apache Solr。

      1.4 圖數(shù)據(jù)庫模型

      也可以看作是從Key-Value模型發(fā)展出來的一個分支,不同的是它的數(shù)據(jù)之間有著廣泛的關(guān)聯(lián),并且這種模型支持一些圖結(jié)構(gòu)的算法,以節(jié)點和邊(關(guān)系)模式進行存儲,非常適合社交網(wǎng)絡使用,如Neo4j,F(xiàn)lockDB等。

      NoSQL與關(guān)系型數(shù)據(jù)庫的差別,簡單總結(jié)如下:

      (1)NoSQL數(shù)據(jù)庫的數(shù)據(jù)模型通常與實際需求更貼近,沒有固定的格式,可以靈活插入數(shù)據(jù)和新的屬性。

      (2)使用NoSQL數(shù)據(jù)模型,通常需要對存儲的內(nèi)部結(jié)構(gòu)和實現(xiàn)算法有一定的了解。

      (3)使用NoSQL數(shù)據(jù)庫,通常要自己處理數(shù)據(jù)結(jié)構(gòu)解析和數(shù)據(jù)的冗余復制問題。

      (4)對于關(guān)系型數(shù)據(jù)庫來說,對數(shù)據(jù)分級存儲的處理并不強。但是對圖數(shù)據(jù)庫,或者說其它的NoSQL數(shù)據(jù)庫來說,對數(shù)據(jù)的分級處理都是預先考慮的。

      (5)NoSQL通常部署在多臺服務器上,并對數(shù)據(jù)進行分片和復制,這和部署在多臺服務器上的SQL不一樣,它們不依賴互相復制來保持同步,因而數(shù)據(jù)的一致性通常都較SQL差。

      由此,我們不難看出,盡管很多的NoSQL數(shù)據(jù)存儲都有簡單的查詢平臺可供編程和使用,但是大多為一次一記錄的方式[11],而且使用不同的編程語言去訪問數(shù)據(jù)[12],比成熟的SQL數(shù)據(jù)庫,即非過程化的一次一集合的關(guān)系數(shù)據(jù)庫來說,操控要難的多。

      2 可擴展的SQL數(shù)據(jù)庫

      在互聯(lián)網(wǎng)技術(shù)的發(fā)展中,由之產(chǎn)生的海量、分布式、分片數(shù)據(jù)存儲和訪問,給傳統(tǒng)的SQL數(shù)據(jù)庫帶來了沖擊和挑戰(zhàn)。在此背景下,基于改善關(guān)系數(shù)據(jù)庫的擴展性的產(chǎn)品和技術(shù)就產(chǎn)生了。其實,絕大多數(shù)的關(guān)系數(shù)據(jù)庫都具有一定的擴展性,如ORACLE的RAC。但是這并不能滿足WEB環(huán)境下的應用。如TWITTER在使用NoSAL CASSANDRA的同時,其核心的數(shù)據(jù)系統(tǒng)依然是MYSQL,但是在MYSQL上增添了新的功能,使其能滿足擴展性的要求;VMware的SQL Fire可以建造在SQL關(guān)系數(shù)據(jù)庫上,使其具有擴展性,是能管理數(shù)據(jù)備份和分區(qū)表的云端產(chǎn)品。此外還有開源的作為MySQL一部分的MySQL Cluster,高性能可擴展的運行在分布式服務器RAM上的關(guān)系數(shù)據(jù)庫VoltDB,可擴展到上百個節(jié)點,具有自動切片和備份功能且支持所有ACID特性的Clustrix,使用多服務器集群實現(xiàn)其擴展性的ScaleDB,建立在 MySQL上的可對多個單節(jié)點MySQL數(shù)據(jù)庫進行表切片,并自帶部分SQL語法分析器的ScaleBase,使用MVCC(多版本并發(fā)控制)和分布式對象存儲的NimbusDB等等[13]。這些可擴展的SQL數(shù)據(jù)庫的共同特點就是在傳統(tǒng)的SQL數(shù)據(jù)庫上,加上一些軟件,使傳統(tǒng)的SQL數(shù)據(jù)庫在滿足傳統(tǒng)的ACID特性的基礎上,能應用在多并發(fā),高訪問率的網(wǎng)絡上。這是SQL數(shù)據(jù)庫發(fā)展的一個重要的特點。

      3 未來數(shù)據(jù)存儲的發(fā)展

      NoSQL數(shù)據(jù)存儲的流行,不會很快就消失。NoSQL數(shù)據(jù)存儲系統(tǒng)的簡單,靈活,和優(yōu)異的擴展性,使其在網(wǎng)絡系統(tǒng)這一市場上獨占鰲頭,這一市場的特點是,具有成千上萬的用戶讀寫應用和相對簡單的數(shù)據(jù)模式。盡管關(guān)系數(shù)據(jù)庫的擴展性得到了改善,盡管NoSQL數(shù)據(jù)存儲的穩(wěn)定性,可靠性還有待于進一步驗證和改善,但是它仍將在網(wǎng)絡應用中獨具優(yōu)勢。ERIK MEIJER和GAVIN BIERMAN提出了大多數(shù)的鍵值型的NoSQL數(shù)據(jù)存儲的數(shù)據(jù)模型為類似于SQL的參照外碼和主碼的SQL模型的CoSQL,即雙SQL模型,稱鍵值型NoSQL就是CoSQL(Dual SQL)[14]。就像關(guān)系數(shù)據(jù)庫建立在由E.F.Codd提出的集合代數(shù)基礎上一樣,他們提出了一個基于集合的Monads的關(guān)系代數(shù)理論,這就使得適用于鍵值型NoSQL和SQL兩種數(shù)據(jù)庫的共同的查詢語言成為可能,而這可能會改變NoSQL市場的格局,使其由進入推出門檻低,很多的小供應商提供差異化的,實現(xiàn)技術(shù)不同的多樣化產(chǎn)品的壟斷市場向和關(guān)系數(shù)據(jù)庫相類似的獨占型市場轉(zhuǎn)化。眾所周知,關(guān)系數(shù)據(jù)庫市場中,只有少數(shù)的競爭對手,如Oracle,IBM,Microsoft,MySQL等。

      GOOGLE在BIGTABLE上建了MEGASTORE,使得其NoSQL的BIGTABLE在很多方面都類似于一個可擴展的關(guān)系數(shù)據(jù)庫[15],它具有和SQL非常接近的數(shù)據(jù)庫語言,支持層次化的訪問路徑和有限的數(shù)據(jù)連接。2011年四月,Citrusleaf發(fā)布了適用于廣告市場實時投標的新的數(shù)據(jù)庫技術(shù)Citrusleaf 2.0。Citrusleaf 2.0是一個鍵值存儲的NoSQL實時數(shù)據(jù)庫,具高可靠性,線性可擴展性,在大容量,數(shù)據(jù)密度大的網(wǎng)絡和移動環(huán)境中性能卓越,但是它能提供SQL數(shù)據(jù)庫所具有的ACID性能。Quest Software Inc.發(fā)布了支持Hapood的Apache Hive的開源NoSQL工具Toad。適用于云數(shù)據(jù)庫的Toad為NoSQL數(shù)據(jù)庫的Hive系統(tǒng)提供了一個用戶友好的SQL接口,方便開發(fā)者用SQL來查詢數(shù)據(jù),遷移和更新非關(guān)系數(shù)據(jù)。此系統(tǒng)也支持Apache Hbase,Amazon SimpleDB,Miscroft Azure,Apache Cassandra,以及所有的ODBC關(guān)系數(shù)據(jù)庫。上面我們已經(jīng)介紹了很多可擴展性的關(guān)系數(shù)據(jù)庫。由此可以看出NoSQL和SQL數(shù)據(jù)存儲之間的差距在縮?。篘oSQL趨于提供一個統(tǒng)一的SQL接口,而SQL則致力于能夠用于多節(jié)點的可分片的數(shù)據(jù)存儲中,同時不失其ACID特性。

      CAP理論認為在網(wǎng)絡數(shù)據(jù)共享的系統(tǒng)中,數(shù)據(jù)只能滿足一致性(consistency),高可用性(high availability)和分區(qū)容忍性(partition tolerance)中的兩個性能。University Berkeley的Eric Brewer認為,CAP實際上僅僅在數(shù)據(jù)庫的設計中設下了一個很小的限制,即完美的可用性和一致性在分區(qū)的存在下是非常少見的[16]??蓴U展的SQL和NoSQL上SQL層的建立,就是在數(shù)據(jù)庫的分區(qū)容忍性的基礎上,保持了包括一致性在內(nèi)的ACID特性。盡管如此,NoSQL和SQL依然是在各自的應用領域內(nèi)具有不可替代性。

      [1]Leavitt,Nea.Will NoSQUL Databases Live Up to Their Promise Computer[J].2010,43(2):12-14.

      [2]Giuseppe DeCandia.Dynamo:Amazon's Highly Available Key-value Store.21st ACM Symposium on Operating Systems Principles[C].Stevenson,WA,2007.

      [3]Fay Chang.Bigtable:A Distributed Storage System for Structured Data,Seventh Symposium on Operating System Design and Implementation[C].Seattle,WA,2006.

      [4]Charles Babcock.Cassandra Scores Big Wins For′NoSQL′Team[J].Informationweek,2010(1259):16.

      [5]Michael Rys.How do large-scale sites and applications remain SQL-based?[J].Communications of the ACM,2011,54(6):48-53.

      [6]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2006.

      [7]Brooks,Jason.Oracle Gives NoSQL Market a Boost[J].E Week,2011,28(17):8.

      [8]Guy Harrison.Oracle Joins the NoSQL Movement[J].Database Trends and Applications,2011(12):31.

      [9]Guy Harrison.NoSQL and Document-Oriented Databases[J].Database Trends and Applications,2010(12):32.

      [10]Eelco Plugge.The Definitive Guide to MongoDB:The NoSQL Database for Cloud and Desktop Computing[M].New York:Springer-Verlag,2010.

      [11]Michael Stonebraker.SQL Databases v.s.NoSQL Databases[J].Communications of the Acm,2010,53(4):10-11.

      [12]Jason Brooks.Does NoSQL Matter to Your Company?[J].EWeek,2011(19):18-19.

      [13]Rick Cattell.Scalable SQL and NoSQL Data Stores[J].ACM SIGMOD Record,2010,39(4):12-27.

      [14]Erik Meijer,Gavin Bierman.A Co-Relational Model of Data for Large Shared Data Banks[J].Communication of the ACM,2011,54(4):49-58.

      [15]Rick Cattell.Scalable SQL and NoSQL Data Stores,ACM SIGMOD Record[J],2010,39(4):12-27.

      [16]Eric Brewer.CAP Twelve Years Later:How the“Rules”Have Changed[J].Computer,2012(2):23-29.

      〔責任編輯 高?!?/p>

      NOSQL and Scalable SQL

      LU Mei-ying,GUO Xian-er
      (School of Mathematics and Computer Science,Shanxi Datong University,Datong Shanxi,037009)

      With the development of web-bases applications,the users create huge quantities of data.Yet they demand high speed accessibility despite of the fast growing traffic.NoSQL databases have

      a great deal of attention and are adopted by some famous web-based companies,which challenges greatly the traditional SQL databases,the relation database systems that dominate the database market in the past thirty years.This paper reviews the data model,technical development and application of the NoSQL databases,and the trend of a number of SQL databases.It states that SQL and NoSQL each has its own application niches and is used based on the system requirements,mainly,multi-version concurrency control,scalability,consistency,and speed tolerance,etc.

      NoSQL,Scalable SQL,Web-based Data Store

      O175.12

      A

      1674-0874(2012)05-0015-04

      2012-03-15

      呂美英(1967-),女,山西大同人,碩士,工程師,研究方向:數(shù)據(jù)庫原理與應用。

      猜你喜歡
      擴展性關(guān)系數(shù)據(jù)庫鍵值
      關(guān)系數(shù)據(jù)庫在高爐數(shù)據(jù)采集系統(tǒng)中的應用
      山東冶金(2022年2期)2022-08-08 01:51:30
      非請勿進 為注冊表的重要鍵值上把“鎖”
      提高初中階段學生英語擴展性閱讀能力策略分析
      一鍵直達 Windows 10注冊表編輯高招
      電腦愛好者(2017年9期)2017-06-01 21:38:08
      高中物理如何充分利用擴展性欄目
      學周刊(2016年26期)2016-09-08 09:02:56
      比ITX還小華擎推首款Mini—STX主板
      電腦愛好者(2016年8期)2016-04-28 20:54:47
      網(wǎng)絡教學平臺的擴展性研究
      基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索
      一種基于數(shù)據(jù)圖劃分的關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索方法
      基于用戶反饋的關(guān)系數(shù)據(jù)庫關(guān)鍵字查詢系統(tǒng)
      辛集市| 盱眙县| 盘锦市| 柳江县| 红安县| 会泽县| 乐清市| 汝州市| 鄢陵县| 邓州市| 会昌县| 天长市| 丘北县| 南部县| 静乐县| 岱山县| 肥乡县| 连云港市| 通江县| 大庆市| 正蓝旗| 冕宁县| 长垣县| 富裕县| 顺平县| 高州市| 西畴县| 清新县| 大冶市| 长治市| 南投县| 万载县| 岚皋县| 克东县| 晋州市| 峨山| 正镶白旗| 明溪县| 昭苏县| 剑河县| 大城县|