大数据存储——从SQL到NoSQLpdf下载pdf下载

大数据存储——从SQL到NoSQL百度网盘pdf下载

作者:
简介:本篇主要提供大数据存储——从SQL到NoSQLpdf下载
出版社:清华大学出版社
出版时间:2021-08
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

本书系统、全面地介绍了大数据存储与管理的基本知识和技能,介绍了大数据存储基础、数据管理技术发展、RDBMS与SQL、NoSQL数据模型、键值数据库、文档数据库、列族数据库、图数据库、数据库技术的发展(NewSQL),重点安排了熟悉MongoDB文档数据库和熟悉HBase列族数据库两个课程实践。本书理论联系实际,把大数据的相关概念、基础知识和技术技巧融入在实践当中,使学生保持浓厚的学习热情,加深对大数据存储与管理技术的兴趣、认识、理解和掌握。全书具有较强的系统性、可读性和实用性。

本书是为高等院校相关专业“大数据存储”“大数据存储与管理”“大数据管理”等课程全新设计编写的具有丰富实践特色的主教材,可供有一定实践经验的软件开发人员、管理人员参考,或作为继续教育的教材。

内容简介

现在是大数据与人工智能的时代。面对信息的激流和多元化数据的涌现,大数据已经为个人生活、企业经营甚至国家与社会的发展都带来了机遇和挑战,成为IT产业中具潜力的领域。
大数据存储是一门理论性和实践性都很强的课程。该书针对大数据、人工智能、信息管理、经济管理和其他相关专业学生的发展需求,系统、全面地介绍了大数据存储与管理的基本知识和技能,介绍了大数据存储基础、数据管理技术的发展、RDBMS与soL、NosoL数据模型、键值数据库、文档数据库、列族数据库、图数据库、数据库技术的发展(NewsoL),重点安排了熟悉MongoDB文档数据库和HBase列族数据库两个课程实践。全书具有较强的系统性、可读性和实用性。
《大数据存储——从SQL到NoSQL(大数据系列丛书)》是为高等院校相关专业“大数据存储”“大数据存储与管理”“大数据管理”等课程全新设计编写的具有丰富实践特色的主教材,也可供有一定实践经验的软件开发人员、管理人员参考,或作为继续教育的教材。

作者简介

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

前言/序言

现在是大数据和人工智能蓬勃发展的时代。大数据的力量正在改变我们的生活方式和工作方式,甚至是寻找爱情的方式。因此,我们有必要真正理解大数据这个极其重要的议题。对于身处大数据时代的企业而言,成功的关键还在于找出大数据隐含的背后真知。以前,人们总说信息就是力量,如今,对数据进行分析、利用和挖掘才是力量之所在。

在大数据生态系统中,基础设施主要负责数据存储以及处理公司掌握的海量数据,应用程序则是人类和计算机系统从数据中获知关键信息的工具。

在传统的数据存储、处理平台中,需要用ELT工具将数据从CRM、ERP等系统中提取出来,并转换为容易使用的形式,再导入像数据仓库和RDBMS等专用于分析的数据库中。当管理的数据超过一定规模时,用现有的数据处理平台已经很难处理具备3V特征的大数据,即便能够处理,在性能方面也很难有良好的表现。对这些时时刻刻都在产生的非结构化数据进行实时分析,并从中获取有意义的观点,是十分困难的。为了应对大数据时代,需要从根本上考虑用于数据存储和处理的平台。

关系数据库和NoSQL数据库是数据库演化过程中的两个里程碑。NoSQL数据库就是为了解决关系数据库的局限而创设的。实际工作中产生的数据管理问题,促使专业人士和软件设计者开始研发NoSQL数据库。不同的应用程序需要使用不同类型的数据库,而这恰恰是数据管理系统在过去几十年间不断发展的动力所在。

对于在校大学生来说,大数据及其分析、处理和存储的理念、技术与应用是理论性和实践性都很强的必修课程。在长期的教学实践中,我们体会到,坚持“因材施教”的重要原则,把实践环节与理论教学相融合,抓实践教学,促进理论知识的学习,是有效地改善教学效果和提高教学水平的重要方法之一。本书的主要特色是理论联系实际,结合一系列了解和熟悉大数据存储的理念、技术与应用的学习和实践活动,把相关概念、基础知识和技术技巧融入实践,使学生保持浓厚的学习热情,加深对大数据存储技术的认识、理解和掌握。

本书是为高等院校相关专业,尤其是大数据、人工智能、信息管理、经济管理类专业开设“大数据存储”相关课程而全新设计编写的具有丰富实践特色的主教材,也可供有一定实践经验的IT应用人员、管理人员参考,或作为继续教育的教材。

本书系统、全面地介绍了大数据存储与管理的基本知识和技能,介绍了大数据存储基础、数据管理技术发展、RDBMS与SQL、NoSQL数据模型、键值数据库、文档数据库、列族数据库、图数据库、数据库技术的发展(NewSQL),重点安排了熟悉MongoDB文档数据库和HBase列族数据库两个课程实践。全书具有较强的系统性、可读性和实用性。

结合课堂教学方法改革的要求,全书设计了课程教学过程,为每章都有针对性地安排了课程知识内容和课后作业与实验等环节,要求和指导学生在课前、课后阅读课文、网络搜索浏览的基础上延伸阅读,深入理解课程知识内涵。

本课程的教学安排见“课程教学进度表”。实际执行时,应按照教学大纲编排教学进度,按照校历考虑教学时间,确定教学进度。

本课程的教学评测可以从以下几个方面入手,即:

(1) 每章的课后作业(13个)。

(2) 每章的实验与思考(15次),含MongoDB文档数据库和HBase列族数据库课程实践。

(3) 课程学习与实验总结(附录B)。

(4) 结合平时考勤。

(5) 任课老师认为必要的其他考核方法。

与本书配套的教学课件等文档,读者可从清华大学出版社官方网站(www.tup.com.cn)下载。

本书是浙大城市学院2019年度新工科教材建设项目“大数据存储”的建设成果,得到“十三五”(第二批)浙江省普通高校新形态教材建设“高职大数据技术与应用(系列教材)”、浙江安防职业技术学院2018年度教材建设“高职大数据系列教材”、温州市2018年数字经济特色专业建设“大数据技术与应用”、浙江安防职业技术学院2018年度特色专业建设“大数据技术与应用专业”等项目的支持。

本书的编写得到了浙大城市学院、浙江安防职业技术学院、杭州汇萃智能科技有限公司、浙江商业职业技术学院等多所院校师生的支持,张丽娜、王硕苹、乔凤凤、蔡锦锦、王文等参与了本书的部分编写工作,在此一并表示感谢!


周苏2021年春于西子湖畔