NoSQL聚合數據模型
特點
聚合數據模型的特點就是把經常訪問的數據放在一起(聚合在一塊);
這樣帶來的好處很明顯,對於某個查詢請求,能夠在與數據庫一次交互中將所有數據都取出來;
當然,以這種方式存儲不可避免的會有重復,重復是為了更少的交互;
缺點
-
聚合結構對某些交互有利,卻阻礙另一些交互;
比如:以學生學號聚合學生信息(含學生姓名、班級、年齡、等信息,甚至英語學科成績),通過學號查詢時,能夠在一次交互中查詢出該學生的所有信息,但如果想通過學生姓名來查詢,就很困難; -
不支持跨越多個聚合的ACID事務
聚合結構在事務方面的支持有限;有一些NOSQL產品實現了簡單的事務支持,但對於跨越多個聚合結構的事務並不完善;
規划數據訪問方式
選用NoSQL數據庫,首要的工作就是設計鍵名及存放的數據;
設計的原則是盡量減少所需要訪問的聚合個數,在盡量少的交互中拿到所需要的數據;
如果發現需要通過多種查詢條件來獲取數據,可能就選用NOSQL就不合適;關系數據庫才是首選;
面向聚合的數據庫
-
鍵值數據庫
可以存儲任意數據,存儲的數據對用戶不透明,從外面看,只是包含了沒有太多意義的大塊數據;訪問方式:通過鍵來查找
-
文檔數據庫
文檔數據庫存儲時定義了其允許的結構和數據類型,從外面看,可以看到內部結構;
在存儲時限制其中存放的數據,這樣帶來的好處是能夠更靈活的訪問數據;
訪問方式:
1.可用鍵名查詢
2.可用聚合中的字段查詢(定義存儲的數據的結構所帶來的好處)
3.可按照聚合內容創建索引
相關:關系數據模型
對於數據模型,我們最熟悉的莫過於關系數據模型;
關系數據模型是一種“聚合無知模型”;
在組織數據時,使用E-R模型規划清晰;
這樣帶來的好處是很容易以不同的方式來查詢數據(各種where條件甚至join)
關系型數據庫都是使用關系數據模型,比如oracle;
附 思維導圖
參考
Posted by: 大CC | 27APR,2014
博客:blog.me115.com [訂閱]
微博:新浪微博