01 知識圖譜基礎

1 基本概念

  • 圖形是一組節(jié)點和連接這些節(jié)點的關系
    • 圖形以屬性的形式將數據存儲在節(jié)點和關系中;
    • 屬性是用于表示數據的鍵值對;
  • 圖庫的主要作用:
    • 主要用于存儲更多的連接數據;
    • RDBMS存儲更多連接的數據,不能提供用于遍歷大量數據的適當性能;在這情況下,Graph Database提高了應用程序性能;
  • 在圖形理論中,我們可以表示一個帶有圓的節(jié)點,節(jié)點之間的關系用一個箭頭標記表示
    • 單個節(jié)點:不包含任何屬性
1567565195539.png
  • 帶有屬性的節(jié)點:屬性是一個名稱:值對
1567565223340.png
  • 兩個節(jié)點之間創(chuàng)建關系:
1567565244714.png
  • 節(jié)點關系:
1567565280118.png
  • 單向關系:ABC到PQR
  • 雙向關系: ABC到XYZ

2 數據模型

2.1 屬性圖模型規(guī)則

  • 表示節(jié)點,關系和屬性中的數據
  • 節(jié)點和關系都包含屬性
  • 關系連接節(jié)點
  • 屬性是鍵值對
  • 節(jié)點用圓圈表示,關系用方向鍵表示
  • 關系具有方向:單向和雙向。
  • 每個關系包含“開始節(jié)點”或“從節(jié)點”和“到節(jié)點”或“結束節(jié)點”

Neo4j圖數據庫需要注意的事項:

  1. “關系應該是方向性的”:在屬性圖數據模型中,關系應該是定向的。如果我們嘗試創(chuàng)建沒有方向的關系,那么它將拋出一個錯誤消息;
  2. 將其所有數據存儲在節(jié)點和關系中。不需要任何額外的RRBMS數據庫或無SQL數據庫來存儲Neo4j數據庫數據。它以圖形的形式存儲其數據的本機格式;
  3. 本機GPE(圖形處理引擎)引擎來使用它的本機圖存儲格式

2.2 主要構建模塊

  • 節(jié)點
  • 關系
  • 屬性
1567565602658.png

這里我們使用圓圈表示節(jié)點。 使用箭頭的關系。 關系是有方向性的。 我們可以用Properties(鍵值對)來表示Node的數據。 在這個例子中,我們在Node的Circle中表示了每個Node的Id屬性。

3 Neo4j 特點和優(yōu)勢

3.1 特點

  • SQL就像簡單的查詢語言Neo4j CQL
  • 它遵循屬性圖數據模型
  • 它通過使用Apache Lucence支持索引
  • 它支持UNIQUE約束
  • 它包含一個用于執(zhí)行CQL命令的UI:Neo4j數據瀏覽器
  • 它支持完整的ACID(原子性,一致性,隔離性和持久性)規(guī)則
  • 它采用原生圖形庫與本地GPE(圖形處理引擎)
  • 它支持查詢的數據導出到JSON和XLS格式
  • 它提供了REST API,可以被任何編程語言(如Java,Spring,Scala等)訪問
  • 它提供了可以通過任何UI MVC框架(如Node JS)訪問的Java腳本
  • 它支持兩種Java API:Cypher API和Native Java API來開發(fā)Java應用程序

3.2 優(yōu)點

  • 它很容易表示連接的數據
  • 檢索/遍歷/導航更多的連接數據是非常容易和快速的
  • 它非常容易地表示半結構化數據
  • Neo4j CQL查詢語言命令是人性化的可讀格式,非常容易學習
  • 它使用簡單而強大的數據模型
  • 它不需要復雜的連接來檢索連接的/相關的數據,因為它很容易檢索它的相鄰節(jié)點或關系細節(jié)沒有連接或索引

3.3 缺點或限制

  • AS的Neo4j 2.1.3最新版本,它具有支持節(jié)點數,關系和屬性的限制。
  • 它不支持Sharding。

4 Neo4j構建模塊

Neo4j主要有以下構建模塊:

  • 節(jié)點:圖標的基本單位,具有鍵值對的屬性
    • 如下是Node Name = “Employee”, 包含一組屬性作為鍵值對
1567578611502.png
  • 屬性:描述圖節(jié)點和關系的鍵值對

    • Key = 值
    • Key是字符串
    • 值可以用任意Neo4j數據類型表示
  • 關系:另一個主要構建塊。 它連接兩個節(jié)點

    • Emp和Dept是兩個不同的節(jié)點
    • WORKS_FOR”是Emp和Dept節(jié)點之間的關系
    • 從Emp到Dept的箭頭標記
    • 每個關系包含一個起始節(jié)點和一個結束節(jié)點,這里“Emp”是一個起始節(jié)點,Dept”是結束節(jié)點。
    • 由于該關系箭頭標記表示從“Emp”節(jié)點到“Dept”節(jié)點的關系,該關系被稱為“進入關系”到“Dept”節(jié)點
    • 像節(jié)點一樣,關系也可以包含屬性作為鍵值對。
    • 這里的“WORKS_FOR”關系有一個屬性作為鍵值對,它代表了這種關系的一個ID。
1567578987039.png
  • 標簽:

    • 將一個公共名稱與一組節(jié)點或關系相關聯
    • 節(jié)點或關系可以包含一個或多個標簽
    • 可以為現有節(jié)點或關系創(chuàng)建新標簽
    • 可以從現有節(jié)點或關系中刪除現有標簽
    • 從上圖可以觀察到:左側節(jié)點都有一個標簽:“EMP”,而右側節(jié)點都有一個標簽:“Dept”。
    • 兩個節(jié)點之間的關系,也有一個標簽:“WORKS_FOR”
  • 數據瀏覽器:

    • 訪問鏈接:http://localhost:7474/browser/
    • Neo4j數據瀏覽器用于執(zhí)行CQL命令并查看輸出輸出
    • 在美元符號后鍵入命令,然后單擊“執(zhí)行”按鈕運行命令
    • 與Neo4j數據庫服務器交互
    • 使用“VI視圖”按鈕以圖形格式查看結果。 以“UI視圖”格式顯示結果。
    • 使用“網格視圖”按鈕在網格視圖中查看結果
      • CSV
      • JSON
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容