neo4j的python.py2neo操作入門

前言

先說明一點,本文主要是自己的學習經歷,本人幾乎沒有【數據庫】的基礎,因此,在某些方面的理解難免會有失偏頗。非常歡迎大傢批評指正。本文是neo4j入門篇第二篇。價值在於,讓您快速上手python編寫neo4j圖數據庫。如何在Windows上安裝neo4j及配合py2neo庫操作,參見neo4j入門篇第一篇:

入門python編寫neo4j

初識

neo4j是一個非關系型數據庫,用來保存關系復雜的數據,並且具有相比於關系型數據更高效、更快的特點。neo4j還有個重要特點是其完整的AICD。(tips:AICD指的是原子性 (Atomicity) :一個事務裡所有操作均完成才算完成、獨立性 (Isolation):並發的事務相互不影響 、一致性(Consistency) :事務發生前後,數據庫保持一致、持久性(Durability) :一旦操作提交,將永遠保存在數據庫裡)。

節點/關系/屬性/路徑

節點(Node)和關系(relationship)是構成圖的基礎,節點和關系都可以有多個屬性(property),並且均可以作為實體。重點:

  1. 關系必須包含兩個節點,且具有方向:start node →end node
  2. 對於一個節點來說,與之相連的關系是有輸入和輸出兩個方向。(如node2有輸入關系和輸出關系:node1→node2→node3),這個特性對於遍歷圖很重要。
  3. 一個節點可以有一個關系是指向自己的。
  4. 屬性:鍵-值(key-value),鍵是字符串類型,值,可以是原數據,也可以由原數據同類型的數組。
  5. 路徑:查詢或者遍歷的結果(至少包括一個node)。最短的路徑就是一個node,長度為0。

增/刪/改/查

作為數據庫開發人員,每天都逃不過增刪改查….來吧,小試牛刀。先說明py2neo庫中的幾個重要類(對象)。(tips,為瞭便於大傢理解下面的代碼,指出:python函數參數前面有一個*號表示基於元組的參數,兩個**表示基於字典的可變參數,也就是說這些參數是可變的,且傳入函數後自動打包為元組或字典。請記住如下例子,這樣方便理解後面函數的基本語法。

def sum(*numbers):
total =0
for number in numbers:
total+=number
return total
print(sum(1,2,3))
print(sum(1,2))

# 運行結果
# 6
# 3

def show_info(**info):
print('--------***show info***--------')
for key,value in info.items():
print('{}-{}'.format(key,value))
show_info(name='Tony',age=18)
show_info(name='Bob',age=25,city='Beijing')

# 運行結果
--------***show info***--------
name-Tony
age-18
--------***show info***--------
name-Bob
age-25
city-Beijing

赞(0)