《Neo4j全棧開發》一書作者陳韶健,電子工業出版社2017年6月出版
基本介紹
- 書名:Neo4j全棧開發
- 作者:陳韶健
- ISBN:978-7-121-31447-6
- 頁數:316
- 定價:69.00
- 出版社:電子工業出版社
- 出版時間:2017年6月
- 開本:16
內容提要,目錄,
內容提要
《Neo4j全棧開發》全面、系統地介紹了Neo4j這個獨特而又高性能的NoSQL圖資料庫,從使用Neo4j進行程式開發,到Neo4j的管理和配置等層面全方位地闡釋了Neo4j的整個生態體系。
《Neo4j全棧開發》不僅著重介紹了怎樣以簡單易用的方式來使用Neo4j,更難能可貴的是,《Neo4j全棧開發》還分享了使用分散式Neo4j構建高可用的讀/寫分離負載均衡配置的實際操作過程和實現細節。
通過對《Neo4j全棧開發》的學習,讀者將系統地掌握Neo4j的知識,並很快將其用於項目開發之中,為自己的套用提升訪問性能,解決燃眉之急。
目錄
第1章 Neo4j概述 1
1.1 Neo4j數據的特點 2
1.2 Neo4j數據的表現形式 2
1.3 Neo4j的優勢 5
1.3.1 查詢的高性能 5
1.3.2 設計的靈活性 6
1.3.3 開發的敏捷性 6
1.3.4 與其他資料庫的比較 6
1.3.5 綜合表現 7
1.4 哪些領域更適合使用Neo4j 8
1.4.1 社區網路 8
1.4.2 推薦引擎 9
1.4.3 交通運輸 9
1.4.4 物流管理 9
1.4.5 主數據管理 10
1.4.6 訪問控制 10
1.4.7 欺詐檢測 10
1.5 哪些領域不適合使用Neo4j 10
1.6 哪些企業在使用Neo4j 11
1.6.1 愛迪達的購物網站 12
1.6.2 沃爾瑪的內部管理系統 12
1.6.3 eBay的電子商務 13
1.7 豐富的學習資源 13
1.7.1 精選的GraphGists 13
1.7.2 GraphGists門戶 15
1.8 小結 16
第2章 Neo4j API套用 18
2.1 創建項目工程 18
2.1.1 項目工程配置 19
2.1.2 引用Neo4j開發包 19
2.2 使用Neo4j API 20
2.2.1 使用嵌入式資料庫 20
2.2.2 創建節點和關係 21
2.2.3 查詢及更新 22
2.2.4 刪除關係和節點 23
2.3 使用標籤 25
2.4 使用索引 26
2.4.1 手動索引 26
2.4.2 模式索引 27
2.4.3 模式約束 28
2.5 圖的遍歷 31
2.5.1 廣度優先遍歷 32
2.5.2 深度優先遍歷 32
2.5.3 遍歷的路徑 34
2.6 使用Cypher查詢語言 37
2.7 連線Neo4j伺服器 40
2.8 關於事務 42
2.8.1 Neo4j支持完整的事務管理特性 42
2.8.2 互動周期 43
2.8.3 隔離級別 44
2.8.4 關於死鎖 44
2.9 其他開發語言實例 44
2.9.1 Node.js訪問Neo4j 45
2.9.2 Python訪問Neo4j 46
2.10 小結 47
第3章 Neo4j的安裝及使用 48
3.1 安裝要求及推薦 48
3.2 安裝Neo4j伺服器 49
3.2.1 下載Neo4j 49
3.2.2 在Linux作業系統中安裝Neo4j 50
3.2.3 在Windows作業系統中安裝Neo4j 51
3.3 Neo4j基本配置 52
3.4 Neo4j配置最佳化 53
3.4.1 頁面高速快取 53
3.4.2 堆大小 54
3.4.3 垃圾收集器 54
3.5 使用Neo4j的Web控制台 55
3.5.1 使用命令行輸入框 56
3.5.2 資料庫管理信息 57
3.5.3 使用收藏夾 59
3.5.4 使用幫助手冊 63
3.5.5 使用瀏覽器同步功能 65
3.5.6 使用瀏覽器設定 67
3.5.7 關於Neo4j 68
3.6 小結 69
第4章 Cypher查詢語言簡介 71
4.1 Cypher語法基礎 71
4.1.1 變數定義 72
4.1.2 可用運算符 72
4.2 Cypher讀/寫查詢結構 73
4.2.1 用CREATE創建節點 74
4.2.2 用CREATE創建關係 74
4.2.3 用MERGE創建節點 75
4.2.4 用MERGE創建關係 76
4.2.5 用SET更新數據 76
4.2.6 用DELETE刪除數據 77
4.2.7 用REMOVE移除數據 78
4.2.8 使用循環FOREACH 79
4.3 使用索引 79
4.3.1 創建和使用索引 80
4.3.2 刪除索引 81
4.4 使用約束 81
4.4.1 創建約束 81
4.4.2 刪除約束 81
4.5 使用標籤 82
4.6 Cypher唯讀查詢結構 83
4.6.1 條件過濾WHERE 83
4.6.2 聯合查詢UNION 84
4.6.3 使用連結WITH 84
4.6.4 返回結果RETURN 85
4.7 使用CASE子句 86
4.8 遍歷的路徑 86
4.8.1 最短路徑 87
4.8.2 所有最短路徑 88
4.9 使用函式 90
4.10 使用CALL調用存儲過程 92
4.11 查詢語句性能分析 93
4.12 Cypher的使用範圍 95
4.12.1 在neo4j-shell中使用Cypher查詢語言 96
4.12.2 在Rest API中使用Cypher查詢語言 98
4.13 小結 101
第5章 使用SDN建模和設計存儲庫接口 103
5.1 SDN簡介 103
5.1.1 SDN的特點 103
5.1.2 SDN存儲庫接口 104
5.2 數據模型設計 105
5.2.1 用戶訪問控制數據模型 105
5.2.2 購物網站數據模型 106
5.3 數據建模的誤區 108
5.4 Neo4j的數據類型 109
5.5 在項目中使用SDN 110
5.5.1 在項目工程中引用SDN依賴 110
5.5.2 建模中可用的OGM註解 111
5.5.3 日期類型轉換實例 112
5.6 使用SDN建模 113
5.6.1 節點建模 113
5.6.2 關係建模 116
5.7 使用SDN設計存儲庫接口 118
5.7.1 創建存儲庫接口 118
5.7.2 在標準方法中使用路徑 120
5.7.3 自定義聲明方法 120
5.7.4 使用底層方法 122
5.8 SDN配置 124
5.8.1 配置域對象和存儲庫接口 125
5.8.2 使用SDN驅動連線資料庫 125
5.9 小結 127
第6章 套用實例一:NBA季後賽預測 128
6.1 套用背景分析 129
6.1.1 勝負預測的依據 129
6.1.2 NBA季後賽數據模型 129
6.2 實體對象建模 131
6.2.1 節點實體建模 131
6.2.2 關係實體建模 134
6.3 實體持久化和查詢設計 135
6.3.1 東部球隊存儲庫接口 136
6.3.2 西部球隊存儲庫接口 137
6.3.3 比賽存儲庫接口 138
6.3.4 贏得關係存儲庫接口 139
6.4 預測算法設計 140
6.4.1 NBA季後賽的年度歷史查詢 141
6.4.2 一支球隊的比賽歷史查詢 141
6.4.3 勝負比率排名算法 142
6.4.4 輸贏預測算法 143
6.5 SDN配置及資料庫連線 144
6.5.1 資料庫連線配置 145
6.5.2 SDN配置 145
6.6 資料庫設計驗證 146
6.7 創建Web套用 149
6.8 Web前後端設計 150
6.8.1 Web後端設計 150
6.8.2 Web前端設計 154
6.9 比賽結果編輯設計 168
6.9.1 比賽結果編輯的訪問控制設計 168
6.9.2 比賽結果的錄入界面設計 171
6.10 勝率排名的Web設計 176
6.10.1 勝率排名的訪問控制設計 176
6.10.2 勝率排名的界面設計 177
6.11 輸贏預測的Web設計 180
6.11.1 輸贏預測的訪問控制設計 181
6.11.2 輸贏預測的界面設計 182
6.12 使用GraphGists的測試數據 187
6.13 實例工程使用 188
6.13.1 工程配置 189
6.13.2 運行套用 189
6.14 小結 191
第7章 套用實例二:電影社區推薦引擎 192
7.1 套用背景分析 192
7.1.1 發現商業價值 193
7.1.2 建立數據模型 193
7.2 數據對象建模 194
7.2.1 節點建模 194
7.2.2 關係建模 199
7.3 存儲庫接口設計 201
7.3.1 影院存儲庫接口設計 201
7.3.2 電影存儲庫接口設計 202
7.3.3 節目存儲庫接口設計 203
7.3.4 觀眾存儲庫接口設計 204
7.4 Cypher查詢算法設計 204
7.4.1 電影排名查詢算法設計 205
7.4.2 電影推薦查詢算法設計 205
7.5 數據訪問服務類設計 208
7.5.1 分頁查詢公共服務類 209
7.5.2 數據訪問服務類 210
7.6 資料庫連線配置 212
7.6.1 SDN驅動的依賴引用 212
7.6.2 連線資料庫配置 213
7.6.3 SDN配置 213
7.7 資料庫設計驗證 214
7.8 Web設計 217
7.8.1 訪問控制設計 218
7.8.2 界面設計 222
7.9 電影評分的Web設計 242
7.9.1 電影評分訪問控制設計 242
7.9.2 電影評分界面設計 244
7.10 電影排名的Web設計 247
7.10.1 電影排名訪問控制設計 247
7.10.2 電影排名界面設計 248
7.11 電影推薦的Web設計 252
7.11.1 推薦電影給觀眾的Web設計 252
7.11.2 推薦電影給朋友的Web設計 257
7.12 管理後台的導航欄設計 258
7.13 實例工程使用 260
7.13.1 運行配置 260
7.13.2 套用發布 261
7.14 小結 262
第8章 Neo4j企業版安裝及使用 263
8.1 分散式伺服器安裝 264
8.1.1 在不同機器上安裝分散式伺服器 264
8.1.2 在同一台機器上安裝分散式伺服器 272
8.2 使用Haproxy實施負載均衡服務 275
8.2.1 普通負載均衡配置 275
8.2.2 Haproxy服務監控 279
8.3 實現讀/寫分離的負載均衡服務 280
8.4 小結 284
第9章 Neo4j的數據安全及備份 286
9.1 數據的備份與恢復 286
9.1.1 數據備份 286
9.1.2 清理備份日誌 288
9.1.3 數據恢復 289
9.2 資料庫安全保障 290
9.3 數據的導入與導出 290
9.3.1 使用neo4j-import導入數據 291
9.3.2 使用Cypher導入數據 294
9.3.3 導出數據 295
9.4 故障恢復與事務日誌 297
9.5 資料庫升級 297
9.5.1 從2.x 升級到3.0.3 297
9.5.2 在3.x之間升級 299
9.6 小結 300
結束語 301
附錄A 參考資料 302