Neo4j開發應用指南 | 誠品線上

Neo4j開發應用指南

作者 陳韶健
出版社 佳魁資訊股份有限公司
商品描述 Neo4j開發應用指南:優秀的資料庫,不僅可以提升應用的效能,而且可適應大規模的資料增長,減輕開發人員和資料庫管理人員的工作負擔,為你和你的企業以及使用者帶來前所未

內容簡介

內容簡介 優秀的資料庫,不僅可以提升應用的效能,而且可適應大規模的資料增長,減輕開發人員和資料庫管理人員的工作負擔,為你和你的企業以及使用者帶來前所未有的優越體驗。本書適合所有開發人員,特別是Spring Boot開發者,或資料庫管理人員和系統設計人員,並可作為系統策劃者進行資料庫選型的參考資料。

作者介紹

作者介紹 陳韶健資深專家,精通.Net和Java兩大體系,尤其對Spring和Spring Boot有深入研究。熟悉SQL Server、Oracle、MySQL等關聯式資料庫,以及Redis、MongoDB、Neo4j等NoSQL資料庫,並對Neo4j有更多的興趣和深入地研究。在系統設計、伺服器架構設計、資料安全和性能優化等方面都有豐富的實踐和工作經驗。

產品目錄

產品目錄 前言01 Neo4j概述1.1 Neo4j資料的特點1.2 Neo4j資料的表現形式1.3 Neo4j的優勢1.4 哪些領域更適合使用Neo4j1.5 哪些領域不適合使用Neo4j1.6 哪些企業在使用Neo4j1.7 豐富的學習資源1.8 小結02 Neo4j API應用2.1 建立開發專案2.2 使用Neo4j API2.3 使用標籤2.4 使用索引2.5 圖的檢查2.6 使用Cypher查詢語言2.7 連接Neo4j伺服器2.8 關於交易2.9 其他開發語言實例2.10 小結03 Neo4j的安裝及使用3.1 安裝要求及推薦3.2 安裝Neo4j伺服器3.3 Neo4j基本設定3.4 Neo4j設定最佳化3.5 使用Neo4j的Web主控台3.6 小結04 Cypher查詢語言簡介4.1 Cypher語法基礎4.2 Cypher讀 寫查詢結構4.3 使用索引4.4 使用約束4.5 使用標籤4.6 Cypher唯讀查詢結構4.7 使用CASE子句4.8 檢查的路徑4.9 使用函數4.10 使用CALL呼叫預存程序4.11 查詢敘述效能分析4.12 Cypher的使用範圍4.13 小結05 使用SDN建模和設計儲存函數庫介面5.1 SDN簡介5.2 資料模型設計5.3 資料建模的錯誤5.4 Neo4j的資料類型5.5 在專案中使用SDN5.6 使用SDN建模5.7 使用SDN設計儲存函數庫介面5.8 SDN設定5.9 小結06 應用實例一:NBA季後賽預測6.1 應用背景分析6.2 實體物件建模6.3 實體持久化和查詢設計6.4 預測演算法設計6.5 SDN設定及資料庫連接6.6 資料庫設計驗證6.7 建立Web應用6.8 Web前後端設計6.9 比賽結果編輯設計6.10 勝率排名的Web設計6.11 輸贏預測的Web設計6.12 使用GraphGists的測試資料6.13 範例專案使用6.14 小結07 應用實例二:電影社區推薦引擎7.1 應用背景分析7.2 資料物件建模7.3 儲存函數庫介面設計7.4 Cypher查詢演算法設計7.5 資料存取服務類別設計7.6 資料庫連接設定7.7 資料庫設計驗證7.8 Web設計7.9 電影評分的Web設計7.10 電影排名的Web設計7.11 電影推薦的Web設計7.12 管理後台的導覽列設計7.13 範例專案使用7.14 小結08 Neo4j企業版安裝及使用8.1 分散式伺服器安裝8.2 使用Haproxy實施負載平衡服務8.3 實現讀 寫分離的負載平衡服務8.4 小結09 Neo4j的資料安全及備份9.1 資料的備份與恢復9.2 資料庫安全保障9.3 資料的匯入與匯出9.4 故障恢復與交易記錄檔9.5 資料庫升級9.6 小結結束語附錄A 參考資料

商品規格

書名 / Neo4j開發應用指南
作者 / 陳韶健
簡介 / Neo4j開發應用指南:優秀的資料庫,不僅可以提升應用的效能,而且可適應大規模的資料增長,減輕開發人員和資料庫管理人員的工作負擔,為你和你的企業以及使用者帶來前所未
出版社 / 佳魁資訊股份有限公司
ISBN13 / 9789863797739
ISBN10 / 9863797731
EAN / 9789863797739
誠品26碼 / 2681805193005
頁數 / 320
開數 / 18K
注音版 /
裝訂 / P:平裝
語言 / 1:中文 繁體
尺寸 / 17X23X1.7CM
級別 / N:無

最佳賣點

最佳賣點 : Neo4j圖資料庫是一個能夠適應業務需求不斷變化和大規模資料增長而產生的資料庫,它不但具有很強的適應能力,而且能夠自始至終保持高效的查詢效能。Neo4j沒有模式結構的定義,也不需要這些定義,它使用非結構化的方式來儲存連結資料,所以能夠直接表現資料的連結特性。

試閱文字

內文 : 1.3.1 查詢的高性能
Neo4j 是一個原生的圖資料庫引擎,它儲存了原生的圖資料,因此,可以使用
圖結構的自然延伸特性來設計免索引鄰近節點檢查的查詢演算法,即圖的檢查
演算法設計。圖的檢查是圖資料結構所具有的獨特演算法,即從一個節點開
始,根據其連接的關係,可以快速和方便地找出它的鄰近節點。這種尋找資料
的方法並不受資料量的大小所影響,因為鄰近查詢尋找的始終是有限的局部資
料,而不會對整個資料庫進行搜索。所以,Neo4j 具有非常高效的查詢效能,
相比於RDBMS,它的查詢速度可以加強數倍乃至數十倍。而且查詢速度不會
因數據量的增長而下降,即資料庫可以經久耐用,並且始終保持最初的活力。
不像RDBMS 那樣,因為不可避免地使用了一些範式設計,所以在查詢時如
果需要表示一些複雜的關係,勢必會建置很多連接,進一步形成很多複雜的運
算。並且在查詢中更加可怕的是還會涉及大量資料,這些資料大多與結果毫無
關係,有的可能僅是透過ID 尋找它的名稱而已,所以隨著資料量的增長,即
使查詢一小部分資料,查詢也會變得越來越慢,效能日趨下降,以至於讓人無
法忍受。
1.3.2 設計的靈活性
在日新月異的網際網路應用中,業務需求會隨著時間和條件的改變而發生變
化,這對以往使用結構化資料的系統來說,常常很難適應這種變化的需要。圖
資料結構的自然延伸特性及其非結構化的資料格式,讓Neo4j 的資料庫設計可
以具有很大的伸縮性和靈活性。因為隨著需求的變化而增加的節點、關係及其
屬性並不會影響到原來資料的正常使用,所以使用Neo4j 來設計資料庫,可以
更接近業務需求的變化,可以更快地趕上需求發展變化的腳步。
大多數使用關聯式資料庫的系統,為了應對快速變化的業務需求,常常需要採
取推倒重來的方法重構整個應用系統。而這樣做的成本是極大的。使用Neo4j
可以大幅地避免這種情況發生。雖然有時候,也許是因為最初的設計考慮得太

試閱文字

自序 : 前言

  在高速發展的網際網路應用中,業務需求的頻繁變更和資料的快速增長都要求資料庫必須具有很強的適應能力。Neo4j圖資料庫正是一個能夠適應這種業務需求不斷變化和大規模資料增長而產生的資料庫,它不但具有很強的適應能力,而且能夠自始至終保持高效的查詢效能。

  現實世界中的一切事物都處在聯繫之中,如人際關係、電腦網路、地理資料、分子結構模型等,無一不處在紛繁複雜的聯繫之中。這種聯繫形成一種互相關聯的資料,聯繫才是資料的本質所在。傳統的關聯式資料庫無法極佳地表現資料的聯繫,而一些NoSQL(Not Only SQL,非關聯式資料庫)資料庫也不能表現資料之間的聯繫。同樣是NoSQL的Neo4j圖資料庫是以圖的結構形式來儲存資料的,它所儲存的就是聯繫的資料,是連結資料本身。

  連結資料中的聯繫本來就很複雜,若要在關聯式資料庫中使用結構化形式來表現這種聯繫,則一般不能直接表示,處理起來既煩瑣又麻煩,並且隨著資料的不斷增長,其存取效能將日趨下降。無數的開發人員和資料庫管理人員都或多或少地使用過關聯式資料庫,在其應用的規模化進展過程中,對於資料庫的效能最佳化常常捉襟見肘、陷入窘境。Neo4j沒有模式結構的定義,也不需要這些定義,它使用非結構化的方式來儲存連結資料,所以能夠直接表現資料的連結特性。

  Neo4j不管是與關聯式資料庫相比,還是與其他NoSQL資料庫相比,都具有很多前所未有的優勢,主要表現在以下幾個方面。

  1.優越的效能表現
  Neo4j具有永久高效的讀取和寫入能力,這種能力與資料庫的大小無關,不管是初始建立的資料庫,還是用了很長時間、累積大量資料的資料庫,Neo4j始終能保持閃電般的讀/寫速度。

  2.設計的靈活性
  因為Neo4j沒有模式結構定義的約束,並且由於圖結構的自然延伸特性,都替Neo4j提供無限廣闊的靈活設計空間,因為無論是擴充設計,還是增加資料,都不會影響到原來資料的正常使用。

  3.反覆運算的敏捷性
  正是由於Neo4j的靈活設計特性及其圖結構資料的可伸縮性等特點,使其能追上業務需求變化發展的腳步,並且能適用於頻繁反覆運算的敏捷開發方法。

  4. 安全可靠的特性
  Neo4j不僅支援完整的交易管理特性,而且提供了即時線上備份功能,以及應對災難事故進行記錄檔恢復的方法,這些都充分說明Neo4j是一個安全可靠的資料庫。

  5.簡單好用的特性
  Neo4j在使用上非常簡單,不管是使用Java開發語言,還是其他開發語言,如Python、Ruby、PHP、.NET、Node.js等,都能夠非常方便地存取Neo4j。特別是Spring Data Neo4j開發套件,更是提供一整套非常簡單好用的Neo4j資料庫使用方法。

  6.豐富的學習資源
  Neo4j的社區版滋生了一個非常活躍的社區,在這個社區中,諸多開發者提供非常豐富的使用Neo4j的案例:GraphGists,這是學習使用Neo4j的極佳資源。透過對這些GraphGists的學習和交流,不僅能擴充你的想法,更能讓開發工作變得更加簡單和容易,而且還能幫助你快速建置應用的商業模型。

  7.大企業的考驗
  Neo4j擁有廣大而又有實力的使用者群眾,並且經過幾年時間的執行實作,充分驗證了它的穩定性和穩固性。如思科、沃爾瑪、愛迪達等公司,都在使用Neo4j的過程中採擷到了圖資料庫的極大威力,並且創造出蓬勃發展的商業模型。

  綜上所述,使用如此優秀的資料庫,不僅可以提升應用的效能,而且可以適應大規模的資料增長,同時還能減輕開發人員和資料庫管理人員的工作負擔,為你和你的企業以及你的使用者帶來前所未有的優越體驗。

  適合讀者群

  本書適合所有開發人員,特別是Spring Boot開發者閱讀,同時適合資料庫管理人員和系統設計人員學習使用,並可作為系統策劃者進行資料庫選型的參考資料。

  範例程式下載

  本書各章的實例程式下載在各個章節中都有明確說明,同時也可以透過以下網址選擇不同專案進行下載或檢出:
  github.com/mr-csj?tab=repositories

  勘誤與回饋

  如果有問題回饋則可以透過以下連結發起話題,而且如果因為編輯或排版出錯需要勘誤則也會首先在這裡發表:
  github.com/mr-csj/discuss/issues

  由於時間倉促,加之作者水準所限,書中難免存在紕漏或錯誤之處,敬請讀者批評指正!

  繁體中文版說明

  為維持全書之完整性,本書僅提供簡體中文程式碼下載,全書程式畫面亦維持簡體中文介面,讀者可對照全書文字進行操作。