NoSQL聚合數據模型


NoSQL聚合數據模型

特點

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

缺點

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

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

規划數據訪問方式

選用NoSQL數據庫,首要的工作就是設計鍵名及存放的數據;
設計的原則是盡量減少所需要訪問的聚合個數,在盡量少的交互中拿到所需要的數據;
如果發現需要通過多種查詢條件來獲取數據,可能就選用NOSQL就不合適;關系數據庫才是首選;

面向聚合的數據庫

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

    訪問方式:通過鍵來查找

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

相關:關系數據模型

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

附 思維導圖

NoSQL:數據模型

 

參考

《NoSql精粹》

 

Posted by: 大CC | 27APR,2014
博客:blog.me115.com [訂閱]
微博:新浪微博


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM