Neo4j 3.x 入門經典

  • Neo4j 3.x 入門經典-preview-1
Neo4j 3.x 入門經典-preview-1

買這商品的人也買了...

商品描述

Neo4j是一個高性能的NoSQL圖數據庫,將結構化數據存儲在拓撲圖上而不是表中,從而輕鬆地管理巨量的數據。

Neo4j憑藉嵌入式、高性能、輕量級等優勢越來越受關注。

本書共15章,介紹圖論和圖數據庫、Neo4j基礎、Neo4j數據模型、Cypher入門、APOC和Cypher擴展、查詢性能優化、Neo4j數據導入、空間、安全認證、Neo4j可視化、Neo4j數據重構、集群等內容,最後通過兩大案例(推薦系統和影響分析與模擬)的講解,使你獲得圖數據建模與設計的技能。

本書既可以作為Neo4j初學者的入門教材,也可以作為相關行業Neo4j技術專家的參考手冊。

目錄大綱

第1章 圖論和數據庫 1
1.1 Neo4j 3.x簡介和圖的歷史 1
1.2 圖論的定義和用途 3
1.2.1 社會學研究 5
1.2.2 生物學研究 6
1.2.3 計算機科學 6
1.2.4 流量問題 7
1.2.5 路徑問題 8
1.2.6 網頁搜索 9
1.3 背景 10
1.3.1 導航數據庫 11
1.3.2 關係數據庫 13
1.3.3 NoSQL數據庫 15
1.4 圖數據庫的屬性圖模型 18
1.4.1 節點標籤 20
1.4.2 關係類型 20
1.5 使用圖數據庫的注意事項 20
1.5.1 為什麼使用圖數據庫 20
1.5.2 什麼時候不用圖數據庫以及用什麼替代 22
1.6 問答 23
1.7 小結 23

第2章 Neo4j基礎入門 25
2.1 Neo4j的關鍵概念和特點 25
2.1.1 從頭開始創建圖 25
2.1.2 基於事務的ACID數據庫 26
2.1.3 可用於聯機事務處理 27
2.1.4 擴展性能 28
2.1.5 聲明式查詢語言Cypher 28
2.2 Neo4j典型案例 29
2.2.1 複雜的連接密集型查詢 29
2.2.2 路徑查詢 29
2.2.3 開源解決方案 29
2.3 特性 30
2.4 許可協議 31
2.5 安裝Neo4j 32
2.5.1 在Windows系統上安裝Neo4j 32
2.5.2 在Mac和Linux系統上安裝Neo4j 35
2.6 在雲平台使用Neo4j 37
2.7 沙盒模式 41
2.8 在Docker容器中使用Neo4j 47
2.8.1 安裝Docker 48
2.8.2 準備文件 48
2.8.3 在Docker容器中運行Neo4j 48
2.9 問答 50
2.10 小結 51

第3章 Neo4j數據模型 52
3.1 四種基礎數據結構 52
3.2 圖數據庫建模基礎 53
3.2.1 ER圖和關係模式 53
3.2.2 通過連接表引入複雜性 54
3.3 圖模型—一個簡單、高保真的現實模型 55
3.4 圖建模—最佳實踐和陷阱 57
3.4.1 圖建模最佳實踐 57
3.4.2 圖數據庫建模陷阱 61
3.5 問答 64
3.6 小結 65

第4章 Cypher入門 66
4.1 Cypher的語法 66
4.2 Cypher的關鍵特性 67
4.3 與數據很好地結合 68
4.3.1 創建數據 68
4.3.2 讀取數據 69
4.3.3 更新數據 70
4.3.4 刪除數據 71
4.4 Cypher的關鍵操作詞 72
4.5 語法約定 73
4.6 高級知識 74
4.7 Cypher參考卡 78
4.8 openCypher工程 79
4.9 小結 79

第5章 過程—APOC 80
5.1 安裝APOC 80
5.1.1 機器安裝 81
5.1.2 Docker容器安裝 81
5.2 檢查APOC安裝 81
5.3 函數和過程 82
5.4 習慣用法 82
5.4.1 來自朋友的建議 82
5.4.2 圖概述 83
5.5 關鍵用法 85
5.5.1 安裝 85
5.5.2 隨機圖生成器 85
5.5.3 網站排名 86
5.5.4 Cypher語句限時執行 86
5.5.5 節點集合連接 87
5.5.6 更多APOC 87
5.6 問答 88
5.7 小結 89

第6章 Cypher擴展 90
6.1 構建擴展工程 90
6.1.1 創建函數 91
6.1.2 創建過程 92
6.2 定制聚合器 95
6.3 非託管擴展 96
6.3.1 HTTP和JAX-RS refreshers 97
6.3.2 JSON響應流式化 98
6.4 小結 101

第7章 查詢性能優化 102
7.1 Explain和Profile指令 102
7.1.1 查詢計劃 102
7.1.2 運算符 104
7.2 索引 105
7.2.1 強制使用索引 105
7.2.2 強制使用標籤 105
7.3 經驗法則 106
7.3.1 Explain所有查詢 106
7.3.2 行 106
7.3.3 不要過度消耗資源 106
7.3.4 返回笛卡兒積級別的數據 106
7.3.5 簡單 106
7.4 小結 107

第8章 Neo4j數據導入 108
8.1 導入CSV文件 108
8.2 導入JSON源 111
8.3 導入JDBC源 114
8.3.1 測試安裝 114
8.3.2 導入所有系統數據 114
8.4 導入XML源 115
8.5 小結 116

第9章 空間 118
9.1 空間簡介 118
9.1.1 回顧 118
9.1.2 無缺陷塔 119
9.1.3 什麼是空間 119
9.2 Neo4j的空間特性 119
9.3 APOC的空間特性 120
9.4 地理編碼 121
9.4.1 設置OSM為提供商 121
9.4.2 設置谷歌為提供商 121
9.5 Neo4j Spatial 122
9.5.1 在線示例 122
9.5.2 Neo4j Spatial特性 122
9.6 導入OpenStreetMap數據 124
9.7 大型OSM數據導入 126
9.7.1 簡易方法 126
9.7.2 更直接的數據導入方法 127
9.8 查詢衛生間 127
9.9 理解WKT和BBOX 128
9.10 刪除所有地理數據 128
9.11 小結 129

第10章 安全認證 130
10.1 認證與授權 130
10.2 角色 131
10.3 用戶管理 132
10.4 Neo4j連接到LDAP目錄 132
10.5 使用LDAP配置Neo4j 135
10.6 問答 136
10.7 小結 136

第11章 Neo4j 可視化 137
11.1 可視化的重要作用 137
11.1.1 為什麼圖數據可視化很重要 137
11.1.2 直觀地與數據進行交互 137
11.1.3 模式識別 138
11.1.4 發現重點 139
11.2 圖數據可視化的基本原則 139
11.2.1 開源可視化組件庫 140
11.2.2 將可視化組件庫應用到項目中 143
11.2.3 可視化解決方案 144
11.2.4 問題和陷阱 148
11.2.5 Cytoscape實例 149
11.3 問答 152
11.4 小結 153

第12章 Neo4j數據重構 154
12.1 預備步驟 154
12.2 簡單改變 154
12.2.1 重命名 154
12.2.2 添加數據 155
12.2.3 刪除數據 156
12.3 重大改變 156
12.3.1 知道我們的模型 156
12.3.2 重構工具 157
12.3.3 屬性變標籤 157
12.3.4 屬性變節點 157
12.3.5 相關節點變標籤 158
12.3.6 合併節點 158
12.3.7 關係 159
12.4 結論 162
12.5 小結 162

第13章 集群 163
13.1 為什麼需要Neo4j集群 163
13.2 Neo4j集群的概念 164
13.2.1 核心服務器 164
13.2.2 只讀副本服務器 164
13.2.3 高吞吐量 164
13.2.4 數據冗餘 165
13.2.5 高可用 165
13.2.6 Bolt協議 165
13.3 構建Neo4j集群 165
13.3.1 核心服務器 165
13.3.2 只讀副本服務器 167
13.3.3 bolt+routing協議 168
13.4 在Neo4j集群中實現災難恢復 169
13.5 小結 169

第14章 案例—推薦系統 170
14.1 推薦系統剖析 170
14.2 推薦系統的圖模型應用 171
14.3 推薦系統查詢示例 173
14.3.1 基於商品購買的推薦 173
14.3.2 基於品牌忠誠度的推薦 175
14.3.3 基於社交關係的推薦 176
14.3.4 組合推薦 176
14.4 推薦系統的業務變化 177
14.5 欺詐檢測系統 178
14.6 訪問控制系統 179
14.7 社交網絡系統 179
14.8 問答 180
14.9 小結 181

第15章 案例—影響分析與模擬 182
15.1 影響分析系統解析 182
15.1.1 影響分析在業務流程管理中的應用 183
15.1.2 業務圖建模 183
15.2 成本計算環境中的影響模擬 187
15.2.1 產品層次結構的圖建模 187
15.2.2 產品層次結構圖的應用 188
15.3 問答 192
15.4 小結 193
附錄 應用技巧介紹 194