大數據存儲 — 從 SQL 到 NoSQL

柳俊、周蘇

  • 出版商: 清華大學
  • 出版日期: 2021-08-01
  • 售價: $359
  • 貴賓價: 9.5$341
  • 語言: 簡體中文
  • 頁數: 242
  • 裝訂: 平裝
  • ISBN: 7302585288
  • ISBN-13: 9787302585282
  • 相關分類: NoSQLSQL大數據 Big-data
  • 立即出貨

  • 大數據存儲 — 從 SQL 到 NoSQL-preview-1
  • 大數據存儲 — 從 SQL 到 NoSQL-preview-2
  • 大數據存儲 — 從 SQL 到 NoSQL-preview-3
大數據存儲 — 從 SQL 到 NoSQL-preview-1

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

商品描述

本書針對大數據、人工智能、信息管理、經濟管理和其他相關專業學生的發展需求,系統、全面地介紹了大數據存儲與管理的基本知識和技能,介紹了大數據存儲基礎、數據管理技術的發展、RDBMS與SQL、NoSQL數據模型、鍵值數據庫、文檔數據庫、列族數據庫、圖數據庫、數據庫技術的發展(NewSQL),重點安排了熟悉MongoDB文檔數據庫和HBase列族數據庫兩個課程實踐。全書具有較強的系統性、可讀性和實用性。 本書是為高等院校相關專業“大數據存儲”“大數據存儲與管理”“大數據管理”等課程全新設計編寫的具有豐富實踐特色的主教材,也可供有一定實踐經驗的軟件開發人員、管理人員參考,或作為繼續教育的教材。

作者簡介

1988年在天津科學技術出版社出版第一本教材《FoxBASE+及其程序設計技巧》並獲1991年全國優秀科技暢銷書。 1992年所著教材《軟件工程及其應用》(天津科技出版社) 獲北方十省市科技圖書二等獎。至2002年,分別在天津科技出版社、浙江科技出版社、科學出版社等累計出版計算機學術著作、教科書20餘本累計千萬字。
自1999年調入浙江大學城市學院任教以來,潛心鑽研應用型、教學型院校新的教育教學規律,探索新的教學內容和適用的教學方法。自2002年起至今,先後在科學出版社、中國鐵道出版社、清華大學出版社等出版

目錄大綱

目錄
第1章大數據存儲基礎1
1.1什麽是大數據1
1.1.1信息爆炸的社會1
1.1.2定義大數據3
1.1.3大數據的3V特徵4
1.1.4廣義的大數據6
1.2開源技術的商業支援7
1.3分佈式系統7
1.3.1分佈式系統與網絡的異同7
1.3.2分佈式系統的類型8
1.4Hadoop分佈式處理技術9
1.4.1Hadoop的發展9
1.4.2Hadoop的優勢10
1.4.3Hadoop的發行版本10
1.5大數據的數據處理基礎11
1.5.1Hadoop與NoSQL11
1.5.2NoSQL的主要特徵11
1.5.3NewSQL作為替代方案12
1.6大數據存儲的技術路線13
1.6.1存儲方式13
1.6.2MPP架構的數據庫集群14
1.6.3基於Hadoop的技術擴展14
1.6.4大數據一體機15
1.6.5雲數據庫15
【作業】16
【實驗與思考】熟悉大數據存儲基礎18

第2章數據管理技術的發展20
2.1早期的數據管理系統20
2.1.1文件數據管理系統20
2.1.2層次數據管理系統22
2.1.3網狀數據管理系統23
2.2引發變革的關系數據庫24
2.2.1RDBMS的設計25
2.2.2使用RDBMS的應用架構25
2.2.3關系數據庫的局限26
2.3Web程序的4個特徵26
2.3.1可伸縮性27
2.3.2成本開銷27
2.3.3靈活性27
2.3.4可用性28
2.4催生NoSQL的動因分析28
【作業】29
【實驗與思考】熟悉數據管理技術: SQL還是NoSQL30

第3章RDBMS與SQL32
3.1關系數據庫32
3.2RDBMS的結構33
3.2.1存儲介質管理程序34
3.2.2內存管理程序34
3.2.3數據字典34
3.3結構化查詢語言SQL36
3.4SQL語句的結構37
3.4.1數據定義37
3.4.2數據操縱37
3.4.3數據控制38
3.4.4數據查詢38
3.5關系數據庫的ACID特徵39
3.6關系數據庫的三大範式39
3.6.1數據庫範式分類39
3.6.2第一範式(1NF)40
3.6.3第二範式(2NF)40
3.6.4第三範式(3NF)42
3.6.5範式的表設計42
【作業】42
【實驗與思考】熟悉RDBMS與SQL44

第4章NoSQL數據模型46
4.1分佈式數據管理46
4.1.1分佈式數據庫的任務46
4.1.2在響應、一致與持久之間求平衡48
4.1.3熟悉CAP定理49
4.2NoSQL數據庫性質50
4.2.1數據庫性質BASE50
4.2.2體現最終一致性50
4.3鍵值數據庫類型51
4.3.1鍵51
4.3.2值52
4.4文檔數據庫類型53
4.4.1文檔53
4.4.2查詢文檔53
4.4.3文檔與關系數據庫的區別54
4.5列族數據庫類型55
4.5.1列與列族55
4.5.2列族與關系數據庫的區別55
4.6圖數據庫類型56
4.6.1節點與關系56
4.6.2圖與關系數據庫的區別56
4.7選擇NoSQL數據庫57
4.7.1選用鍵值數據庫58
4.7.2選用文檔數據庫58
4.7.3選用列族數據庫59
4.7.4選用圖數據庫60
4.7.5SQL和NoSQL的結合60
【作業】61
【實驗與思考】熟悉NoSQL數據模型63

第5章鍵值數據庫基礎65
5.1從數組到鍵值數據庫65
5.1.1數組65
5.1.2關聯數組66
5.1.3緩存66
5.1.4鍵值數據庫67
5.2鍵值數據庫的重要特性68
5.2.1簡潔: 不需要復雜模型68
5.2.2高速: 越快越好68
5.2.3縮放: 應對訪問量變化69
5.3鍵: 有意義的標識符69
5.3.1構造鍵名69
5.3.2通過鍵定位相關的值70
5.4值: 存放任意數據71
5.4.1值無須明確類型71
5.4.2對值搜索時的限制72
5.5鍵值數據庫的數據建模72
5.5.1數據模型和數據結構72
5.5.2命名空間73
5.5.3分區與分區鍵73
5.5.4無模式的模型73
5.6鍵值數據庫的架構74
5.6.1集群74
5.6.2環75
5.6.3復制75
5.7Redis鍵值數據庫75
5.7.1軟件定義76
5.7.2數據模型76
5.7.3存儲77
【作業】77
【實驗與思考】安裝Redis鍵值數據庫79

第6章鍵值數據庫設計81
6.1鍵值數據庫實現的概念81
6.1.1哈希函數81
6.1.2碰撞82
6.1.3壓縮82
6.2鍵的設計與分區83
6.2.1設計好的鍵名83
6.2.2處理特定範圍內的值83
6.2.3設計鍵名時考慮層的限制84
6.2.4根據鍵名來分區84
6.3設計結構化的值85
6.3.1結構化數據能降低延遲85
6.3.2龐大的值會降低讀寫性能85
6.3.3TTL鍵86
6.4鍵值數據庫的局限87
6.4.1只能通過鍵查詢數據87
6.4.2不支持指定範圍查詢87
6.4.3不支持SQL查詢語言87
【作業】88
【實驗與思考】用鍵值數據庫管理移動應用配置89

第7章文檔數據庫基礎93
7.1關於文檔93
7.1.1文檔及其格式化命令93
7.1.2按集合管理多份文檔96
7.1.3集合的設計技巧96
7.2文檔數據庫數據結構97
7.2.1文檔結構97
7.2.2嵌入式文檔99
7.2.3無模式數據庫100
7.2.4多態模式100
7.2.5無須定義顯式模式100
7.3文檔數據庫基本操作101
7.3.1向集合中插入文檔101
7.3.2從集合中刪除文檔101
7.3.3更新集合中的文檔102
7.3.4從集合中獲取文檔102
7.4文檔數據庫分區架構103
7.4.1垂直分區103
7.4.2水平分區或分片103
7.4.3用分片鍵分隔數據104
7.4.4用分區算法分佈數據104
7.5數據建模與查詢處理105
7.5.1規範化105
7.5.2去規範化105
7.5.3查詢處理器106
【作業】106
【實驗與思考】熟悉MongoDB文檔數據庫108

第8章文檔數據庫設計110
8.1文檔數據庫設計思考110
8.2規範化還是去規範化110
8.2.1一對多與多對多關系110
8.2.2多張表格執行join操作111
8.2.3文檔數據庫的建模111
8.3應對可變文檔112
8.4編制數量適中的索引112
8.4.1讀操作較多的應用113
8.4.2寫操作較多的應用113
8.5為文檔數據庫常見關系建模114
8.5.1一對多關系114
8.5.2多對多關系114
8.5.3層級關系建模115
【作業】115
【實驗與思考】客戶的貨物清單117

第9章課程實踐: MongoDB文檔數據庫121
9.1初識MongoDB121
9.1.1MongoDB特點121
9.1.2MongoDB應用場景122
9.2MongoDB結構123
9.2.1數據庫123
9.2.2普通集合124
9.2.3固定集合125
9.2.4文檔125
9.2.5數據類型125
9.2.6索引126
9.3分佈式運算模型MapReduce126
9.4存儲原理與大文件存儲規範127
9.4.1存取工作流程127
9.4.2大文件存儲規範GridFS128
9.5復制與分片129
9.5.1復制集129
9.5.2主從復制和副本集129
9.5.3分片130
9.6MongoDB版本與平臺131
9.6.1版本選擇131
9.6.2平臺選擇131
【實驗與思考】MongoDB文檔數據庫132

第10章列族數據庫基礎134
10.1列族數據庫谷歌BigTable134
10.1.1動態控制列族的列134
10.1.2按行ID、列名及時間戳確定數據值135
10.1.3控制數據存儲位置135
10.1.4行內讀取和寫入都是原子操作136
10.1.5按順序排列數據行136
10.2列族鍵值及文檔數據庫異同136
10.2.1與鍵值數據庫異同137
10.2.2與文檔數據庫異同137
10.2.3與關系數據庫對比138
10.3列族數據庫使用架構139
10.3.1多種節點組成HBase架構139
10.3.2對等節點組成Cassandra架構140
10.3.3按Gossip協議傳播服務器狀態140
10.3.4分佈式數據庫的反熵操作141
10.3.5用提示移交保留與寫入請求141
10.4列族數據庫適用場合142
10.5列族數據庫基本組件143
10.5.1鍵空間143
10.5.2行鍵143
10.5.3列144
10.5.4列族144
【作業】145
【實驗與思考】熟悉列族數據庫147

第11章列族數據庫設計150
11.1列族數據庫設計概述150
11.2列族數據庫的結構151
11.2.1集群與分區151
11.2.2其他底層組件152
11.3處理流程及協議154
11.3.1復制154
11.3.2提示移交154
11.4設計數據表格155
11.4.1用去規範化代替連接155
11.4.2同時在列名和列值中存儲數據156
11.4.3不要將大量操作分配給少數服務器156
11.4.4維護適當數量的列值版本157
11.5編制索引157
11.5.1自動管理輔助索引157
11.5.2用表格創建輔助索引158
11.6應對大數據的工具159
11.6.1萃取、轉換、加載數據159
11.6.2分析大數據160
11.6.3監控大數據的工具161
【作業】162
【實驗與思考】客戶數據分析163

第12章課程實踐: HBase列族數據庫166
12.1HDFS分佈式存儲166
12.2初識HBase數據庫167
12.2.1面向行存儲的數據庫167
12.2.2面向列存儲的數據庫168
12.2.3行與列存儲方式的對比168
12.3HBase數據庫的使用場景169
12.4HBase數據庫模型和系統架構170
12.4.1HBase數據庫的相關概念170
12.4.2HBase數據庫的邏輯模型172
12.4.3HBase數據庫的物理模型173
12.4.4HBase數據庫的特點174
12.4.5HBase數據庫的系統架構175
12.5HBase Shell176
【實驗與思考】HBase列族數據庫環境搭建178

第13章圖數據庫基礎185
13.1圖及其元素185
13.1.1頂點185
13.1.2邊185
13.1.3路徑186
13.1.4自環187
13.2關系建模與圖數據庫187
13.2.1什麽是圖數據庫187
13.2.2對地理位置進行建模188
13.2.3對傳染病進行建模188
13.2.4對抽象和具體的實體建模189
13.2.5對社交媒體建模190
13.3圖數據庫的優勢190
13.3.1不執行連接操作的快速查詢190
13.3.2為實體之間的多種關系建模191
13.4圖的操作192
13.4.1圖的並集192
13.4.2圖的交集192
13.4.3圖的遍歷193
13.5圖和節點的屬性193
13.5.1同構性193
13.5.2階與尺寸194
13.5.3度數194
13.5.4接近中心性194
13.5.5中介性194
13.6圖的類型195
13.6.1無向圖和有向圖195
13.6.2網絡流195
13.6.3二分圖196
13.6.4多重圖196
13.6.5加權圖與Dijkstra算法196
13.7Neo4j圖數據庫197
13.7.1瞭解Cypher圖查詢語言197
13.7.2Neo4j的兩種模式198
【作業】199
【實驗與思考】安裝和瞭解Neo4j圖數據庫201

第14章圖數據庫設計207
14.1設計圖模型207
14.1.1描述社交網絡的圖數據庫208
14.1.2用查詢請求引領模型設計209
14.2Cypher: 對圖的聲明式查詢210
14.3Gremlin: 遍歷圖模型查詢212
14.3.1基本的圖模型遍歷操作212
14.3.2用優先搜索遍歷圖模型213
14.4圖數據庫設計技巧214
14.4.1用索引縮短獲取數據的時間214
14.4.2使用類型適當的邊215
14.4.3遍歷圖模型時註意循環路徑215
14.4.4圖數據庫的擴展215
【作業】216
【實驗與思考】優化運輸路線217

第15章數據庫技術的發展220
15.1數據庫行業全景圖220
15.1.1不同階段數據庫發展特點220
15.1.2SQL的問題221
15.1.3NoSQL的優勢與不足222
15.2NewSQL數據庫應運而生223
15.2.1NewSQL數據庫分類223
15.2.2NewSQL特性224
15.2.3NewSQL架構原理224
15.3典型的NewSQL代表——NuoDB224
15.4其他數據庫225
15.4.1原生數據庫225
15.4.2時序數據庫225
15.4.3時空數據庫227
【作業】228
【實驗與思考】熟悉NewSQL數據庫229

附錄231
附錄A部分作業參考答案231
附錄B課程學習與實驗總結238
參考文獻243