下單前先比價(jià)不花冤枉錢 同款圖書京東價(jià)低于抖音6折日媒感慨中國(guó)電動(dòng)汽車/智駕遙遙領(lǐng)先:本田、日產(chǎn)、三菱合并也沒(méi)戲消委會(huì)吹風(fēng)機(jī)品質(zhì)檢測(cè)結(jié)果揭曉 徠芬獨(dú)占鰲頭 共話新質(zhì)營(yíng)銷力,2024梅花數(shù)據(jù)峰會(huì)圓滿落幕索尼影像專業(yè)服務(wù) PRO Support 升級(jí),成為會(huì)員至少需注冊(cè) 2 臺(tái) α 全畫幅相機(jī)、3 支 G 大師鏡頭消息稱vivo加碼電池軍備競(jìng)賽:6500mAh 旗艦機(jī)+7500mAh中端機(jī)寶馬M8雙門轎跑車明年年初將停產(chǎn),后續(xù)無(wú)2026款車型比亞迪:2025 款漢家族車型城市領(lǐng)航智駕功能開啟內(nèi)測(cè)雷神預(yù)告2025年首次出席CES 將發(fā)布三款不同技術(shù)原理智能眼鏡realme真我全球首發(fā)聯(lián)發(fā)科天璣 8400 耐玩戰(zhàn)神共創(chuàng)計(jì)劃iQOO Z9 Turbo長(zhǎng)續(xù)航版手機(jī)被曝電池加大到6400mAh,搭驍龍 8s Gen 3處理器普及放緩 銷量大跌:曝保時(shí)捷將重新評(píng)估電動(dòng)汽車計(jì)劃來(lái)京東參與榮耀Magic7 RSR 保時(shí)捷設(shè)計(jì)預(yù)售 享365天只換不修國(guó)補(bǔ)期間電視迎來(lái)?yè)Q機(jī)潮,最暢銷MiniLED品牌花落誰(shuí)家?美團(tuán)旗下微信社群團(tuán)購(gòu)業(yè)務(wù)“團(tuán)買買”宣布年底停運(yùn)消息稱微軟正與第三方廠商洽談,試圖合作推出Xbox游戲掌機(jī)設(shè)備在海外,要再造一個(gè)京東物流?消息稱蘋果正為AirPods開發(fā)多項(xiàng)健康功能,包括心率監(jiān)測(cè)和溫度感應(yīng)一加 Ace 5系列將搭載全新游戲助手:大幅提升游戲體驗(yàn)東芝全部業(yè)務(wù)實(shí)現(xiàn)盈利,退市裁員重組后終于賺錢
  • 首頁(yè) > 數(shù)據(jù)存儲(chǔ)頻道 > 數(shù)據(jù)庫(kù)頻道 > 數(shù)據(jù)庫(kù)

    如何用好圖數(shù)據(jù)庫(kù):TypeDB特性與優(yōu)勢(shì)

    2022年12月21日 10:07:44   來(lái)源:51CTO

      近年來(lái),圖數(shù)據(jù)庫(kù)有了大規(guī)模的發(fā)展,它們被應(yīng)用到很多領(lǐng)域并參與優(yōu)秀的解決方案。它們的靈活性使其更容易以傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)無(wú)法做到的方式利用數(shù)據(jù)之間的關(guān)系和連接。但是,你真的知道何時(shí)使用圖數(shù)據(jù)庫(kù)嗎?在這篇文章中,我們探討了在使用圖數(shù)據(jù)庫(kù)之前需要考慮什么,甚至在思考之后得出不使用圖數(shù)據(jù)庫(kù)的結(jié)論。

      1、什么是圖形數(shù)據(jù)庫(kù)?

      圖數(shù)據(jù)庫(kù)是一種使用圖理論作為數(shù)據(jù)模型基礎(chǔ)的數(shù)據(jù)庫(kù)。圖數(shù)據(jù)庫(kù)將連接性視為“一等公民”,使其比傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)更適合表示數(shù)據(jù)之間的連接。

      有兩種類型的圖技術(shù)。RDF/語(yǔ)義網(wǎng)和屬性圖。雖然語(yǔ)義網(wǎng)標(biāo)準(zhǔn)已經(jīng)存在了很長(zhǎng)時(shí)間,但屬性圖已經(jīng)成為主導(dǎo)技術(shù),其中Cypher采用了大量的圖查詢語(yǔ)言。

      從本質(zhì)上講,屬性圖數(shù)據(jù)庫(kù)中的數(shù)據(jù)模型由以下屬性組成:節(jié)點(diǎn)、邊、屬性和標(biāo)簽。

      節(jié)點(diǎn)有屬性。

      節(jié)點(diǎn)帶有一個(gè)或多個(gè)標(biāo)簽。

      邊是有方向的,連接節(jié)點(diǎn)以創(chuàng)建圖中的結(jié)構(gòu)。

      邊緣可以有屬性。

      圖數(shù)據(jù)庫(kù)應(yīng)用于具有相互連接的數(shù)據(jù)。幾個(gè)常見的用例包括:

      推薦引擎

      語(yǔ)義搜索

      反洗錢

      欺詐檢測(cè)

      360度客戶視圖

      除了這些應(yīng)用之外,對(duì)于那些不僅要管理大量數(shù)據(jù)而且需要產(chǎn)生業(yè)務(wù)見解的組織來(lái)說(shuō),圖數(shù)據(jù)庫(kù)已經(jīng)成為推薦的解決方案。圖數(shù)據(jù)庫(kù)有望成為獲得這種洞察力的最簡(jiǎn)單方法,因?yàn)樗刮覀兒苋菀桌斫鈹?shù)據(jù)中的關(guān)系和背景。

      二、圖數(shù)據(jù)庫(kù)的挑戰(zhàn)

      盡管有這些承諾,圖數(shù)據(jù)庫(kù)并沒(méi)有征服世界。根據(jù)DB-Engines的數(shù)據(jù),截至2022年10月,它們僅占數(shù)據(jù)庫(kù)份額的1.8%,與實(shí)現(xiàn)這些承諾相去甚遠(yuǎn)。有幾個(gè)原因可以解釋采用圖數(shù)據(jù)庫(kù)所遇到的困難。它們可以總結(jié)為以下幾點(diǎn):

      1、對(duì)高度關(guān)聯(lián)的數(shù)據(jù)進(jìn)行建模

      由于圖數(shù)據(jù)庫(kù)的高度表達(dá)性和相關(guān)的復(fù)雜性,在圖中建模數(shù)據(jù)并不容易。它類似于知識(shí)建模,也被稱為知識(shí)工程--一種需要高度專業(yè)化工程師的高級(jí)技能。這使得圖很難被普通開發(fā)者采用,設(shè)置了很高的進(jìn)入門檻。

      2、保持?jǐn)?shù)據(jù)的連貫性

      圖數(shù)據(jù)庫(kù)的另一個(gè)大問(wèn)題是缺乏一個(gè)強(qiáng)制的模式。圖形數(shù)據(jù)庫(kù)大多將模式驗(yàn)證委托給應(yīng)用層,無(wú)論是隱式的還是顯式的。這使得創(chuàng)建復(fù)雜數(shù)據(jù)的應(yīng)用變得更加困難,因?yàn)閿?shù)據(jù)一致性是至關(guān)重要的。圖數(shù)據(jù)庫(kù)中缺乏明確執(zhí)行的模式,這也是其難以被廣泛應(yīng)用的主要原因。

      3、查詢數(shù)據(jù)

      審問(wèn)圖也遇到了挑戰(zhàn),由于(隱含的)數(shù)據(jù)模型會(huì)制約表達(dá)的路徑,因此需要對(duì)查詢進(jìn)行設(shè)計(jì),使之與隱含的數(shù)據(jù)模型相匹配。這一點(diǎn)非常具有挑戰(zhàn)性,你需要以最理想的方式對(duì)數(shù)據(jù)進(jìn)行建模。此外,大多數(shù)圖數(shù)據(jù)庫(kù)缺乏重要的建模結(jié)構(gòu),如嵌套或n-ary關(guān)系,這導(dǎo)致了建模決策的不一致。有時(shí)可能會(huì)把關(guān)系定義為節(jié)點(diǎn),有時(shí)則定義為邊。這樣一來(lái),查詢可能就不一定能獲取到正確的數(shù)據(jù)。

      三、強(qiáng)類型數(shù)據(jù)庫(kù)

      克服上述挑戰(zhàn)對(duì)于幫助實(shí)現(xiàn)圖數(shù)據(jù)庫(kù)至關(guān)重要。這就是為什么要開發(fā)一種新型的數(shù)據(jù)庫(kù):強(qiáng)類型數(shù)據(jù)庫(kù):TypeDB。開源的TypeDB通過(guò)提供一個(gè)更高級(jí)別的類型系統(tǒng)來(lái)抽象出圖數(shù)據(jù)庫(kù)的低級(jí)實(shí)現(xiàn),使開發(fā)者更容易處理復(fù)雜的數(shù)據(jù)。TypeDB的類型系統(tǒng)基于以下的核心概念。

      1、實(shí)體-關(guān)系模型

      TypeDB使用實(shí)體-關(guān)系模型進(jìn)行數(shù)據(jù)建模。與圖數(shù)據(jù)庫(kù)不同,這意味著可以將任何ER圖直接映射到TypeQL(TypeDB的查詢語(yǔ)言)中,以避免規(guī)范化的過(guò)程。這意味著在概念上認(rèn)為模型是以人類熟悉的方式來(lái)創(chuàng)建的。

      TypeDB的模型是由實(shí)體類型、關(guān)系類型和屬性類型組成,并引入了角色類型。

      下面的例子顯示了TypeQL中的基本模型是如何寫的。

      define

      復(fù)制

      person sub entity,

      owns name,

      plays employment:employee;

      company sub entity,

      owns name,

      plays employment:employer;

      employment sub relation,

      relates employee,

      relates employer;

      name sub attribute,

      value string;

      在這個(gè)命名法中,方塊表示實(shí)體;鉆石表示關(guān)系;橢圓表示屬性。圖中概述了兩個(gè)實(shí)體的模型——人和公司,兩個(gè)實(shí)體都擁有名稱屬性。人在雇傭關(guān)系中扮演雇員的角色,而公司則扮演雇主的角色。

      2、類型層次結(jié)構(gòu)

      TypeDB提供了開箱即用的類型層次模型,這是圖數(shù)據(jù)庫(kù)不支持的一個(gè)特性。遵循面向?qū)ο蟮念愋拖到y(tǒng)的原則,TypeDB確保所有類型繼承他們的超類型的行為和屬性。這使得復(fù)雜的數(shù)據(jù)結(jié)構(gòu)可以重復(fù)使用,并且通過(guò)多態(tài)性使數(shù)據(jù)解釋更加豐富。

      在下面的例子中,三層實(shí)體人的層次結(jié)構(gòu)被建模。它的所有子類型將繼承屬性的名字和姓氏,而不需要逐一重新聲明這些。

      define

      復(fù)制

      person sub entity,

      owns first-name,

      owns last-name;

      student sub person;

      undergrad sub student;

      postgrad sub student;

      teacher sub person;

      supervisor sub teacher;

      professor sub teacher;

      類型層次描述了由學(xué)生和教師類型組成的實(shí)體的子類型。有兩種類型的學(xué)生,本科生和研究生,有兩種類型的教師,監(jiān)督員和教授。

      3、嵌套關(guān)系

      關(guān)系是用來(lái)描述兩個(gè)或多個(gè)事物之間關(guān)聯(lián)的。有時(shí)事物本身就是關(guān)系,這意味著對(duì)需要指向另一個(gè)關(guān)系的關(guān)系進(jìn)行建模--嵌套。圖數(shù)據(jù)庫(kù)不允許對(duì)嵌套關(guān)系進(jìn)行建模,因?yàn)檫@樣就需要讓一個(gè)二元邊指向另一個(gè)二元邊。實(shí)現(xiàn)這一點(diǎn)的唯一可能方式是通過(guò)“reification”(具體化,將關(guān)系-邊轉(zhuǎn)化為點(diǎn)-實(shí)體節(jié)點(diǎn)),也就是將一條邊轉(zhuǎn)化為一個(gè)節(jié)點(diǎn),以便另一條邊可以指向它。

      然而,TypeDB支持嵌套關(guān)系,使其以最自然的形式進(jìn)行數(shù)據(jù)建模。在下面的例子中,婚姻類型的關(guān)系被分配給變量$mar,然后通過(guò)關(guān)系將其與一個(gè)城市進(jìn)行關(guān)聯(lián)。

      match

      復(fù)制

      $alice isa person, has name "Alice";

      $bob isa person, has name "Bob";

      $mar ($alice, $bob) isa marriage;

      $city isa city;

      ($mar, $city) isa location;

      圖中,"Alice "扮演妻子的角色,而 "Bob "扮演丈夫的角色。婚姻是一個(gè)嵌套關(guān)系,因?yàn)樗苍谖恢藐P(guān)系中扮演定位的角色,而城市 "倫敦 "在關(guān)系中扮演定位的角色。

      4、多元關(guān)系

      在現(xiàn)實(shí)世界中,關(guān)系并不只是指事物之間的二元聯(lián)系。我們經(jīng)常需要同時(shí)捕捉三個(gè)或更多相互關(guān)聯(lián)的事物。如果將它們表示二元關(guān)系會(huì)導(dǎo)致信息損失,這種情況常常會(huì)在圖數(shù)據(jù)庫(kù)中發(fā)生。另一方面,TypeDB可以很自然地將多個(gè)事物表示為一種關(guān)系。

      在這個(gè)例子中,n-ary關(guān)系cast連接了三個(gè)不同的實(shí)體:人的實(shí)體,角色的實(shí)體和電影的實(shí)體。

      match

      復(fù)制

      $person isa person, has name "Leonardo";

      $character isa character, has name "Jack";

      $movie isa movie, has name $movie-name;

      (actor: $person, character: $character, movie: $movie) isa cast;

      get $movie-name;

      這是n-ary關(guān)系的例子,具體來(lái)說(shuō)是三元關(guān)系,關(guān)系類型是cast。關(guān)系與三個(gè)實(shí)體相關(guān):電影 "泰坦尼克號(hào) 扮演電影中角色“杰克”的演員是"萊昂納多 "。

      5、安全問(wèn)題

      與圖數(shù)據(jù)庫(kù)不同,TypeDB提供了一種方法來(lái)描述數(shù)據(jù)的邏輯結(jié)構(gòu),允許TypeDB驗(yàn)證代碼是否正確插入和數(shù)據(jù)的查詢。查詢驗(yàn)證超越了靜態(tài)類型檢查,包括對(duì)無(wú)意義的查詢進(jìn)行邏輯驗(yàn)證。通過(guò)嚴(yán)格的類型檢查錯(cuò)誤,你將獲得一個(gè)可以信任的數(shù)據(jù)集。

      下面的插入查詢例子中,Charlie和DataCo之間的關(guān)系將被系統(tǒng)拒絕,因?yàn)橐粋(gè)人不能和一個(gè)公司結(jié)婚(假設(shè)模式遵循真實(shí)世界一般規(guī)律)。

      insert

      復(fù)制

      $charlie isa person, has name "Charlie";

      $dataCo isa company, has name "DataCo";

      (husband: $charlie, wife: $dataCo) isa marriage; # invalid relation

      commit>>

      ERROR: invalid data detected during type validation

      6、推理

      最后,TypeDB提供了一個(gè)內(nèi)置的推理引擎,這使得TypeDB能夠推導(dǎo)出新見解,并提供對(duì)應(yīng)的解釋。另一方面,屬性圖并不提供原生的推理能力。

      TypeDB的推斷是基于模式中的規(guī)則。在查詢運(yùn)行期間,如果數(shù)據(jù)集中的某個(gè)邏輯形式被滿足(如規(guī)則中定義的),系統(tǒng)將得出新的結(jié)論。就像編程中的函數(shù)一樣,規(guī)則可以相互連鎖,在數(shù)據(jù)層面創(chuàng)建行為的抽象。

      通過(guò)下面的規(guī)則,TypeDB將能夠推斷出一個(gè)城市位于一個(gè)大陸,盡管兩者之間不存在明確的關(guān)系。

      define

      復(fù)制

      rule transitive-location:

      when {

      (located: $city, locating: $country) isa location;

      (located: $country, locating: $continent) isa location;

      } then {

      (located: $city, locating: $continent) isa location;

      };

      使用自動(dòng)推理,TypeDB可以推斷出 "卡姆登 "區(qū)和 "英國(guó) "之間的關(guān)系(虛線),盡管它們沒(méi)有直接聯(lián)系。

      四、總結(jié)

      回到我們的主題,什么時(shí)候使用圖數(shù)據(jù)庫(kù)呢?圖是為那些依賴復(fù)雜和相互連接的數(shù)據(jù)應(yīng)用而準(zhǔn)備。正如我們所看到的,他們?nèi)狈V泛的應(yīng)用,這也是圖數(shù)據(jù)庫(kù)失敗的原因和面臨的挑戰(zhàn)。為了面對(duì)挑戰(zhàn)并實(shí)現(xiàn)圖形數(shù)據(jù)庫(kù)的最初承諾,我們建立了TypeDB。

      文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請(qǐng)謹(jǐn)慎對(duì)待。投資者據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。

    即時(shí)

    新聞

    明火炊具市場(chǎng):三季度健康屬性貫穿全類目

    奧維云網(wǎng)(AVC)推總數(shù)據(jù)顯示,2024年1-9月明火炊具線上零售額94.2億元,同比增加3.1%,其中抖音渠道表現(xiàn)優(yōu)異,同比有14%的漲幅,傳統(tǒng)電商略有下滑,同比降低2.3%。

    企業(yè)IT

    重慶創(chuàng)新公積金應(yīng)用,“區(qū)塊鏈+政務(wù)服務(wù)”顯成效

    “以前都要去窗口辦,一套流程下來(lái)都要半個(gè)月了,現(xiàn)在方便多了!”打開“重慶公積金”微信小程序,按照提示流程提交相關(guān)材料,僅幾秒鐘,重慶市民曾某的賬戶就打進(jìn)了21600元。

    3C消費(fèi)

    華碩ProArt創(chuàng)藝27 Pro PA279CRV顯示器,高能實(shí)力,創(chuàng)

    華碩ProArt創(chuàng)藝27 Pro PA279CRV顯示器,憑借其優(yōu)秀的性能配置和精準(zhǔn)的色彩呈現(xiàn)能力,為您的創(chuàng)作工作帶來(lái)實(shí)質(zhì)性的幫助,雙十一期間低至2799元,性價(jià)比很高,簡(jiǎn)直是創(chuàng)作者們的首選。