Neo4j

Neo4j

網絡的數據庫
Neo4j是一個高性能的,NOSQL圖形數據庫,它将結構化數據存儲在網絡上而不是表中。它是一個嵌入式的、基于磁盤的、具備完全的事務特性的Java持久化引擎,但是它将結構化數據存儲在網絡(從數學角度叫做圖)上而不是表中。Neo4j也可以被看作是一個高性能的圖引擎,該引擎具有成熟數據庫的所有特性。
  • 中文名:Neo4j圖形數據庫
  • 外文名:Neo4j
  • 别名:
  • 定 義:面向網絡的數據庫
  • 類 型:一種非常高效的數據存儲結構
  • 屬 性:計算機術語

簡介

你可以把Neo看作是一個高性能的圖引擎,該引擎具有成熟和健壯的數據庫的所有特性。程序員工作在一個面向對象的、靈活的網絡結構下而不是嚴格、靜态的表中——但是他們可以享受到具備完全的事務特性、企業級的數據庫的所有好處。

Neo是一個網絡——面向網絡的數據庫——也就是說,它是一個嵌入式的、基于磁盤的、具備完全的事務特性的Java持久化引擎,但是它将結構化數據存儲在網絡上而不是表中。網絡(從數學角度叫做圖)是一個靈活的數據結構,可以應用更加敏捷和快速的開發模式。

作為一種無模式的數據存儲模型,圖形數據庫Neo4j善于處理大量複雜、互連接且低結構化的數據,同時可以應用圖論進行各種複雜嚴密的數學計算,挖掘數據間的關聯關系。

特點

1.對象關系的不匹配使得把面向對象的“圓的對象”擠到面向關系的“方的表”中是那麼的困難和費勁,而這一切是可以避免的。

2.關系模型靜态、剛性、不靈活的本質使得改變schemas以滿足不斷變化的業務需求是非常困難的。由于同樣的原因,當開發小組想應用敏捷軟件開發時,數據庫經常拖後腿。

3.關系模型很不适合表達半結構化的數據——而業界的分析家和研究者都認為半結構化數據是信息管理中的下一個重頭戲。

4.網絡是一種非常高效的數據存儲結構。人腦是一個巨大的網絡,萬維網也同樣構造成網狀,這些都不是巧合。關系模型可以表達面向網絡的數據,但是在遍曆網絡并抽取信息的能力上關系模型是非常弱的。

雖然Neo是一個比較新的開源項目,但它已經在具有1億多個節點、關系和屬性的産品中得到了應用,并且能滿足企業的健壯性和性能的需求:

完全支持JTA和JTS、2PC分布式ACID事務、可配置的隔離級别和大規模、可測試的事務恢複。這些不僅僅是口頭上的承諾:Neo已經應用在高請求的24/7環境下超過3年了。它是成熟、健壯的,完全達到了部署的門檻。

圖:是指數據原理裡的樹集合成的網絡。

Neo4j是一個嵌入式,基于磁盤的,支持完整事務的Java持久化引擎,它在圖(網絡)中而不是表中存儲數據。Neo4j提供了大規模可擴展性,在一台機器上可以處理數十億節點/關系/屬性的圖,可以擴展到多台機器并行運行。相對于關系數據庫來說,圖數據庫善于處理大量複雜、互連接、低結構化的數據,這些數據變化迅速,需要頻繁的查詢——在關系數據庫中,這些查詢會導緻大量的表連接,因此會産生性能上的問題。Neo4j重點解決了擁有大量連接的傳統RDBMS在查詢時出現的性能衰退問題。通過圍繞圖進行數據建模,Neo4j會以相同的速度遍曆節點與邊,其遍曆速度與構成圖的數據量沒有任何關系。此外,Neo4j還提供了非常快的圖算法、推薦系統和OLAP風格的分析,而這一切在目前的RDBMS系統中都是無法實現的。

由于使用了“面向網絡的數據庫”,人們對Neo充滿了好奇。在該模型中,以“節點空間”來表達領域數據——相對于傳統的模型表、行和列來說,節點空間是很多節點、關系和屬性(鍵值對)構成的網絡。關系是第一級對象,可以由屬性來注解,而屬性則表明了節點交互的上下文。網絡模型完美的匹配了本質上就是繼承關系的問題域,例如語義Web應用。Neo的創建者發現繼承和結構化數據并不适合傳統的關系數據庫模型:

上一篇:TURBO

下一篇:三星大器Ⅲ

相關詞條

相關搜索

其它詞條