<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hengheng123456789

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks
    轉自:http://baike.baidu.com/view/2677528.htm

    簡介

      NoSQL,意即反SQL運動,是一項全新的數據庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對于目前鋪天蓋地的關系型數據庫運用,這一概念無疑是一種全新的思維的注入。

    編輯本段現今狀況

      現今的計算機體系結構在數據存儲方面要求具備龐大的水平擴展性①,而NoSQL致力于改變這一現狀。目前Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型數據庫。
      NoSQL項目的名字上看不出什么相同之處,但是,它們通常在某些方面相同:它們可以處理超大量的數據。
      這場革命目前仍然需要等待。的確,NoSQL對大型企業來說還不是主流,但是,一兩年之后很可能就會變個樣子。在NoSQL運動的最新一次聚會中,來自世界各地的150人擠滿了CBS Interactive的一間會議室。分享他們如何推翻緩慢而昂貴的關系數據庫的暴政,怎樣使用更有效和更便宜的方法來管理數據。
      “關系型數據庫給你強加了太多東西。它們要你強行修改對象數據,以滿足RDBMS (relational database management system,關系型數據庫管理系統)的需要,”在NoSQL擁護者們看來,基于NoSQL的替代方案“只是給你所需要的”。
      1.水平擴展性(horizontal scalability)指能夠連接多個軟硬件的特性,這樣可以將多個服務器從邏輯上看成一個實體。

    編輯本段我們為什么要使用NOSQL非關系數據庫?

      隨著互聯網web2.0網站的興起,非關系型的數據庫現在成了一個極其熱門的新領域,非關系數據庫產品的發展非常迅速。而傳統的關系數據庫在應付web2.0網站,特別是超大規模和高并發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,例如:
      1、High performance - 對數據庫高并發讀寫的需求
      web2.0網站要根據用戶個性化信息來實時生成動態頁面和提供動態信息,所以基本上無法使用動態頁面靜態化技術,因此數據庫并發負載非常高,往往要達到每秒上萬次讀寫請求。關系數據庫應付上萬次SQL查詢還勉強頂得住,但是應付上萬次SQL寫數據請求,硬盤IO就已經無法承受了。其實對于普通的BBS網站,往往也存在對高并發寫請求的需求。
      2、Huge Storage - 對海量數據的高效率存儲和訪問的需求
      對于大型的SNS網站,每天用戶產生海量的用戶動態,以國外的Friendfeed為例,一個月就達到了2.5億條用戶動態,對于關系數據庫來說,在一張2.5億條記錄的表里面進行SQL查詢,效率是極其低下乃至不可忍受的。再例如大型web網站的用戶登錄系統,例如騰訊,盛大,動輒數以億計的帳號,關系數據庫也很難應付。
      3、High Scalability && High Availability- 對數據庫的高可擴展性和高可用性的需求
      在基于web的架構當中,數據庫是最難進行橫向擴展的,當一個應用系統的用戶量和訪問量與日俱增的時候,你的數據庫卻沒有辦法像web server和app server那樣簡單的通過添加更多的硬件和服務節點來擴展性能和負載能力。對于很多需要提供24小時不間斷服務的網站來說,對數據庫系統進行升級和擴展是非常痛苦的事情,往往需要停機維護和數據遷移,為什么數據庫不能通過不斷的添加服務器節點來實現擴展呢?
      在上面提到的“三高”需求面前,關系數據庫遇到了難以克服的障礙,而對于web2.0網站來說,關系數據庫的很多主要特性卻往往無用武之地,例如:
      1、數據庫事務一致性需求
      很多web實時系統并不要求嚴格的數據庫事務,對讀一致性的要求很低,有些場合對寫一致性要求也不高。因此數據庫事務管理成了數據庫高負載下一個沉重的負擔。
      2、數據庫的寫實時性和讀實時性需求
      對關系數據庫來說,插入一條數據之后立刻查詢,是肯定可以讀出來這條數據的,但是對于很多web應用來說,并不要求這么高的實時性。
      3、對復雜的SQL查詢,特別是多表關聯查詢的需求
      任何大數據量的web系統,都非常忌諱多個大表的關聯查詢,以及復雜的數據分析類型的復雜SQL報表查詢,特別是SNS類型的網站,從需求以及產品設計角度,就避免了這種情況的產生。往往更多的只是單表的主鍵查詢,以及單表的簡單條件分頁查詢,SQL的功能被極大的弱化了。
      因此,關系數據庫在這些越來越多的應用場景下顯得不那么合適了,為了解決這類問題的非關系數據庫應運而生。
      NoSQL 是非關系型數據存儲的廣義定義。它打破了長久以來關系型數據庫與ACID理論大一統的局面。NoSQL 數據存儲不需要固定的表結構,通常也不存在連接操作。在大數據存取上具備關系型數據庫無法比擬的性能優勢。該術語在 2009 年初得到了廣泛認同。
      當今的應用體系結構需要數據存儲在橫向伸縮性上能夠滿足需求。而 NoSQL 存儲就是為了實現這個需求。Google 的BigTable與Amazon的Dynamo是非常成功的商業 NoSQL 實現。一些開源的 NoSQL 體系,如Facebook 的Cassandra, Apache 的HBase,也得到了廣泛認同。從這些NoSQL項目的名字上看不出什么相同之處:Hadoop、Voldemort、Dynomite,還有其它很多。

    編輯本段特點

      它們可以處理超大量的數據
      它們運行在便宜的PC服務器集群上
      PC集群擴充起來非常方便并且成本很低,避免了“sharding”操作的復雜性和成本。
      它們擊碎了性能瓶頸
      NoSQL的支持者稱,通過NoSQL架構可以省去將Web或Java應用和數據轉換成SQL友好格式的時間,執行速度變得更快。
      “SQL并非適用于所有的程序代碼,” 對于那些繁重的重復操作的數據,SQL值得花錢。但是當數據庫結構非常簡單時,SQL可能沒有太大用處。
      沒有過多的操作
      雖然NoSQL的支持者也承認關系數據庫提供了無可比擬的功能集合,而且在數據完整性上也發揮絕對穩定,他們同時也表示,企業的具體需求可能沒有那么多。
      Bootstrap支持
      因為NoSQL項目都是開源的,因此它們缺乏供應商提供的正式支持。這一點它們與大多數開源項目一樣,不得不從社區中尋求支持。

    編輯本段缺點

      但是一些人承認,沒有正式的官方支持,萬一出了差錯會是可怕的,至少很多管理人員是這樣看。
      “我們確實需要做一些說服工作,”,“但基本在他們看到我們的第一個原型運行良好之后,我們就能夠說服他們,這是條正確的道路。”
    轉自:http://en.wikipedia.org/wiki/NoSQL

    History

    The term NoSQL was used in 1998 as the name for a lightweight open source relational database that did not expose a SQL interface. Its author, Carlo Strozzi, claims that as the NoSQL movement "departs from the relational model altogether it should therefore have been called more appropriately 'NoREL', or something to that effect."[5]

    Eric Evans, a Rackspace employee, reintroduced the term NoSQL in early 2009 when Johan Oskarsson of Last.fm wanted to organize an event to discuss open-source distributed databases.[6] The name attempted to label the emergence of a growing number of non-relational, distributed data stores that often did not attempt to provide ACIDguarantees (the key attributes of classic relational database systems such as IBM DB2MySQLMicrosoft SQL ServerPostgreSQLOracle RDBMS, etc).

    The "no:sql(east)" conference 2009 in Atlanta had a strong influence on the NoSQL debate. Its self-conception was "a conference of non-relational data stores", and its motto was "select fun, profit from real_world where relational=false;". Thus, the most common interpretation of "NoSQL" is "non-relational". Another solution is to use the term "NoREL", which is not widely used. Either way, NoSQL is not meant as anti-RDBMS but emphasizes the advantages of Key-Value Stores, Document Databases, and Graph Databases.[citation needed]

    [edit]Architecture

    Typical modern relational databases have shown poor performance on certain data-intensive applications, including indexing a large number of documents, serving pages on high-traffic websites, and delivering streaming media.[7] Typical RDBMS implementations are tuned either for small but frequent read/write transactions or for large batch transactions with rare write accesses. NoSQL on the other hand, services heavy read/write workloads.[7] Real-world NoSQL deployments include Digg's 3 TB for green badges (markers that indicate stories upvoted by others in a social network),[8] Facebook's 50 TB for inbox search, and eBay's 2 PB overall data.

    NoSQL architectures often provide weak consistency guarantees, such as eventual consistency, or transactions restricted to single data items. Some systems, however, provide full ACID guarantees, in some instances by adding a supplementary middleware layer (e.g., CloudTPS).[9] Two systems have been developed that provide snapshot isolation for column stores: Google's Percolator system based on BigTable[10], and a transactional system for HBase developed at the University of Waterloo[11]. These systems, developed independently, use similar concepts to achieve multi-row distributed ACID transactions with snapshot isolation guarantee for the underlying column store, without the extra overhead of data management, middleware system deployment, or maintenance introduced by the middleware layer.

    Several NoSQL systems employ a distributed architecture, with the data held in a redundant manner on several servers, often using a distributed hash table. In this way, the system can readily scale out by adding more servers, and failure of a server can be tolerated.[12]

    Some NoSQL advocates[who?] promote very simple interfaces such as associative arrays or key-value pairs. Other systems, such as native XML databases, promote support of the XQuery standard.[citation needed] <>

    [edit]Taxonomy

    NoSQL implementations can be categorized by their manner of implementation:

    [edit]Document store

    [edit]Graph

    [edit]Key/value store on disk

    [edit]Key/value cache in RAM

    [edit]Eventually‐consistent key‐value store

    [edit]Key-value stores implementing the Paxos algorithm

    [edit]Hierarchical key-value store

    [edit]Ordered key-value store

    [edit]Multivalue databases

    [edit]Object database

    [edit]Tabular

    [edit]Tuple store

    [edit]See also

    posted on 2010-12-20 11:35 哼哼 閱讀(363) 評論(0)  編輯  收藏 所屬分類: JAVA-DB
    主站蜘蛛池模板: 免费一级毛片在线观看| 久久精品国产精品亚洲毛片| 中文字幕免费在线看电影大全 | 亚洲色偷偷综合亚洲AV伊人蜜桃 | 男人和女人高潮免费网站| 亚洲码国产精品高潮在线| 97性无码区免费| 日产久久强奸免费的看| 中文字幕亚洲精品资源网| 日韩人妻无码免费视频一区二区三区| 尤物视频在线免费观看| 亚洲国产精品午夜电影| 亚洲JIZZJIZZ中国少妇中文| 99久久精品免费视频| 黄色一级免费网站| 亚洲综合中文字幕无线码| 国产亚洲精品无码拍拍拍色欲| 18禁止观看免费私人影院| 成av免费大片黄在线观看| 亚洲无吗在线视频| 亚洲av午夜成人片精品网站| 青草草在线视频永久免费| 99久热只有精品视频免费观看17| 国产亚洲精品欧洲在线观看| 亚洲天堂一区在线| 亚洲国产精品成人久久| 又大又黄又粗又爽的免费视频| 黄色网址免费观看| 免费一区二区三区| 一级做a毛片免费视频| 亚洲中文字幕AV在天堂| 亚洲va在线va天堂va不卡下载| 免费成人午夜视频| 免费毛片在线视频| 成人免费观看一区二区| 国产成人免费AV在线播放| 免费人成又黄又爽的视频在线电影| 亚洲一区二区久久| 亚洲综合激情另类小说区| 亚洲AV永久无码区成人网站| 亚洲狠狠爱综合影院婷婷|