(一)腿碰腿之Neo4j圖數(shù)據(jù)庫(kù)介紹

為什么需要圖數(shù)據(jù)庫(kù)

隨著社交, 金融, 電商領(lǐng)域的飛速發(fā)展, 傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)無(wú)法滿足復(fù)雜業(yè)務(wù)的處理, 尤其是在數(shù)據(jù)間關(guān)系的關(guān)聯(lián)度, 復(fù)雜度, 深度等呈幾何級(jí)增長(zhǎng), 傳統(tǒng)的RDBMS在處理方式和處理效率上也趨于過(guò)度復(fù)雜和低效, 因此需要一種的數(shù)據(jù)庫(kù)能夠處理海量數(shù)據(jù)的復(fù)雜關(guān)系, 就是下面要介紹的圖數(shù)據(jù)庫(kù)。

幾個(gè)簡(jiǎn)單應(yīng)用場(chǎng)景

  • 社交領(lǐng)域: 管理社交關(guān)系, 實(shí)現(xiàn)好友推薦
  • 電商領(lǐng)域: 商品推薦
  • 金融領(lǐng)域: 風(fēng)控處理, 如根據(jù)用戶社會(huì)關(guān)系, 交易記錄等在借(dai)方面進(jìn)行風(fēng)控
  • 還有日常打交道的視頻推薦, 廣告推薦, 文章, 新聞推薦等等

圖數(shù)據(jù)庫(kù)對(duì)比關(guān)系型數(shù)據(jù)庫(kù)

關(guān)系型數(shù)據(jù)庫(kù) 圖數(shù)據(jù)庫(kù)
節(jié)點(diǎn)
列和數(shù)據(jù) 屬性和數(shù)據(jù)
約束 關(guān)系

Neo4j介紹

Neo4j是一個(gè)開(kāi)源的, 高性能的NOSQL圖形數(shù)據(jù)庫(kù),使用java語(yǔ)言開(kāi)發(fā)。

  • 是世界上最先進(jìn)的圖數(shù)據(jù)庫(kù)之一,提供原生的圖數(shù)據(jù)存儲(chǔ),檢索和處理;
  • 采用屬性圖模型(Property graph model),極大的完善和豐富圖數(shù)據(jù)模型;
  • 專屬查詢語(yǔ)言 Cypher,直觀,高效

Neo4j的特性

  • SQL使用查詢語(yǔ)言Neo4j CQL, 易上手
  • 通過(guò)使用Lucence支持索引
  • 支持UNIQUE約束, 支持完整的ACID原則
  • 包含一個(gè)可執(zhí)行CQL命令的UI:Neo4j數(shù)據(jù)瀏覽器
  • 采用原生圖形庫(kù)與本地GPE(圖形處理引擎)
  • 支持查詢的數(shù)據(jù)導(dǎo)出到JSON和XLS格式
  • 提供了REST API,可使用任意語(yǔ)言就行訪問(wèn)
  • 提供了可以通過(guò)任何UI MVC框架(如Node JS)訪問(wèn)的Java腳本
  • 支持兩種Java API:Cypher API和Native Java API來(lái)開(kāi)發(fā)Java應(yīng)用程序

Neo4j的優(yōu)點(diǎn)

  • 很容易表示連接的數(shù)據(jù)
  • 檢索/遍歷/導(dǎo)航更多的連接數(shù)據(jù)是非常容易和快速的
  • 非常容易地表示半結(jié)構(gòu)化數(shù)據(jù)
  • 不需要復(fù)雜的連接來(lái)檢索連接的/相關(guān)的數(shù)據(jù),因?yàn)樗苋菀讬z索它的相鄰節(jié)點(diǎn)或關(guān)系細(xì)節(jié)沒(méi)有連接或索引

Neo4j數(shù)據(jù)模型

Neo4j主要包含以下三個(gè)構(gòu)建元素:

  • 節(jié)點(diǎn)
    我們可以用社交系統(tǒng)的一個(gè)人來(lái)表示一個(gè)節(jié)點(diǎn):


    image.png
  • 屬性
    用戶會(huì)有個(gè)人資料, 如姓名, 性別, 地址, 郵箱等; 屬性用于描述節(jié)點(diǎn)和關(guān)系的鍵值對(duì), 所以說(shuō)節(jié)點(diǎn)和關(guān)系都可以設(shè)置其屬性; 其中key是一個(gè)字符串, 屬性可以使用Neo4j的任意數(shù)據(jù)類型來(lái)表示


    image.png
  • 關(guān)系
    關(guān)系是有方向性的, Neo4j關(guān)系被分為兩種主要類型: 單向關(guān)系和雙向關(guān)系


    image.png

以上就是圖數(shù)據(jù)庫(kù)及Neo4j的簡(jiǎn)單介紹, 下一篇將介紹如何在Windows及docker下安裝Neo4j數(shù)據(jù)庫(kù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容