1. 程式人生 > >Neo4j 學習筆記 1:屬性圖

Neo4j 學習筆記 1:屬性圖

屬性圖:

在深入學習圖形資料庫之前,首先理解 屬性圖 的基本概念。

屬性圖是由 頂點(Vertex),邊(Edge),標籤(Lable),關係型別 還有 屬性(Property)組成的有向圖。頂點也稱為 節點(Node),邊也稱為 關係(Relationship)。在圖形中,節點和關係是最重要的實體。

所有的節點是獨立存在的,為節點設定標籤,那麼 擁有相同標籤的節點屬於同一個集合 。節點可有零個、一個或多個標籤。

關係通過關係型別來分組,型別相同的關係屬於同一個集合關係是有向的,關係的兩端是起始節點和結束節點,通過有向的箭頭來標識方向,節點之間的雙向關係通過兩個方向相反的關係來標識。關係必須設定關係型別,並且只能設定一個關係型別

Neo4j 建立的圖(Graph)基於屬性圖模型,在該模型中,每個實體都有 ID(Identity)唯一標識,每個節點由標籤(Lable)分組,每個關係都有一個唯一的型別。

相關概念:

  • 實體(Entity)是指節點(Node)和關係(Relationship);

    • 每個實體都有一個唯一的 ID;

    • 每個實體都有零個,一個或多個屬性,一個實體的屬性鍵是唯一的;

    • 每個節點都有零個,一個或多個標籤,屬於一個或多個分組;

    • 每個關係都只有一個型別,用於連線兩個節點;

  • 路徑(Path)是指由起始節點和終止節點之間的實體(節點和關係)構成的有序組合;

  • 標記(Token)是非空的字串,用於標識標籤(Lable),關係型別(Relationship Type),或屬性鍵(Property Key);

    • 標籤:用於標記節點的分組,多個節點可以有相同的標籤,一個節點可以有多個 Lable;

    • 關係型別:用於標記關係的型別,多個關係可以有相同的關係型別;

    • 屬性鍵:用於唯一標識一個屬性;

  • 屬性(Property)是一個鍵值對(Key/Value Pair),每個節點或關係可以有一個或多個屬性;屬性值可以是原始型別,或者原始型別的陣列;


    屬性

圖形示例:

在下面的圖形中,存在 3 個節點和 2 個關係共 5 個實體;Person 和 Movie 是 Lable,ACTED_ID 和 DIRECTED 是關係型別,name,born,title,released,roles 等是節點和關係的屬性。

圖形示例

實體包括節點和關係。節點有標籤和屬性;關係是有向的,連結兩個節點,關係具有屬性和關係型別。

1.實體

在示例圖形中,包含三個節點,分別是:

節點

包含兩個關係,分別是:

  • 兩個關係:連線 name 屬性為 Tom Hank 的節點和 Movie 節點的關係,連線 name 屬性為 Forrest Gump 的節點和 Movie 節點的關係。

  • 兩個關係型別:ACTED_IN 和 DIRECTED。

其中一個關係如下圖:

關係

2.標籤(Lable)

在圖形結構中,標籤用於對節點進行分組,相當於節點的型別,擁有相同標籤的節點屬於同一個分組。一個節點可以擁有零個,一個或多個標籤,因此,一個節點可以屬於多個分組。對分組進行查詢,能夠縮小查詢的節點範圍,提高查詢的效能。

在示例圖形中,有兩個標籤 Person 和 Movie,兩個節點是 Person,一個節點是 Movie,標籤有點像節點的型別,但是,每個節點可以有多個標籤。

標籤

3.屬性(Property)

屬性是一個鍵值對(Key/Value Pair),用於為節點或關係提供資訊。一般情況下,每個節點都包含 name 屬性,用於命名節點。

在示例圖形中,Person 節點有兩個屬性:name 和 born,Movie 節點有兩個屬性:title 和 released。

屬性

關係型別 ACTED_IN 有一個屬性:roles,該屬性值是一個數組,而關係型別為 DIRECTED 的關係則沒有屬性。

屬性

遍歷(Traversal)

遍歷一個圖形,是指沿著關係及其方向,訪問圖形的節點。關係是有向的,連線兩個節點,從起始節點沿著關係,一步一步導航(navigate)到結束節點的過程叫做遍歷,遍歷經過的節點和關係的有序組合稱作路徑(Path)。

在示例圖形中,查詢 Tom Hanks 參演的電影,遍歷的過程是:從 Tom Hanks 節點開始,沿著 ACTED_IN 關係,尋找標籤為 Movie 的目標節點。

遍歷的路徑如圖:

路徑

相關推薦

Neo4j 學習筆記 1屬性

屬性圖: 在深入學習圖形資料庫之前,首先理解 屬性圖 的基本概念。 屬性圖是由 頂點(Vertex),邊(Edge),標籤(Lable),關係型別 還有 屬性(Property)組成的有向圖。頂點也稱為 節點(Node),邊也稱為 關係(Relati

Effictive Java學習筆記1創建和銷毀對象

安全 需要 () 函數 調用 bsp nbsp bean 成了 建議1:考慮用靜態工廠方法代替構造器 理由:1)靜態方法有名字啊,更容易懂和理解。構造方法重載容易讓人混淆,並不是好主意    2)靜態工廠方法可以不必每次調用時都創建一個新對象,而公共構造函數每次調用都會

OPENCV學習筆記1-8_選取像局部區域

src enc har span extract yun opencv http alt #include <iostream> #include "opencv2/opencv.hpp" #include <stdio.h> using name

golang學習筆記(1)安裝&helloworld

golang安裝:golang編譯器安裝過程比較簡單,也比較快,不同平臺下(win/linux/macos)都比較相似;https://dl.gocn.io/golang/1.9.2/go1.9.2.src.tar.gz 下載對應的系統版本的編譯器go的版本號由"." 分為3部分如當前的

寒假學習筆記1結構化程序設計

控制流程 ram 循環 只有一個 嚴格 學習筆記 程序編寫 ont 部分 結構化程序設計(structured programming)是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。 - 內容 主張使用順序、選擇、循環三種基本結構來嵌套連結成具有復雜層次的“結構

hibernate框架學習筆記1搭建與測試

for this ble action 1.7 turn yiq targe cts hibernate框架屬於dao層,類似dbutils的作用,是一款ORM(對象關系映射)操作 使用hibernate框架好處是:操作數據庫不需要寫SQL語句,使用面向對象的方式完成

struts2框架學習筆記1搭建測試

method lang app org char 示例 重要 type img Servlet是線程不安全的,Struts1是基於Servlet的框架 而Struts2是基於Filter的框架,解決了線程安全問題 因此Struts1和Struts2基本沒有關系,只是創造者取

Python學習筆記1用戶登錄

\n win col lines %s courier class for ID 1 import getpass,sys 2 u=0 3 while u< 3: 4 user_name = input(‘Please input you

Python學習筆記1簡單實現ssh客戶端和服務端

bsp dev bre 客戶端 break 基於 bin listen 客戶 實現基於python 3.6。 server端: 1 __author__ = "PyDev2018" 2 3 import socket,os 4 server = socket.s

Python3學習筆記1變量和簡單數據類型

tle 小數點 per port 小數 指導 day this python 2018-09-16 17:22:11 變量聲明:   變量名 = ?? 如: 1 message = "HelloWorld" 2 message = 1 3 message =

Docker學習筆記1入門使用

一、Docker簡介 Docker (訪問官網) 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。(以上資訊來源於百度百科)好吧,讀完之後,

Python學習筆記1數值和字串

Python旅程第一站:     Python數值運算:       type( ) 列印型別 四種基本型別:int, float, str, bool   round( )  取整,四捨五入  

Python學習筆記1數值和字符串

分享圖片 bsp rep 數值運算 round 取整 float 分享 基本類型 Python旅程第一站: Python數值運算: type( ) 打印類型 四種基本類型:int, float, str, bool round( ) 取整,四舍五

Java學習筆記1計算機基礎知識、java語言基礎。

一、計算機基礎知識 1、 計算機是一種能夠按照程式執行,自動、高速處理海量資料的現代化智慧電子裝置。由硬體和軟體所組成,沒有安裝任何軟體的計算機稱為裸機。常見的形式有臺式計算機、筆記本計算機、大型計算機等。 硬體通常由CPU、主機板、記憶體、電源、主機箱、硬碟、顯示卡、鍵盤、滑鼠,顯示器等多

誠信線上私網申博包殺網 Tensorflow學習筆記1Get Started

█直接聯絡電話:18475600009█微信:18475600009 Tensorflow學習筆記1:Get Started 關於Tensorflow的基本介紹 Tensorflow是一個基於圖的計算系統,其主要應用於機器學習。 從Tensorflow名字的字面意思可以拆分成兩部

the little go book學習筆記(1)簡介

1.Go簡介 Go語言是編譯型、靜態型別的類C的語言,並帶有GC(垃圾收集器,garbage collection)。這意味著什麼? 另外,Go是一種非常嚴格的語言,它幾乎總是要求我們"以標準答案去答題",在其它語言可以容忍的不規範編碼方式在Go語言中幾乎都會拋異常。例如匯入了包卻沒有使用這個包,Go不會去編

tensorflow學習筆記1tf.Variable、tf.get_variable與tf.get_variable、tf.variable_scope對比總結

** 0. 淺談tensorflow變數機制 ** tensorflow提供了通過變數名稱來建立或者獲取一個變數的機制。通過這個機制,在不同的函式中可以直接通過變數的名字來使用變數,而不需要將變數通過引數的形式到處傳遞,實現了變數共享。 ** 1. 對比tf.V

Android學習筆記1基於監聽的事件處理過程

基於監聽的事件處理過程 記錄一:安卓介面互動處理事件的兩個方式 (1)基於監聽的事件處理 (2)基於回撥的事件處理 基於回撥的事件處理日後再寫,先學習基於監聽的事件處理 通常以下步驟: (1)例項化物件 (2)為事件源物件新增監聽器物件,例如set...List

Spring學習筆記1Spring Framewock體系結構 及 jar包依賴

作者:凌承一  出處:http://www.cnblogs.com/ywlaker/  很多人都在用spring開發java專案,但是配置maven依賴的時候並不能明確要配置哪些spring的jar,經常是胡亂新增一堆,編譯或執行報錯就繼續配置jar依賴,導致spring依賴

NanoPi NEO2 學習筆記 1安裝系統、首次開機和一些設定

前幾天搞到了一塊NanoPi NEO2,A53的核心,512M記憶體,一個千兆網口,非常小的體積,質量也不錯,非常滿意,140元的價格可以買到這樣一塊ARM開發板也是非常划算了,非常適合低成本從微控制器轉向嵌入式學習 說實話這塊板子的資料和樹莓派相比較,可以說是少之又少,需要拿出十足的耐心,敢於折騰的決心去