易燃物匯聚 YouTube 有聲書與書評
圖數據庫實戰 封面

圖數據庫實戰

戴夫·貝克伯傑 喬希·佩裏曼

1162人在讀
23.4萬字總字數
¥45定價

內容簡介

現實世界中的數據往往並不是能以行列形式呈現的表格型數據,而是富含關係信息的複雜網絡。對於挖掘這類數據的潛在價值,圖數據庫具有明顯的優勢。本書介紹如何針對真實場景設計和實現圖數據庫。你將學習圖論的基礎知識,並嘗試構建基於圖數據庫的社交網絡應用程序和推薦引擎等。你將掌握圖數據庫開發的所有重要概念,包括遞歸遍歷、圖數據建模、查詢調優、性能調優、圖分析,以及如何避免超級節點等反模式。學完本書後,你將有能力構建基於圖數據庫的應用程序,從而顯著地提升數據價值。本書示例採用開源圖計算框架TinkerPop及其查詢語言Gremlin,但所述概念均適用於Neo4j等基於Cypher的圖數據庫。

讀者書評

★★★★★

一圖勝萬言——《圖數據庫實戰》讀後 Tom Shi 2023/4/20 是從什麼時候開始,工作中開始涉及數據處理和數據庫?這個問題很早以前就不再糾結了,因爲已經記不清楚。反而是現在好像沒有哪個工作甚至愛好,是與數據和數據庫完全無關的。但作爲一個老IT,我真的瞭解數據和數據庫嗎?這個還真不敢把話說滿。至少,在讀《圖數據實戰》之前,我對關係型數據庫的理解,和讀完之後就是完全不一樣的。 《圖數據庫實戰》這麼low的書名,我感覺跟其內容完全不匹配。不過,本書的兩位作者——被譽爲圖數據庫領域的“意見領袖”的戴夫·貝克伯傑,還有擁有20多年複雜系統構建的數據構架師喬希·佩裏曼——應該是完全不介意的吧。至少我認知裏,始終在一線編程解決實際問題的程序員和工程師們,對於這種沒啥實際意義的名頭,基本上都不大願意爲此浪費時間。 先說我的讀後“結論”,如果是不在第一線的非編程人員,那麼本書第一部分是最值得反覆閱讀的。對於理解圖數據庫概念,甚至如我一樣重新認識理解關係型數據庫,都是非常有幫助的。第二三部分,需要一定的系統構建和編程的背景知識,閱讀門檻稍高。但其實只要有一些基本概念,哪怕對其中具體的代碼一知半解,也不影響理解其中的思路,關鍵是從實操中理解系統構架和從功能到數據的邏輯思路,這個對於非IT專業卻需要與開發人員共同合作的工程人員或者業務人員來說,是非常有幫助的一件事情。所以,其實我個人是建議,即便看起來感覺乏味喫力,後半部分也依然是值得認真研讀的。 首先,本書開篇就給出了一張圖,充分說明了數據庫工具是如何一步步演化到圖數據庫的。從這個演進梯次中其實可以看出,我們日常工作中運用最多的,並不是特別複雜的那些類型,反而是最基本的“鍵值型數據庫”。但是,隨着現在各個行業數字化轉型的風潮漸起,業務和客戶雙方的需求,都對本行業提出了越來越高的數據理解和運用要求。而對現實世界中各種事務之間關係的描述,如何能夠納入結構化的數據體系,就構成了關於圖數據庫的最初話題。 其次,當前社會對於生產力和生產要素的主流認知中,數據早已是不言自明的新興力量。因此,新工業或者說新時代的根基——底層數據庫技術的進步,就成爲關鍵。數據,源於人類對現實世界的抽象。現實世界中有實體,也有實體之間的關係。實體⼜可能是由⼀組部件通過確定關係構成,部件也可能是由更細微的元器件構成。其相互關係均存在構成邏輯的確定性和運⾏存續過程中的不確定性。因此,數據庫技術,必須對實體和實體間的關係,予以同等權重的關注,否則就不足以滿足當下和未來,社會對於數據、對於技術的需求。 最後,數據事實上已經成爲社會公認的一種新資產形式。而對數據的結構化,是實現這種新資產價值,即發現隱藏在⼤量數據中的規律化、特殊性特徵,構成了基於數據的數據,的基本手段。進一步,基於數據資產的增值,則體現在這類結構化數據進一步挖掘和分析的過程中。 這部分論述在書中所佔篇幅很小,但個人認爲很值得思考。接下來則是確定“圖”的概念,書中的定義是: “圖,是⼀種⼏乎⽆處不在、⽤來思考現實世界場景的⽅法,因爲圖能夠抽象出這些場景要表現的項(item)和關係,從⽽能夠快速、⾼效地處理數據中的連接。” 這⾥的圖,在基本概念上,是對應於表。也就是說,表中的數據是對應和排列關係,以及表與表的關鍵關係。數據之間更復雜的關係,就需要抽象、分拆出更多的對應排列關係,構建更多的表,在表的條⽬間建⽴更多對應關係。圖則把關鍵數據項之間關係突出出來,相⽐表,圖可以包容更多更復雜的關係和邏輯。簡言之,圖就是頂點和邊的集合。頂點代表實體或者節點,邊則代表關係。起源於萊昂哈德·歐拉1736年的“哥尼斯堡七橋問題”開創了圖論,也爲今天的圖數據庫奠定了數學基礎。 相比圖數據庫,傳統的關係型數據庫中,數據關係不是數據,⽽是結構。而在圖數據庫中,關係與數據同等重要,甚至關係本身還可以具有屬性,即關於關係的數據,可以在圖數據庫中直接表達並進行計算。這種近乎動態的關係記錄和運算模式,肯定是更接近現實世界的。 但是,技術的進步從來不是以新技術否定老技術。對於優秀的工程師來說,對特定技術的偏好並不是應有的好個人品質;根據面對的實際問題,適用最恰當最合適的技術,纔是。 對於圖數據庫和關係數據庫來說,同樣如此。在關係數據庫中,關係是唯⼀且鎖定的,關係也是⽆屬性的。關係之間不同數據的鍵值對,構成了基礎的數據累積原則,即歸類排序。而在圖數據庫中,類似關係數據庫中的關係被強化,數據和關係的邏輯模型⼀旦抽象成功,即構成圖數據庫的基本數據單元。每個單元只保存⼀組鍵值對,對應邏輯模型中的所有屬性定義。同類數據不歸類,排序需要在遍歷抽取基礎上單獨計算。 由此可見,中對於數據的處理方面,兩者各有擅⻓。以過去所涉及的各類業務來說,感覺如果沒有完備、健全的關係型數據作基礎,圖數據庫在已有超長存續時間的業務中,要想發揮作用,所面臨的困難,幾乎是無法逾越的。 最後,引用書中按數據複雜性排序的數據引擎分類—— 鍵值數據庫:所有數據都由唯⼀標識符(鍵)和關聯的數據對象(值)表示。 列存儲數據庫(⼜名⾯向列、寬列式數據庫):數據按列來存儲,可能每⾏有⼤量的列,也可能每⾏的列數不⼀樣。 ⽂檔數據庫(⼜名⾯向⽂檔數據庫):將數據存儲到帶有唯⼀鍵的⽂檔中,該⽂檔可以具有不同的模式,也可以包含嵌套數據。 關係數據庫:將數據存儲在包含具有嚴格模式⾏結構的表中,允許在表之間連接⾏來建⽴關係。 圖數據庫:將數據存儲爲頂點(節點、組件)和邊(關係)。

★★★★★

很不錯的入門的書,就算沒有太多數據庫的背景知識也可以看懂,內容也不太多,很快就可以讀完。 可能出現的各方面的問題都講到了,有不少坑真是後悔沒早點讀,哈哈哈。 整本書的思路比較清晰,娓娓道來的感覺,講的非常不錯,圖論部分夢迴大學時候的離散數學。

★★★★★

入門的書,對圖數據庫的存儲原理,圖數據庫的設計都有涉及,但並沒有深入某一種類型的數據庫。其實圖數據庫的存儲關係型數據庫大致也能實現,但查詢語言無法解決,就會導致程序跟數據庫直接需要很多次的通訊,通訊成本,解釋成本就很高。

★★★★★

國內爲數不多的講解圖數據庫基礎的書籍。雖然這本書用的圖數據庫並不是Neo4j,但是通過閱讀這本書,卻讓我更理解了Neo4j的一些概念。 這本書是通過一個具體的實例去講解,如何對一個項目設計圖數據庫,如何確定節點和關係,屬性應該放置到節點中還是關係上。所有的這些思考,作者都在書中根據他的想法給出了答案。這點對於剛剛接觸圖數據庫的我來說,就好比是把一個應用按步驟的拆分給你看,並且告訴你,爲什麼要這麼設計。 所以,在讀完這本書之後,我很快的閱讀完了Neo4j那本書,並且開始了對neo的操作。

★★★★★

爲數不多的從工程角度來解析圖結構設計的數,更是爲數不多的gremlin的教材

★★★★★

主要講germlin數據庫。裏面關於圖的思維方式引導的不錯。

★★★★★

作爲入門讀物很不錯,很多內容在講模式和用處而不是貼代碼。

★★★☆☆

可能適合新手,但是這是一本實戰,太囉嗦了

★★★☆☆

基礎講的很清楚,就是有些翻譯有點彆扭

★★★★★

把圖數據庫的操作比喻爲密室逃脫,挺有意思

書籍信息

作者戴夫·貝克伯傑 喬希·佩裏曼
譯者葉偉民,劉華
出版社人民郵電出版社
出版時間2021-10-01
ISBN9787115571373
分類計算機-編程設計
格式EPUB
完結狀態連載中
章節數28