NoSQL聚合數據模型

http://www.cnblogs.com/me115/p/3809482.html

NoSQL聚合數據模型

NoSQL聚合數據模型

特點

聚合數據模型的特點就是把經常訪問的數據放在一起(聚合在一塊); 
這樣帶來的好處很明顯,對於某個查詢請求,能夠在與數據庫一次交互中將所有數據都取出來; 
當然,以這種方式存儲不可避免的會有重複,重複是爲了更少的交互;

缺點

  • 聚合結構對某些交互有利,卻阻礙另一些交互; 
    比如:以學生學號聚合學生信息(含學生姓名、班級、年齡、等信息,甚至英語學科成績),通過學號查詢時,能夠在一次交互中查詢出該學生的所有信息,但如果想通過學生姓名來查詢,就很困難;

  • 不支持跨越多個聚合的ACID事務 
    聚合結構在事務方面的支持有限;有一些NOSQL產品實現了簡單的事務支持,但對於跨越多個聚合結構的事務並不完善;

規劃數據訪問方式

選用NoSQL數據庫,首要的工作就是設計鍵名及存放的數據; 

設計的原則是儘量減少所需要訪問的聚合個數,在儘量少的交互中拿到所需要的數據; 
如果發現需要通過多種查詢條件來獲取數據,可能就選用NOSQL就不合適;關係數據庫纔是首選;

面向聚合的數據庫

  • 鍵值數據庫 
    可以存儲任意數據,存儲的數據對用戶不透明,從外面看,只是包含了沒有太多意義的大塊數據;

    訪問方式:通過鍵來查找

  • 文檔數據庫 
    文檔數據庫存儲時定義了其允許的結構和數據類型,從外面看,可以看到內部結構; 
    在存儲時限制其中存放的數據,這樣帶來的好處是能夠更靈活的訪問數據; 
    訪問方式: 
    1.可用鍵名查詢 
    2.可用聚合中的字段查詢(定義存儲的數據的結構所帶來的好處) 
    3.可按照聚合內容創建索引

相關:關係數據模型

對於數據模型,我們最熟悉的莫過於關係數據模型; 
關係數據模型是一種“聚合無知模型”; 
在組織數據時,使用E-R模型規劃清晰; 
這樣帶來的好處是很容易以不同的方式來查詢數據(各種where條件甚至join) 
關係型數據庫都是使用關係數據模型,比如oracle;

附 思維導圖

NoSQL:數據模型

http://blog.csdn.net/u010892841/article/details/43061671

NoSQL數據模型詳解(四)の聚合型小結

分類:數據庫

背景

在前三篇文章中已經介紹了NoSQL中屬於聚合模型的三種數據庫:鍵值型、文檔型、列族型。下面針對三種聚合數據模型的共同點和不同點加以分析以便很好的來認識掌握各自的特點。

相同點

三種面向聚合的數據模型的共同點是,他們都是用聚合這一概念,而且聚合中都有一個可以查找其內容的索引鍵。在集羣上運行時,聚合都是重點環節,因爲數據庫必須保證將聚合內的數據存在同一節點上。聚合還是”更新“操作的最小數據單位,對於事務控制來說,以聚合爲操作單元,其大小正合適。

不同點

鍵值數據模型將聚合看作不透明的整體,這意味着只能根據鍵來查出整個聚合,而不能僅僅查詢或獲取其中的一部分。

文檔模型的聚合對數據透明,於是就可以只查詢或獲取其中的一部分數據,不過,由於文檔沒有模式,因此想優化存儲並獲取聚合中的部分內容時,數據庫不太好調整文檔結構。

列族模型把聚合分爲列族,讓數據庫將其視爲行聚合內的一個數據單元。此類聚合的結構有某種限制,但是數據庫可利用此種結構的優點來提高其易訪問性。


發佈了44 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章