CrowdStrike“全球滅霸響指”事件后續(xù),德國 10% 企業(yè)更換安全供應商導致 1TB 數(shù)據(jù)泄露后,迪士尼宣布棄用 Slack 平臺合合信息啟信產(chǎn)業(yè)大腦攜手市北新區(qū)打造“一企一畫像”平臺,加速數(shù)字化轉(zhuǎn)型重慶:力爭今年智能網(wǎng)聯(lián)新能源汽車產(chǎn)量突破 100 萬輛,到 2027 年建成萬億級產(chǎn)業(yè)集群微信iOS最新版上線:iPhone用戶可在朋友圈發(fā)實況照片了蘋果有線耳機或?qū)⑼.a(chǎn)沖上熱搜!閑魚相關(guān)搜索量暴漲384%2024 vivo開發(fā)者大會官宣:OriginOS 5/自研藍河系統(tǒng)2降臨真·AI程序員來了,阿里云「通義靈碼」全面進化,全流程開發(fā)僅用幾分鐘東方甄選烤腸全網(wǎng)銷量及銷售額領(lǐng)先鴻蒙PC要來了 界面很漂亮!余承東:目前華為PC將是最后一批搭載Windows上半年中國AR/VR出貨23.3萬臺,同比下滑了 29.1%IDC:2024 上半年中國 AR / VR 頭顯出貨 23.3 萬臺,同比下滑 29.1%英特爾AI加速器Gaudi3下周發(fā)布,挑戰(zhàn)NVIDIA統(tǒng)治地位!大屏技術(shù)邂逅千年色彩美學!海信激光電視成為電影《只此青綠》官方合作伙伴OpenAI將最新AI模型o1擴展到企業(yè)和教育領(lǐng)域三星新專利探索AR技術(shù)新應用:檢測屏幕指紋殘留,提高手機安全性猛瑪傳奇C1:直播圖傳技術(shù)的革新者JFrog推出首個運行時安全解決方案,實現(xiàn)從代碼到云的全面軟件完整性和可追溯性亞馬遜推出一大波生成式 AI 工具,購物體驗全面升級機器人公司1X推出世界模型
  • 首頁 > 數(shù)據(jù)存儲頻道 > 數(shù)據(jù)庫頻道 > 數(shù)據(jù)庫

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

    2022年12月21日 10:07:44   來源:51CTO

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

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

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

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

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

      節(jié)點有屬性。

      節(jié)點帶有一個或多個標簽。

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

      邊緣可以有屬性。

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

      推薦引擎

      語義搜索

      反洗錢

      欺詐檢測

      360度客戶視圖

      除了這些應用之外,對于那些不僅要管理大量數(shù)據(jù)而且需要產(chǎn)生業(yè)務(wù)見解的組織來說,圖數(shù)據(jù)庫已經(jīng)成為推薦的解決方案。圖數(shù)據(jù)庫有望成為獲得這種洞察力的最簡單方法,因為它使我們很容易理解數(shù)據(jù)中的關(guān)系和背景。

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

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

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

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

      2、保持數(shù)據(jù)的連貫性

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

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

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

      三、強類型數(shù)據(jù)庫

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

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

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

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

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

      define

      復制

      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;

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

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

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

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

      define

      復制

      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;

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

      3、嵌套關(guān)系

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

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

      match

      復制

      $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 "扮演丈夫的角色;橐鍪且粋嵌套關(guān)系,因為它也在位置關(guān)系中扮演定位的角色,而城市 "倫敦 "在關(guān)系中扮演定位的角色。

      4、多元關(guān)系

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

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

      match

      復制

      $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)系的例子,具體來說是三元關(guān)系,關(guān)系類型是cast。關(guān)系與三個實體相關(guān):電影 "泰坦尼克號 扮演電影中角色“杰克”的演員是"萊昂納多 "。

      5、安全問題

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

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

      insert

      復制

      $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提供了一個內(nèi)置的推理引擎,這使得TypeDB能夠推導出新見解,并提供對應的解釋。另一方面,屬性圖并不提供原生的推理能力。

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

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

      define

      復制

      rule transitive-location:

      when {

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

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

      } then {

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

      };

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

      四、總結(jié)

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

      文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請謹慎對待。投資者據(jù)此操作,風險自擔。

    即時

    TCL實業(yè)榮獲IFA2024多項大獎,展示全球科技創(chuàng)新力量

    近日,德國柏林國際電子消費品展覽會(IFA2024)隆重舉辦。憑借在核心技術(shù)、產(chǎn)品設(shè)計及應用方面的創(chuàng)新變革,全球領(lǐng)先的智能終端企業(yè)TCL實業(yè)成功斬獲兩項“IFA全球產(chǎn)品設(shè)計創(chuàng)新大獎”金獎,有力證明了其在全球市場的強大影響力。

    新聞

    敢闖技術(shù)無人區(qū) TCL實業(yè)斬獲多項AWE 2024艾普蘭獎

    近日,中國家電及消費電子博覽會(AWE 2024)隆重開幕。全球領(lǐng)先的智能終端企業(yè)TCL實業(yè)攜多款創(chuàng)新技術(shù)和新品亮相,以敢為精神勇闖技術(shù)無人區(qū),斬獲四項AWE 2024艾普蘭大獎。

    企業(yè)IT

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

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

    3C消費

    “純臻4K 視界煥新”——愛普生4K 3LCD 激光工程投影

    2024年3月12日,由愛普生舉辦的主題為“純臻4K 視界煥新”新品發(fā)布會在上海盛大舉行。

    研究

    2024全球開發(fā)者先鋒大會即將開幕

    由世界人工智能大會組委會、上海市經(jīng)信委、徐匯區(qū)政府、臨港新片區(qū)管委會共同指導,由上海市人工智能行業(yè)協(xié)會聯(lián)合上海人工智能實驗室、上海臨港經(jīng)濟發(fā)展(集團)有限公司、開放原子開源基金會主辦的“2024全球開發(fā)者先鋒大會”,將于2024年3月23日至24日舉辦。