国产精品高清一区二区三区不卡-国产精品一区二区三区免费视频-日韩免费高清一级毛片-亚洲欧美一区二区三区国产精品-日韩欧美一区二区三区不卡视频-亚欧免费视频一区二区三区-亚洲欧美日韩一区成人-欧美日韩视频综合一区无弹窗-精品日韩在线视频一区二区三区-国内精品视频一区二区三区

你好,歡迎進(jìn)入江蘇優(yōu)軟數(shù)字科技有限公司官網(wǎng)!

誠信、勤奮、創(chuàng)新、卓越

友好定價、專業(yè)客服支持、正版軟件一站式服務(wù)提供

13262879759

工作日:9:00-22:00

科普| 越來越火的圖數(shù)據(jù)庫究竟是什么?

發(fā)布時間:2023-07-03

瀏覽次數(shù):0

.com//p/.html

隨著社交網(wǎng)絡(luò)、電子商務(wù)、金融、零售、物聯(lián)網(wǎng)等行業(yè)的快速發(fā)展,現(xiàn)實世界中編織了一個龐大而復(fù)雜的關(guān)系網(wǎng)絡(luò),傳統(tǒng)數(shù)據(jù)庫很難處理關(guān)系操作。

大數(shù)據(jù)行業(yè)中需要處理的數(shù)據(jù)之間的關(guān)系隨著數(shù)據(jù)量的增加呈幾何級數(shù)減少。 迫切需要一種支持海量復(fù)雜數(shù)據(jù)關(guān)系操作的數(shù)據(jù)庫,圖數(shù)據(jù)庫應(yīng)運而生。

世界上許多知名公司都在使用圖數(shù)據(jù)庫。 例如:

既然圖數(shù)據(jù)庫應(yīng)用如此廣泛,越來越多的企業(yè)和開發(fā)者開始使用它,那么它有哪些優(yōu)勢呢? 讓我們揭開它的神秘面紗。

為什么選擇圖數(shù)據(jù)庫?

學(xué)過數(shù)據(jù)結(jié)構(gòu)課程的朋友,腦子里應(yīng)該或多或少都有圖的概念。

什么是圖表?

圖由兩個元素組成:節(jié)點和關(guān)系。

每個節(jié)點代表一個實體(人、地點、事物、類別或其他數(shù)據(jù)),每個關(guān)系代表兩個節(jié)點的關(guān)聯(lián)形式。

這種通用結(jié)構(gòu)可以對各種場景進(jìn)行建模 - 從道路系統(tǒng)、設(shè)備網(wǎng)絡(luò)、人口路線或由關(guān)系定義的任何其他內(nèi)容。

什么是圖數(shù)據(jù)庫?

「圖數(shù)據(jù)庫(Graph)」并不是指存儲圖片的數(shù)據(jù)庫,而是以圖的數(shù)據(jù)結(jié)構(gòu)來存儲和查詢數(shù)據(jù)。

圖數(shù)據(jù)庫是一種在線數(shù)據(jù)庫管理系統(tǒng),用于處理圖數(shù)據(jù)模型的創(chuàng)建、讀取、更新和刪除 (CRUD) 操作。

與其他數(shù)據(jù)庫不同,關(guān)系在圖數(shù)據(jù)庫中占據(jù)主導(dǎo)地位。 這意味著應(yīng)用程序不必使用字段或帶外處理(例如)來推斷數(shù)據(jù)連接。

與關(guān)系數(shù)據(jù)庫或其他NoSQL數(shù)據(jù)庫相比,圖數(shù)據(jù)庫的數(shù)據(jù)模型也更簡單、更具表現(xiàn)力。

圖形數(shù)據(jù)庫專為與事務(wù) (OLTP) 系統(tǒng)一起使用而構(gòu)建,并且在設(shè)計時考慮了事務(wù)完整性和操作可用性。

兩個重要屬性

根據(jù)存儲和處理模型的不同,市面上的圖數(shù)據(jù)庫也存在一些區(qū)別。

例如:

Neo4J 是一個原生圖形數(shù)據(jù)庫。 它使用的前端存儲是專門針對Neo4J等圖數(shù)據(jù)庫定制和優(yōu)化的。 理論上來說,可以更有利于圖數(shù)據(jù)庫的性能。

將數(shù)據(jù)存儲在其他系統(tǒng)(例如 Hbase)上,而不是本地圖形數(shù)據(jù)庫。

① 圖像存儲

一些圖數(shù)據(jù)庫使用本機圖存儲,該存儲是專門為存儲和管理圖而優(yōu)化和設(shè)計的。

并非所有圖數(shù)據(jù)庫都使用原生圖存儲,有些圖數(shù)據(jù)庫將圖數(shù)據(jù)序列化,然后將其保存到關(guān)系數(shù)據(jù)庫或面向?qū)ο髷?shù)據(jù)庫,或其他通用數(shù)據(jù)存儲中。

② 圖處理引擎

本機圖形處理(也稱為無索引鄰接)是處理圖形數(shù)據(jù)的最有效方法,因為連接的節(jié)點在數(shù)學(xué)上彼此指向數(shù)據(jù)庫中。 非原生圖處理使用其他方式來處理 CRUD 操作。

與 NoSQL 數(shù)據(jù)庫對比

NoSQL數(shù)據(jù)庫大致可以分為四類:

intellij idea 數(shù)據(jù)庫關(guān)系圖_社工庫數(shù)據(jù)聯(lián)盟_火藥的故事—科普小論文

社工庫數(shù)據(jù)聯(lián)盟_intellij idea 數(shù)據(jù)庫關(guān)系圖_火藥的故事—科普小論文

與關(guān)系型數(shù)據(jù)庫相比

關(guān)系數(shù)據(jù)庫其實不擅長處理關(guān)系。 在很多場景下,你的業(yè)務(wù)需求完全超出了當(dāng)前的數(shù)據(jù)庫架構(gòu)。

舉個栗子:假設(shè)關(guān)系數(shù)據(jù)庫中有幾個用戶、訂單、產(chǎn)品表:

當(dāng)我們要查詢:“用戶是否訂購了這些產(chǎn)品?” 或“有顧客購買過該產(chǎn)品嗎?” 開發(fā)人員需要JOIN多個表,效率非常低。

以及“購買該產(chǎn)品的顧客還訂購了什么?” 類似的查詢幾乎不可能實現(xiàn)。

關(guān)系查詢性能比較

作為數(shù)據(jù)關(guān)系的核心,圖數(shù)據(jù)庫在查詢率方面非常高效,即使對于深度和復(fù)雜的查詢也是如此。 在《Neo4j in》一書中,作者在關(guān)系數(shù)據(jù)庫和圖數(shù)據(jù)庫(Neo4j)之間進(jìn)行了實驗。

intellij idea 數(shù)據(jù)庫關(guān)系圖_社工庫數(shù)據(jù)聯(lián)盟_火藥的故事—科普小論文

他們的實驗試圖在社交網(wǎng)絡(luò)中找到最大深度為 5 的朋友的朋友。 他們的數(shù)據(jù)集包括 100 萬人,每人大約有 50 名同事。

實驗結(jié)果如下:

當(dāng)深度為2時(即朋友的朋友),兩個數(shù)據(jù)庫的性能差異并不明顯; 當(dāng)深度為3時(即同學(xué)的同事)intellij idea 數(shù)據(jù)庫關(guān)系圖,很明顯關(guān)系型數(shù)據(jù)庫的響應(yīng)時間為30s,這已經(jīng)是無法接受的; 當(dāng)深度達(dá)到4時,關(guān)系型數(shù)據(jù)庫返回結(jié)果需要近半小時,難以應(yīng)用到線上系統(tǒng); 當(dāng)深度達(dá)到5時,關(guān)系數(shù)據(jù)庫已經(jīng)無法完成查詢。

對于圖數(shù)據(jù)庫Neo4J,深度范圍為3到5,其響應(yīng)時間在3秒以內(nèi)。

可見,對于圖數(shù)據(jù)庫來說,數(shù)據(jù)量越大,關(guān)聯(lián)查詢就越復(fù)雜,有利于凸顯其優(yōu)勢。 從深度為4/5的查詢結(jié)果可以看出,圖數(shù)據(jù)庫返回了整個社交網(wǎng)絡(luò)中超過一半的人。

Neo4J 和

根據(jù)DB-發(fā)布的最新圖數(shù)據(jù)庫排名,Neo4J依然領(lǐng)先,位居第一:

新4J

Neo4J 是一個用 Java 實現(xiàn)的開源圖數(shù)據(jù)庫。 它從 2003 年開始開發(fā),直到 2007 年第一個版本即將發(fā)布,并托管在 .

Neo4J 支持 ACID、集群、備份和故障轉(zhuǎn)移。 目前Neo4J最新版本是3.5,分為社區(qū)版和企業(yè)版。 社區(qū)版僅支持單機部署,功能有限。 企業(yè)版支持主從復(fù)制和讀寫分離,并包含可視化管理工具。

是Linux基金會下的開源分布式圖數(shù)據(jù)庫。 提供 .0 軟件許可證。 該項目由 IBM 支持。

它是由圖數(shù)據(jù)庫改來的,從2012年開始開發(fā),目前最新版本是0.3.1。

支持多種存儲前端(包括、HBase、DB)。 可擴展性取決于所使用的底層技術(shù)。

例如,通過將其用作存儲前端,可以輕松擴展到多個數(shù)據(jù)中心。

通過與大數(shù)據(jù)平臺(Spark、、)集成,支持全局圖數(shù)據(jù)的分析、報告和ETL。

通過外部索引存儲(Solr、)支持地理、數(shù)字范圍和全文搜索。

標(biāo)記屬性圖模型

(1)節(jié)點

節(jié)點是主要的數(shù)據(jù)元素

節(jié)點通過關(guān)系與其他節(jié)點連接

節(jié)點可以具有一個或多個屬性(即,存儲為鍵/值對的屬性)

節(jié)點有一個或多個標(biāo)簽來描述它們在圖中的角色

示例:人員節(jié)點與汽車節(jié)點

(二)關(guān)系

關(guān)系連接兩個節(jié)點 關(guān)系是有向的 節(jié)點可以有多個甚至遞歸關(guān)系 關(guān)系可以有一個或多個屬性(即存儲為鍵/值對的屬性)

(3)屬性

屬性是命名值,其中名稱(或鍵)是字符串

屬性可以被索引和約束

可以根據(jù)多個屬性創(chuàng)建復(fù)合索引

(4)標(biāo)簽

標(biāo)簽用于對節(jié)點進(jìn)行分組

一個節(jié)點可以有多個標(biāo)簽

索引標(biāo)簽以加快在圖中查找節(jié)點的速度

針對速度進(jìn)行優(yōu)化的本機標(biāo)簽索引

圖查詢語言

Neo4j 的圖形查詢語言允許用戶在圖形數(shù)據(jù)庫中存儲和檢索數(shù)據(jù)。

例如,我們想要找到 Joe 的所有二級好友:

intellij idea 數(shù)據(jù)庫關(guān)系圖_社工庫數(shù)據(jù)聯(lián)盟_火藥的故事—科普小論文

查詢語句如下:

MATCH
(person:Person)-[:KNOWS]-(friend:Person)-[:KNOWS]-
(foaf:Person)
WHERE
person.name = "Joe"
AND NOT (person)-[:KNOWS]-(foaf)
RETURN
foaf

喬認(rèn)識莎莉,莎莉也認(rèn)識安娜。 鮑勃被排除在結(jié)果之外,因為他除了通過莎莉成為二等同學(xué)之外,還是一等同學(xué)。

概括

圖數(shù)據(jù)庫響應(yīng)了當(dāng)今宏觀商業(yè)世界的主要趨勢:通過高度相關(guān)、復(fù)雜和動態(tài)的數(shù)據(jù)獲得洞察力和競爭優(yōu)勢。 越來越多的國內(nèi)公司開始涉足圖數(shù)據(jù)庫領(lǐng)域,開發(fā)自己的圖數(shù)據(jù)庫系統(tǒng)。

對于任何具有一定大小或值的數(shù)據(jù)intellij idea 數(shù)據(jù)庫關(guān)系圖,圖數(shù)據(jù)庫是表示和查詢該關(guān)系數(shù)據(jù)的最佳形式。 理解和分析此類圖表的能力將成為未來企業(yè)的核心競爭力。

精彩推薦

一百期Java面試題匯總
SpringBoot內(nèi)容聚合
IntelliJ IDEA內(nèi)容聚合
Mybatis內(nèi)容聚合



歡迎長按下圖關(guān)注公眾號后端技術(shù)精選

如有侵權(quán)請聯(lián)系刪除!

13262879759

微信二維碼