|
|
|
|
|
|
|
|
ISBN |
9787115571373 |
定价 |
RMB89.80 |
售价 |
RM98.80 |
优惠价 |
RM69.16 * (-30%)
|
作者 |
戴夫·貝克伯杰,喬希·佩里曼
|
译者 |
葉偉民,劉華 |
出版社 |
人民郵電出版社
|
出版日期 |
2021-10-01 |
装订 |
平裝. 單色印刷. 261 页. 26. |
库存量 |
海外库存 下单时可选择“空运”或“海运”(空运和海运需独立下单)。空运费每本书/CD是RM24.00。 空运需时8-11个工作天,海运需时约30个工作天。 (以上预计时间不包括出版社调货的时间以及尚未出版的预购商品) |
|
有现货时通知我 |
|
放入下次购买清单 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
現實世界中的資料往往並不是能以行列形式呈現的表格型資料,而是富含關係資訊的複雜網路。對於挖掘這類資料的潛在價值,圖資料庫具有明顯的優勢。
本書介紹如何針對真實場景設計和實現圖資料庫。你將學習圖論的基礎知識,並嘗試構建基於圖資料庫的社交網路應用程式和推薦引擎等。你將掌握圖資料庫開發的所有重要概念,包括遞迴遍歷、圖資料建模、查詢調優、性能調優、圖分析,以及如何避免超級節點等反模式。學完本書後,你將有能力構建基於圖資料庫的應用程式,從而顯著地提升資料價值。
本書示例採用開源圖計算框架TinkerPop及其查詢語言Gremlin,但所述概念均適用於Neo4j等基於Cypher的圖資料庫。
|
|
|
|
|
|
|
|
|
|
|
|
購買中國簡體書籍請注意:
1. 因裝幀品質及貨運條件未臻完善,中國簡體書可能有出現磨痕、凹痕、折痕等問題,故簡體字館除封面破損、內頁脫落、缺頁等較嚴重的狀態外,其餘所有商品將正常出貨。
|
|
|
|
|
|
|
|
|
目錄
第一部分 圖數據庫入門
第1章 初識圖 2
1.1 什麼是圖 3
1.1.1 什麼是圖數據庫 4
1.1.2 與其他類型數據庫的比較 5
1.1.3 為什麼不能使用SQL 6
1.2 我的問題適合用圖數據庫嗎 13
1.2.1 探究疑問 14
1.2.2 如果仍無法確定 16
1.3 小結 19
第2章 圖數據建模 20
2.1 數據建模過程 20
2.1.1 數據建模術語 21
2.1.2 數據建模的四個步驟 22
2.2 理解問題 23
2.2.1 關於領域和範圍的疑問 24
2.2.2 關於業務實體的疑問 25
2.2.3 關於功能的疑問 26
2.3 構建概念數據模型 27
2.3.1 對實體進行識別和歸類 27
2.3.2 識別實體間的關係 28
2.4 構建邏輯數據模型 30
2.4.1 將實體轉換為頂點 32
2.4.2 將關係轉換為邊 34
2.4.3 尋找並分配屬性 42
2.5 檢查模型 43
2.6 小結 44
第3章 基本遍歷和遞迴遍歷 45
3.1 建立開發環境 45
3.1.1 啟動Gremlin Server 46
3.1.2 啟動Gremlin Console,連接Gremlin Server,載入數據 46
3.2 遍歷圖 47
3.2.1 使用邏輯數據模型(模式)來規劃遍歷 48
3.2.2 通過圖數據來計畫操作 49
3.2.3 遍歷圖的基本概念 51
3.2.4 使用Gremlin編寫遍歷 52
3.2.5 使用值操作檢索屬性 56
3.3 遞迴遍歷 57
3.3.1 使用遞迴邏輯 57
3.3.2 使用Gremlin編寫遞迴遍歷 60
3.4 小結 66
第4章 尋路遍歷與圖變異 67
4.1 圖變異 68
4.1.1 添加頂點和邊 69
4.1.2 從圖中刪除數據 72
4.1.3 修改圖 73
4.1.4 擴展圖 79
4.2 路徑 82
4.2.1 圖中的環 83
4.2.2 查找簡單路徑 85
4.3 遍歷和篩選邊 86
4.3.1 遍歷邊的E操作和V操作 86
4.3.2 通過屬性篩選邊 90
4.3.3 在路徑結果中包括邊 91
4.3.4 實現邊的計數和反規範化 92
4.4 小結 93
第5章 格式化結果 94
5.1 回顧值操作 94
5.2 構建結果 99
5.2.1 在Gremlin中應用別名 101
5.2.2 投射結果而不應用別名 106
5.3 對結果進行組織 110
5.3.1 對圖遍歷返回的結果排序 110
5.3.2 對圖遍歷返回的結果分組 112
5.3.3 限制結果記錄的數量 114
5.4 將操作組合成複雜的遍歷 115
5.5 小結 119
第6章 開發應用程式 120
6.1 開始專案 121
6.1.1 選擇工具 121
6.1.2 設置專案 122
6.1.3 選擇驅動程式 122
6.1.4 準備數據庫伺服器實例 123
6.2 連接數據庫 124
6.2.1 集群配置 124
6.2.2 建立GraphTraversal Source 125
6.3 獲取數據 127
6.3.1 獲取一個頂點 128
6.3.2 使用Gremlin語言變體 129
6.3.3 增加終點操作 130
6.3.4 在應用程式中創建Java方法 132
6.4.1 添加頂點 132
6.4.2 添加邊 133
6.4.3 修改屬性 135
6.4.4 刪除元素 136
6.5 轉換清單和路徑遍歷 138
6.5.1 獲取結果的清單 138
6.5.2 實現遞迴遍歷 139
6.5.3 實現路徑 140
6.6 小結 141
第二部分 使用圖數據庫構建應用程式
第7章 高級數據建模技術 144
7.1 回顧當前數據模型 145
7.2 擴展邏輯數據模型 146
7.3 將實體轉換為頂點 148
7.3.1 使用通用標籤 149
7.3.2 反規範化圖數據 154
7.3.3 將關係轉換為邊 158
7.3.4 查找和分配屬性 160
7.3.5 將屬性移到邊 160
7.3.6 檢查模型 163
7.4 針對個性化用例擴展數據模型 163
7.5 比較結果 165
7.6 小結 166
第8章 使用熟路構建遍歷 167
8.1 開發遍歷的準備工作 168
8.1.1 識別所需的元素 168
8.1.2 選擇起點 171
8.1.3 準備測試數據 172
8.2 編寫第 一個遍歷 173
8.2.1 設計遍歷 174
8.2.2 開發遍歷代碼 176
8.3 分頁和圖數據庫 180
8.3.1 調用range()前為輸入排序的重要性 181
8.3.2 排序是昂貴的操作 182
8.4 推薦評分最高的餐廳 184
8.4.1 設計遍歷 184
8.4.2 開發遍歷代碼 186
8.5 編寫最後的推薦引擎遍歷 194
8.5.1 設計遍歷 196
8.5.2 添加遍歷到應用程式中 198
8.6 小結 199
第9章 子圖 200
9.1 使用子圖 201
9.1.1 提取子圖 201
9.1.2 遍歷子圖 206
9.2 針對個性化用例構建子圖 208
9.3 構建遍歷 213
9.3.1 反轉遍歷方向 214
9.3.2 計算子圖各自的結果 215
9.4 連接伺服器的子圖 217
9.4.1 使用TinkerPop的Client連接集群 217
9.4.2 將遍歷添加到應用程式中 219
9.5 小結 219
第三部分 進階
第10章 性能、陷阱和反模式 222
10.1 執行緩慢的遍歷 222
10.1.1 解釋遍歷 223
10.1.2 分析遍歷 224
10.1.3 索引 226
10.2 處理超級節點 227
10.2.1 和實例數據有關 227
10.2.2 和數據庫有關 228
10.2.3 什麼導致了超級節點 228
10.2.4 監控超級節點 229
10.2.5 有超級節點怎麼辦 230
10.3 應用程式的反模式 234
10.3.1 對非圖用例使用圖 234
10.3.2 髒數據 235
10.3.3 缺乏充分的測試 236
10.4 遍歷反模式 237
10.4.1 不使用參數化的遍歷 237
10.4.2 使用沒有標籤的篩選操作 241
第11章 下一段旅程:圖分析、機器學習和資源 242
11.1 圖分析 242
11.1.1 尋路 243
11.1.2 中心性 245
11.1.3 群體檢測 247
11.1.4 圖和機器學習 250
11.1.5 其他資源 251
11.2 寫在最後 253
11.3 小結 253
附錄Apache TinkerPop概述和安裝 254
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
戴夫·貝克伯杰(Dave Bechberger)
AWS圖架構師,在分散式資料架構方面擁有豐富經驗,被譽為圖資料庫領域的“意見領袖”,受邀在各種國際會議上發表了大量與圖技術相關的演講。
喬希·佩里曼(Josh Perryman)
資料架構師,擁有20餘年的複雜系統構建和維護經驗,近年來專注於圖資料庫在分散式環境中的應用。工作之餘,他還設計了惠及全球學生的Gremlin培訓課程。
|
|
|
|
|
|
|
|
|
|
|
|