NoSQL数据库以其独特的数据模型和扩展方式,为大数据和人工智能等领域提供了强有力的支持。本书基于Windows 10及以上操作系统编写,介绍NoSQL数据库的基础知识及其在开发中的应用。全书共14章,第1章介绍NoSQL数据库的基础知识;第2章介绍键值对存储数据库Redis;第3章介绍列式存储数据库HBase;第4章介绍图形存储数据库Neo4j;第5章介绍文档存储数据库MongoDB;第6章介绍MongoDB文档的增删改查;第7章~第10章分别介绍MongoDB数据库中索引、排序与分页、权限机制、MapReduce与GridFS的相关知识;第11章介绍MongoDB的客户端软件;第12章介绍Python与MongoDB的相关知识;第13章介绍Django与MongoDB的相关知识;第14章通过综合案例介绍MongoDB在数据分析中的使用。
张倩,济南职业学院计算机分院人工智能教研室副主任,主要从事机器学习、深度神经网络、数据库技术等课程的授课工作。曾获山东省教学能力比赛二等奖,主编、副主编《网络管理标准教程》《Python Web项目开发教程(Django版)》《PHP程序设计案例教程》等教材,承担多项课题研究工作。
第1章 认识NoSQL数据库 1
1.1 人工智能时代下的数据 1
1.2 NoSQL数据库 2
1.2.1 NoSQL数据库概述 2
1.2.2 NoSQL数据库的起源 2
1.3 关系数据库与非关系数据库 2
1.3.1 关系数据库 2
1.3.2 非关系数据库 3
1.3.3 关系数据库与非关系数据库的比较 4
1.4 NoSQL基础理论 5
1.4.1 CAP理论 5
1.4.2 BASE理论 5
1.4.3 最终一致性 6
1.5 NoSQL数据库的分类 6
1.5.1 键值对存储数据库 6
1.5.2 列式存储数据库 7
1.5.3 图形存储数据库 7
1.5.4 文档存储数据库 8
1.5.5 不同NoSQL数据库之间的对比 8
1.6 项目实践:探索NoSQL数据库 9
本章小结 10
课后习题 10
项目实训 10
第2章 键值对存储数据库Redis 11
2.1 认识Redis 11
2.1.1 Redis概述 11
2.1.2 Redis的特点和用途 12
2.1.3 安装Redis 12
2.2 Python操作Redis 14
2.2.1 环境准备 14
2.2.2 导入Redis模块 15
2.2.3 创建Redis客户端实例 15
2.3 数据操作 15
2.3.1 键值对操作 15
2.3.2 哈希表操作 17
2.3.3 列表操作 19
2.3.4 集合操作 20
2.3.5 有序集合操作 21
2.3.6 发布与订阅操作 22
2.4 高级功能 23
2.4.1 事务操作 23
2.4.2 过期时间和持久化 24
2.4.3 分布式锁 24
2.5 项目实践:通过Python操作Redis实现分布式锁 25
本章小结 26
课后习题 26
项目实训 27
第3章 列式存储数据库HBase 28
3.1 认识HBase 28
3.1.1 HBase概述 28
3.1.2 HBase的应用场景 29
3.2 HBase的数据模型 30
3.2.1 HBase的数据存储结构 30
3.2.2 HBase的数据存储概念 31
3.2.3 HBase的基本架构 32
3.3 HBase安装部署 33
3.3.1 环境准备 33
3.3.2 安装HBase 38
3.3.3 启动HBase 39
3.4 HBase的Shell操作 41
3.4.1 基本操作 41
3.4.2 表的相关操作 41
3.5 Python操作HBase 44
3.5.1 环境准备 44
3.5.2 操作HBase 45
3.6 项目实践:设计水费缴费明细表 47
本章小结 49
课后习题 50
项目实训 50
第4章 图形存储数据库Neo4j 51
4.1 认识Neo4j 51
4.1.1 Neo4j概述 51
4.1.2 Neo4j的数据模型 53
4.2 Neo4j安装部署 54
4.2.1 环境准备 54
4.2.2 安装Neo4j 55
4.3 Cypher操作 57
4.3.1 创建数据 57
4.3.2 查询数据 59
4.3.3 创建关系 60
4.3.4 where条件 60
4.3.5 删除关系与节点 61
4.3.6 删除属性 62
4.4 Python操作Neo4j 62
4.4.1 环境准备 62
4.4.2 连接Neo4j数据库 63
4.4.3 节点操作 63
4.5 项目实践:使用Python创建课程知识图 66
本章小结 67
课后习题 67
项目实训 67
第5章 文档存储数据库MongoDB 69
5.1 MongoDB概述 69
5.2 MongoDB的应用 70
5.2.1 应用场景和特点 70
5.2.2 什么时候选择MongoDB 71
5.3 MongoDB的数据库组织结构 71
5.3.1 MongoDB的三个概念 72
5.3.2 MongoDB的组织结构 72
5.3.3 MongoDB的数据类型 72
5.4 在Windows系统下安装和启动 73
5.4.1 环境准备 73
5.4.2 安装软件 74
5.5 在Linux系统下安装和启动 76
5.5.1 创建列表文件 76
5.5.2 更新安装包列表 76
5.5.3 安装MongoDB 77
5.5.4 启动MongoDB 77
5.6 MongoDB的基本命令 78
5.6.1 查看数据库 78
5.6.2 使用数据库 78
5.6.3 删除数据库 79
5.6.4 集合 80
5.6.5 集合的相关操作 81
本章小结 82
课后习题 82
项目实训 83
第6章 MongoDB文档的增删改查 84
6.1 MongoDB文档 84
6.1.1 文档的键和值 84
6.1.2 文档的ID 85
6.2 增加数据 85
6.2.1 增加一条数据 85
6.2.2 自定义ID值 86
6.2.3 增加多条数据 87
6.3 查询数据 88
6.3.1 查询 88
6.3.2 查询中的算术运算符 89
6.3.3 查询中的逻辑运算符 91
6.3.4 文档中的数组 94
6.3.5 其他查询 97
6.3.6 常用函数 100
6.4 修改数据 101
6.4.1 常用修改器 101
6.4.2 数组修改器 106
6.5 删除数据 110
6.6 时间类型 111
6.6.1 new Date()函数 111
6.6.2 ISODate()函数 111
6.6.3 Date()函数 113
6.6.4 valueOf()方法 114
6.7 Null类型 114
6.8 项目实践:增删改查综合练习 115
本章小结 117
课后习题 117
项目实训 117
第7章 索引 119
7.1 数据库中的索引 119
7.2 索引的优缺点 120
7.3 索引的相关操作 120
7.3.1 创建索引 121
7.3.2 删除索引 121
7.4 其他索引 122
7.4.1 复合索引 122
7.4.2 唯一索引 123
7.4.3 稀疏索引 123
7.4.4 分析索引 124
7.5 项目实践:使用bookshop数据练习索引操作 125
本章小结 132
课后习题 132
项目实训 132
第8章 排序与分页 134
8.1 排序 134
8.1.1 sort()函数 134
8.1.2 复合排序 135
8.2 分页 136
8.2.1 limit()函数与skip()函数 136
8.2.2 分页实践 138
8.3 聚合查询 139
8.3.1 常用管道 139
8.3.2 常用表达式 139
8.3.3 聚合管道的使用 139
8.4 项目实践:使用聚合操作处理数据 140
8.4.1 $match过滤数据 141
8.4.2 $project字段投影 141
8.4.3 $count计数 143
8.4.4 $limit与$skip 143
8.4.5 $sort聚合排序 146
8.4.6 $group分组查询 147
本章小结 149
课后习题 150
项目实训 150
第9章 权限机制 151
9.1 权限分配 151
9.2 安装验证服务 152
9.3 用户登录验证 154
9.4 备份还原 160
9.4.1 下载备份还原工具 160
9.4.2 备份数据mongodump 161
9.4.3 还原数据mongorestore 161
9.5 项目实践:备份还原数据库 162
本章小结 164
课后习题 164
项目实训 165
第10章 MapReduce与GridFS 166
10.1 认识MapReduce 166
10.1.1 MapReduce概述 166
10.1.2 MapReduce的格式定义 167
10.2 文件存储 170
10.2.1 存储方式 170
10.2.2 GridFS 170
10.3 项目实践:上传与下载PDF文件 173
本章小结 174
课后习题 174
项目实训 175
第11章 客户端软件 176
11.1 MongoDB Compass 176
11.1.1 创建数据库 177
11.1.2 增加数据 178
11.1.3 修改与删除数据 179
11.1.4 查询数据 179
11.1.5 查询执行计划 180
11.1.6 监控 181
11.2 Studio 3T 182
11.3 NoSQL Manager 183
11.4 项目实践:使用Compass完成增删改查综合练习 185
本章小结 187
课后习题 187
项目实训 187
第12章 Python与MongoDB 189
12.1 连接MongoDB数据库 189
12.2 增删改查操作 190
12.2.1 增加数据 190
12.2.2 删除数据 191
12.2.3 修改数据 191
12.2.4 查询数据 192
12.2.5 其他常用函数 193
12.3 索引与聚合操作 195
12.3.1 创建索引 196
12.3.2 删除索引 197
12.3.3 聚合操作 198
12.4 Python中使用GridFS 199
12.5 项目实践:增删改查综合练习 199
本章小结 202
课后习题 202
项目实训 203
第13章 Django与MongoDB 204
13.1 认识Django 204
13.2 项目实践:酒店员工信息管理模块 206
13.2.1 功能模块设置 206
13.2.2 数据库结构 207
13.2.3 数据库创建 207
13.2.4 项目环境搭建 209
13.3 功能实现 211
13.3.1 配置相关文件 211
13.3.2 测试连接数据库 212
13.3.3 验证管理员登录 213
13.3.4 员工信息录入功能 214
13.3.5 员工信息修改、删除功能 215
13.3.6 员工信息查询功能 218
本章小结 219
课后习题 219
项目实训 219
第14章 综合项目——数据分析 221
14.1 认识pyecharts 221
14.1.1 全局配置项 222
14.1.2 系列配置项 222
14.1.3 pyecharts的图表类型与参数 223
14.1.4 创建图表 223
14.2 项目实践:电商数据分析 225
14.2.1 读取数据 225
14.2.2 处理数据 226
14.2.3 数据分析 227
14.3 项目实践:端午节粽子数据分析 232
14.3.1 读取数据 232
14.3.2 处理数据 233
14.3.3 数据分析 234
本章小结 237
课后习题 238
项目实训 238