一、圖數據庫概念
引用Seth Godin的說法,企業(yè)需要摒棄僅僅收集數據點的做法,開始著手建立數據之間的關聯(lián)關系。數據點之間的關系甚至比單個點本身更為重要。
傳統(tǒng)的**關系數據庫管理系統(tǒng)(RDBMS)**并不擅長處理數據之間的關系,那些表狀數據模式和呆板的結構難以添加新連接或不同類型連接。為了利用這些數據關系,需要一種能將關系信息存儲為一等實體的新型數據庫技術,這種技術就是圖數據庫。
圖數據庫不僅能有效存儲數據點之間的關系,而且非常靈活,適合添加新的關系類型,并使數據模型適應新的業(yè)務需求。
除了數據庫本身,圖技術還涵蓋了圖數據科學的新興領域,適合預測分析和機器學習,而所有的圖數據可視化適合針對特定目的的數據發(fā)現和探索。
二、圖數據應用場景
1、欺詐檢測
2、實時推薦引擎
3、知識圖譜
4、反洗錢
5、主數據管理
6、供應鏈管理
7、增強網絡和IT運營管理能力
8、數據譜系
9、身份和訪問管理
10、材料清單
三、安裝Neo4j
有三種安裝方式,一種是社區(qū)版,在官網上下載社區(qū)版本;第二種是基于docker進行安裝的;第三種是neo4j desktop安裝,本文介紹第一種安裝社區(qū)版本。
官網 https://neo4j.com/deployment-center/#community
如果是4.x的版本,jdk要是符合11的,因為我們的jdk版本是8的,安裝的版本是3.5x。
* bin目錄:用于存儲Neo4j的可執(zhí)行程序;
* conf目錄:用于控制Neo4j啟動的配置文件;
* data目錄:用于存儲核心數據庫文件;
* plugins目錄:用于存儲Neo4j的插件;
在bin目錄下使用neo4j console啟動
默認賬號密碼neo4j/neo4j, 可以修改密碼。
Neo4j-CQL使用
neo4j-CQL簡介
Neo4j的Cypher語言是為了處理圖形數據而構建的,CQL代表Cypher查詢語言,像Oracle數據庫具有查詢語言SQL,Neo4j具有CQL作為查詢語言。
CQL命令 用法
CQL命令 | 用法 |
---|---|
CREATE | 創(chuàng)建節(jié)點,關系和屬性 |
MATCH | 檢索有關節(jié)點,關系和屬性數據 |
RETURN | 返回查詢結果 |
WHERE | 提供條件過濾檢索數據 |
DELETE | 刪除節(jié)點和關系 |
REMOVE | 刪除節(jié)點和關系的屬性 |
ORDER BY | 排序檢索數據 |
SET | 添加或更新標簽 |
節(jié)點、關系的方向、關系的標簽 |
常用的CQL命令
match (n:person {name: ‘孫悟空’}) return n.name, id(n)
match (n:person) where n.name=‘孫悟空’ return n.name, id(n)
match (n:person {name:‘孫悟空’}),(m:xiyouRelation) where m.from =‘孫悟空’
return n.name, m.relation, m.to
創(chuàng)建節(jié)點
創(chuàng)建節(jié)點
create (n)
創(chuàng)建多個節(jié)點
create(n),(m)
創(chuàng)建帶標簽和屬性的節(jié)點并返回節(jié)點
create (n: person {name: '孫悟空'}) return n
創(chuàng)建關系
先創(chuàng)建節(jié)點
create(:student{name:"xiaohong"}), (:student{name:"zhangsan"})
查詢節(jié)點
match (n:student {name: "小明"}),(m:student {name: "小紅"})
create (n)-[r:同學]-> (m) return n.name, type(r), m.name
創(chuàng)建關系
match (n:person {name: '孫悟空'}), (m:xiyouRelation),(s: person) where
m.from = '孫悟空' and m.to = s.name
create (n)-[: 西游人物關系{relation:m.relation}]->(s)
return n.name, m.relation, s.name
就是把 n 指向 s
where子句
使用where子句來過濾match查詢的結果。
# 創(chuàng)建關系
match (n:person), (m:person) where n.name='孫悟空' and m.name='豬八戒'
create (n)- [r:師弟]->(m) return n.name, type(r), m.name
Delete刪除
Neo4j使用CQL Delete子句
刪除節(jié)點前,先刪除關系
刪除節(jié)點及相關節(jié)點和關系
match (n: person{name: “白龍馬”})delete n
刪除關系
match (n:student) -[r]->(m:student) where n.name=“張三” and m.name= “小紅” delete r
return type?
Match p=(:person {name : ‘孫悟空’})-[r:‘西游人物關系’]->() return p
Remove刪除
刪除屬性,
create(n:student: {name:“張三”, age:18})
match (n:person {name:“張三”}) remove n:person return n
Set 改值
match (n:role {name:“fox”}) set n.age =32 return n
Order by排序
match (n: “西游”) return id(n), n.name order by id(n) desc文章來源:http://www.zghlxwxcb.cn/news/detail-738033.html
IN操作符
與SQL一樣,Neo4j CQL提供了一個IN運算符,可以是集合
match (n: ‘西游’) where n.name in[‘孫悟空’,‘唐僧’] return id(n), n.name, n.tail , n.label文章來源地址http://www.zghlxwxcb.cn/news/detail-738033.html
到了這里,關于圖數據庫Neo4j概念、應用場景、安裝及CQL的使用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!