導讀:無論是關系型數據庫還是非關系型數據庫,都是某種數據模型的實現。本文將為大家簡要介紹5種常見的數據模型,讓我們來追本溯源,窺探現在流行的數據庫解決方案背后的神秘世界。
什么是數據模型?
訪問數據庫中的數據取決于數據庫實現的數據模型。數據模型會影響客戶端通過API對數據的操作。不同的數據模型可能會提供或多或少的功能。一般而言,數據模型不會直接提供過多的功能,許多功能必須由客戶端自行實現。
數據模型決定了客戶端如何對數據進行編碼存儲。應用程序需要某種域模型與存儲技術支持的特性進行映射。
迄今為止,主導的數據模型仍然是關系模型。在這里,我們主要想為大家介紹一下非關系模型,作為對比,本文也會簡要介紹一下關系模型。
數據模型概述
1.關系模型
關系模型使用記錄(由元組組成)進行存儲,記錄存儲在表中,表由架構界定。表中的每個列都有名稱和類型,表中的所有記錄都要符合表的定義。SQL是專門的查詢語言,提供相應的語法查找符合條件的記錄,如表聯接(Join)。表聯接可以基于表之間的關系在多表之間查詢記錄。
表中的記錄可以被創建和刪除,記錄中的字段也可以單獨更新。
關系模型數據庫通常提供事務處理機制,這為涉及多條記錄的自動化處理提供了解決方案。
對不同的編程語言而言,表可以被看成數組、記錄列表或者結構。表可以使用B樹和哈希表進行索引,以應對高性能訪問。
2.鍵值存儲
鍵值存儲提供了基于鍵對值的訪問方式。
鍵值對可以被創建或刪除,與鍵相關聯的值可以被更新。
鍵值存儲一般不提供事務處理機制。
對不同的編程語言而言,鍵值存儲類似于哈希表。對此,不同的編程語言有不同的名字(如,Java稱之為“HashMap”,Perl稱之為“hash”,Python稱之為“dict”,PHP稱之為“associative array”),C++則稱之為“boost::unordered_map<…>”。
鍵值存儲支持鍵上自有的隱式索引。
鍵值存儲看起來好像不太有用,但卻可以在“值”上存儲大量信息?!爸怠笨梢允且粋€XML文檔,一個JSON對象,或者其它任何序列化形式。
重要的是,鍵值存儲引擎并不在意“值”的內部結構,它依賴客戶端對“值”進行解釋和管理。
3.文檔存儲
文檔存儲支持對結構化數據的訪問,不同于關系模型的是,文檔存儲沒有強制的架構。
事實上,文檔存儲以封包鍵值對的方式進行存儲。在這種情況下,應用對要檢索的封包采取一些約定,或者利用存儲引擎的能力將不同的文檔劃分成不同的集合,以管理數據。
與關系模型不同的是,文檔存儲模型支持嵌套結構。例如,文檔存儲模型支持XML和JSON文檔,字段的“值”又可以嵌套存儲其它文檔。文檔存儲模型也支持數組和列值鍵。
與鍵值存儲不同的是,文檔存儲關心文檔的內部結構。這使得存儲引擎可以直接支持二級索引,從而允許對任意字段進行高效查詢。支持文檔嵌套存儲的能力,使得查詢語言具有搜索嵌套對象的能力,XQuery就是一個例子。MongoDB通過支持在查詢中指定JSON字段路徑實現類似的功能。
4.列式存儲
如果翻轉數據,列式存儲與關系存儲將會非常相似。與關系模型存儲記錄不同,列式存儲以流的方式在列中存儲所有的數據。對于任何記錄,索引都可以快速地獲取列上的數據。
Map-reduce的實現Hadoop的流數據處理效率非常高,列式存儲的優點體現的淋漓極致。因此,HBase和Hypertable通常作為非關系型數據倉庫,為Map-reduce進行數據分析提供支持。
關系類型的列標對數據分析效果不好,因此,用戶經常將更復雜的數據存儲在列式數據庫中。這直接體現在Cassandra中,它引入的“column family”可以被認為是一個“super-column”。
列式存儲支持行檢索,但這需要從每個列獲取匹配的列值,并重新組成行。
(列式數據庫InfoBright 數據倉庫性能很不錯)
5.圖形數據庫
圖形數據庫存儲頂點和邊的信息,有的支持添加注釋。
圖形數據庫可用于對事物建模,如社交圖譜、真實世界的各種對象。IMDB(Internet Movie Database)站點的內容就組成了一幅復雜的圖像,演員與電影彼此交織在一起。
圖形數據庫的查詢語言一般用于查找圖形中斷點的路徑,或端點之間路徑的屬性。Neo4j是一個典型的圖形數據庫。
選擇哪一種數據模型?
數據模型有著各自的優缺點,它們適用于不同的領域。不管是選擇關系模型,還是非關系模型,都要根據實際應用的場景做出選擇。也許你會發現單一的數據模型不能滿足你的解決方案,許多大型應用可能需要集成多種數據模型。(張志平/編譯)
圖形數據庫是一種非關系型數據庫,它應用圖形理論存儲實體之間的關系信息。最常見的一個例子,就是社會網絡中人與人之間的關系。關系型數據庫用于存儲“關系型”數據的效果并不好,其查詢復雜、緩慢、超出預期,而圖形數據庫的獨特設計恰恰彌補了這個缺陷。
Google的圖形計算系統名為Pregel,下面讓我們來為您介紹幾個流行的圖形數據庫。
1. Neo4j
Neo4j是一個流行的圖形數據庫,它是開源的。
2. FlockDB
FlockDB是Twitter為進行關系數據分析而構建的。FlockDB迄今為止還沒有穩定的版本,對于它是否是一個真正的圖形數據庫,尚有爭議。
3. AllegroGraph
AllegroGraph是一個基于W3c標準的為資源描述框架構建的圖形數據庫。它為處理鏈接數據和Web語義而設計,支持SPARQL、RDFS++和Prolog。
4. GraphDB
GraphDB是德國sones公司在.NET基礎上構建的。GraphDB托管在Windows Azure平臺上。
5. InfiniteGraph
InfiniteGraph基于Java實現,它的目標是構建“分布式的圖形數據庫”,已被美國國防部和美國中央情報局所采用。
在上周的Strata大會上,與會者透露出有關下代Hadoop的消息。包括對6000節點的支持、配備高可用性的HDFS以及下一代MapReduce的特性等。而未來Hadoop替代操作系統的大膽想法也讓我們充滿無限遐想。
在Strata會議上Hortonworks創始人和Apache Hadoop項目VP Arun Murthy透露新版Hadoop的相關特性。下一代的Hadoop將支持6000節點,同時配備高可用性的HDFS(Hadoop Distributed File System)。
而下一代MapReduce框架則被命名為YARN或MRv2(MapReduce version 2)。新框架已經不再是傳統的MapReduce框架,甚至與MapReduce無關,YARN可被看做是通用的運行時框架,用戶可以編寫自己的計算框架,在該運行環境中運行。經過改良的MapReduce將分離HDFS中塊和命名空間的管理,提高數據的可伸縮性。最重要的是改良后的MapReduce將對非MapReduce應用進行支持,這使得更多類型應用將具備在MapReduce工作的能力。
谷歌搜索演進
作為全球使用最廣泛的搜索引擎,谷歌算法一直有一層神秘面紗。近日谷歌工程總監斯科特·霍夫曼向騰訊科技講述谷歌算法幕后故事,稱2011年有520多項改進,自2003年到現在,Google搜索已解決4500億個搜索請求。
斯科特還透露,谷歌一個搜索請求平均往返于電腦和數據中心單程距離是750英里,這也意味著一次搜索請求平均往返需要1500英里,約合2400公里。
RavenDB:基于Windows/.NET平臺的NoSQL數據庫
眾所周知,NoSQL運動旨在成為大數據時代傳統關系數據庫管理系統的替代品。如今Microsoft對開源的態度有所轉變,RavenDB就是很好的例子。Microsoft對RavenDB(NoSQL數據庫)的認可令很多人感到驚訝。RavenDB可以輕易的替代關系數據庫管理系統并兼容以往的.NET應用。
RavenDB是針對Windows/.NET平臺而設計的文檔數據庫。RavenDB的出現將.NET應用與非關系數據庫連接到一起。數據以Shcema-less方式存儲,并直接通過HTTP、RESTful API或更方便的.NET客戶端API連接。.NET客戶端API使用LINQ操作RavenDB數據庫文檔存儲。
亞馬遜對用戶推出的Web服務,使它成為迄今為止最大的云服務提供商。就像大多數的大型云供應商一樣,亞馬遜并沒有就當前或計劃中的數據中心透露太多。
埃森哲分析師Huan Liu的最新研究結果顯示,亞馬遜的Elastic Compute Cloud(EC2)在高達45萬臺服務器上運行。亞馬遜沒有公布AWS的營收,但有人表示它可能已經是一項10億美元的業務。
本文預計Rackspace、Google、微軟、IBM、惠普、VMware、Facebook這七家公司將成為亞馬遜的云對手。
由于在云環境中,IT團隊缺乏對數據安全的直接控制,所以數據遷移到云環境將會給IT團隊帶來新的復雜的安全問題。此外,云供應商認為數據安全是需要共同承擔責任,即服務供應商保證物理安全,用戶必須保護其服務器和數據的安全。這將需要新的加密策略和密鑰管理策略,將密鑰存儲在云環境外部,而不是云環境中。
初創安全公司Porticor剛剛推出了一個解決方案,專門解決云環境中靜態數據安全問題。Porticor公司提供了一種分離密鑰加密解決方案,云客戶是唯一知道主密鑰的人。另外,Porticor公司解決了所有與加密數據有關的復雜問題,客戶幾乎不要去想這些問題。這種獨特的密鑰管理解決方案既提供了安全性,也提供了便利性。
微軟上周下調了其Azure云存儲服務和Windows Azure Extra Small計算服務的價格。此舉是微軟在亞馬遜下調其Web服務價格幾天之后采取的行動。
這一切意味著什么?對于IT買主來說,云計算價格正在迅速下降并且已經與電費水平一樣??紤]到電費受天然氣價格、季節和其它可變因素的影響,云計算的價格可能更便宜。
轉自:http://blog.csdn.net/hguisu/article/details/12521597
原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/2624