Neo4j全栈开发
  • 推荐0
  • 收藏0
  • 浏览2.2K

Neo4j全栈开发

陈韶健 (作者) 

  • 书  号:978-7-121-31447-6
  • 出版日期:2017-06-01
  • 页  数:316
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:安娜
纸质版 ¥69.00
《Neo4j全栈开发》全面、系统地介绍了Neo4j这个独特而又高性能的NoSQL图数据库,从使用Neo4j进行程序开发,到Neo4j的管理和配置等层面全方位地阐释了Neo4j的整个生态体系。
《Neo4j全栈开发》不仅着重介绍了怎样以简单易用的方式来使用Neo4j,更难能可贵的是,《Neo4j全栈开发》还分享了使用分布式Neo4j构建高可用的读/写分离负载均衡配置的实际操作过程和实现细节。
通过对《Neo4j全栈开发》的学习,读者将系统地掌握Neo4j的知识,并很快将其用于项目开发之中,为自己的应用提升访问性能,解决燃眉之急。
Neo4j是一个高性能的NoSQL图数据库,并且具备完全事务特性。在高速发展的互联网应用中,数据的快速增长强烈要求有数据库必须具有很高的查询性能,才能适应业务的发展和变化,Neo4j正是适应这种大规模的数据增长而产生的数据库。
在高速发展的互联网应用中,业务需求的频繁变更和数据的快速增长都要求数据库必须具有很强的适应能力。Neo4j图数据库正是一个能够适应这种业务需求不断变化和大规模数据增长而产生的数据库,它不但具有很强的适应能力,而且能够自始至终保持高效的查询性能。
现实世界中的一切事物都处在联系之中,如人际关系、电脑网络、地理数据、分子结构模型等,无一不处在纷繁复杂的联系之中。这种联系形成了一种互相关联的数据,联系才是数据的本质所在。传统的关系型数据库并不能很好地表现数据的联系,而一些NoSQL(Not Only SQL,非关系型数据库)数据库也不能表现数据之间的联系。同样是NoSQL的Neo4j图数据库是以图的结构形式来存储数据的,它所存储的就是联系的数据,是关联数据本身。
关联数据中的联系本来就很复杂,若要在关系型数据库中使用结构化形式来表现这种联系,则一般不能直接表示,处理起来既烦琐又费事,并且随着数据的不断增长,其访问性能将日趋下降。无数的开发人员和数据库管理人员都或多或少地使用过关系型数据库,在其应用的规模化进展过程中,对于数据库的性能优化往往捉襟见肘、陷入窘境。Neo4j没有模式结构的定义,也不需要这些定义,它使用非结构化的方式来存储关联数据,所以能够直接表现数据的关联特性。
Neo4j不管是与关系型数据库相比,还是与其他NoSQL数据库相比,都具有很多前所未有的优势,主要表现在以下几个方面。
1. 优越的性能表现
Neo4j具有永久高效的读取和写入能力,这种能力与数据库的大小无关,不管是初始创建的数据库,还是用了很长时间、积累了大量数据的数据库,Neo4j始终能保持闪电般的读/写速度。
2. 设计的灵活性
因为Neo4j没有模式结构定义的约束,并且由于图结构的自然伸展特性,都给Neo4j提供了无限广阔的灵活设计空间,因为无论是扩展设计,还是增加数据,都不会影响到原来数据的正常使用。
3. 迭代的敏捷性
正是由于Neo4j的灵活设计特性及其图结构数据的可伸缩性等特点,使其能追上业务需求变化发展的脚步,并且能适用于频繁迭代的敏捷开发方法。
4. 安全可靠的特性
Neo4j不仅支持完整的事务管理特性,而且提供了实时在线备份功能,以及应对灾难事故进行日志恢复的方法,所有这些都充分说明了Neo4j是一个安全可靠的数据库。
5. 简单易用的特性
Neo4j在使用上非常简单,不管是使用Java开发语言,还是使用其他开发语言,如Python、Ruby、PHP、.NET、Node.js等,都能够非常方便地访问Neo4j。特别是Spring Data Neo4j开发包,更是提供了一整套非常简单易用的Neo4j数据库使用方法。
6. 丰富的学习资源
Neo4j的社区版滋生了一个非常活跃的社区,在这个社区中,诸多开发者提供了非常丰富的使用Neo4j的案例——GraphGists,这是学习使用Neo4j的极好资源。通过对这些GraphGists的学习和交流,不仅能拓展你的思路,更能让你的开发工作变得更加简单和容易,而且还能帮助你快速构建应用的商业模型。
7. 大企业的考验
Neo4j拥有广大而又有实力的用户群体,并且经过几年时间的运行实践,充分验证了它的稳定性和健壮性。如思科、沃尔玛、阿迪达斯等公司,都在使用Neo4j的过程中挖掘到了图数据库的巨大威力,并且创造出了蓬勃发展的商业模型。
综上所述,使用如此优秀的数据库,不仅可以提升一个应用的性能,而且可以适应大规模的数据增长,同时还能减轻开发人员和数据库管理人员的工作负担,给你和你的企业以及你的用户带来前所未有的优越体验。
读者对象
本书适合所有开发人员,特别是Spring Boot开发者阅读,同时适合数据库管理人员和系统设计人员学习使用,并可作为系统策划者进行数据库选型的参考资料。
实例代码下载
本书各章的实例代码下载在各个章节中都有明确说明,同时也可以通过以下网址选择不同项目进行下载或检出:
https://github.com/mr-csj?tab=repositories

目录

第1章 Neo4j概述 1
1.1 Neo4j数据的特点 2
1.2 Neo4j数据的表现形式 2
1.3 Neo4j的优势 5
1.3.1 查询的高性能 5
1.3.2 设计的灵活性 6
1.3.3 开发的敏捷性 6
1.3.4 与其他数据库的比较 6
1.3.5 综合表现 7
1.4 哪些领域更适合使用Neo4j 8
1.4.1 社区网络 8
1.4.2 推荐引擎 9
1.4.3 交通运输 9
1.4.4 物流管理 9
1.4.5 主数据管理 10
1.4.6 访问控制 10
1.4.7 欺诈检测 10
1.5 哪些领域不适合使用Neo4j 10
1.6 哪些企业在使用Neo4j 11
1.6.1 阿迪达斯的购物网站 12
1.6.2 沃尔玛的内部管理系统 12
1.6.3 eBay的电子商务 13
1.7 丰富的学习资源 13
1.7.1 精选的GraphGists 13
1.7.2 GraphGists门户 15
1.8 小结 16
第2章 Neo4j API应用 18
2.1 创建项目工程 18
2.1.1 项目工程配置 19
2.1.2 引用Neo4j开发包 19
2.2 使用Neo4j API 20
2.2.1 使用嵌入式数据库 20
2.2.2 创建节点和关系 21
2.2.3 查询及更新 22
2.2.4 删除关系和节点 23
2.3 使用标签 25
2.4 使用索引 26
2.4.1 手动索引 26
2.4.2 模式索引 27
2.4.3 模式约束 28
2.5 图的遍历 31
2.5.1 广度优先遍历 32
2.5.2 深度优先遍历 32
2.5.3 遍历的路径 34
2.6 使用Cypher查询语言 37
2.7 连接Neo4j服务器 40
2.8 关于事务 42
2.8.1 Neo4j支持完整的事务管理特性 42
2.8.2 交互周期 43
2.8.3 隔离级别 44
2.8.4 关于死锁 44
2.9 其他开发语言实例 44
2.9.1 Node.js访问Neo4j 45
2.9.2 Python访问Neo4j 46
2.10 小结 47
第3章 Neo4j的安装及使用 48
3.1 安装要求及推荐 48
3.2 安装Neo4j服务器 49
3.2.1 下载Neo4j 49
3.2.2 在Linux操作系统中安装Neo4j 50
3.2.3 在Windows操作系统中安装Neo4j 51
3.3 Neo4j基本配置 52
3.4 Neo4j配置优化 53
3.4.1 页面高速缓存 53
3.4.2 堆大小 54
3.4.3 垃圾收集器 54
3.5 使用Neo4j的Web控制台 55
3.5.1 使用命令行输入框 56
3.5.2 数据库管理信息 57
3.5.3 使用收藏夹 59
3.5.4 使用帮助手册 63
3.5.5 使用浏览器同步功能 65
3.5.6 使用浏览器设置 67
3.5.7 关于Neo4j 68
3.6 小结 69
第4章 Cypher查询语言简介 71
4.1 Cypher语法基础 71
4.1.1 变量定义 72
4.1.2 可用运算符 72
4.2 Cypher读/写查询结构 73
4.2.1 用CREATE创建节点 74
4.2.2 用CREATE创建关系 74
4.2.3 用MERGE创建节点 75
4.2.4 用MERGE创建关系 76
4.2.5 用SET更新数据 76
4.2.6 用DELETE删除数据 77
4.2.7 用REMOVE移除数据 78
4.2.8 使用循环FOREACH 79
4.3 使用索引 79
4.3.1 创建和使用索引 80
4.3.2 删除索引 81
4.4 使用约束 81
4.4.1 创建约束 81
4.4.2 删除约束 81
4.5 使用标签 82
4.6 Cypher只读查询结构 83
4.6.1 条件过滤WHERE 83
4.6.2 联合查询UNION 84
4.6.3 使用链接WITH 84
4.6.4 返回结果RETURN 85
4.7 使用CASE子句 86
4.8 遍历的路径 86
4.8.1 最短路径 87
4.8.2 所有最短路径 88
4.9 使用函数 90
4.10 使用CALL调用存储过程 92
4.11 查询语句性能分析 93
4.12 Cypher的使用范围 95
4.12.1 在neo4j-shell中使用Cypher查询语言 96
4.12.2 在Rest API中使用Cypher查询语言 98
4.13 小结 101
第5章 使用SDN建模和设计存储库接口 103
5.1 SDN简介 103
5.1.1 SDN的特点 103
5.1.2 SDN存储库接口 104
5.2 数据模型设计 105
5.2.1 用户访问控制数据模型 105
5.2.2 购物网站数据模型 106
5.3 数据建模的误区 108
5.4 Neo4j的数据类型 109
5.5 在项目中使用SDN 110
5.5.1 在项目工程中引用SDN依赖 110
5.5.2 建模中可用的OGM注解 111
5.5.3 日期类型转换实例 112
5.6 使用SDN建模 113
5.6.1 节点建模 113
5.6.2 关系建模 116
5.7 使用SDN设计存储库接口 118
5.7.1 创建存储库接口 118
5.7.2 在标准方法中使用路径 120
5.7.3 自定义声明方法 120
5.7.4 使用底层方法 122
5.8 SDN配置 124
5.8.1 配置域对象和存储库接口 125
5.8.2 使用SDN驱动连接数据库 125
5.9 小结 127
第6章 应用实例一:NBA季后赛预测 128
6.1 应用背景分析 129
6.1.1 胜负预测的依据 129
6.1.2 NBA季后赛数据模型 129
6.2 实体对象建模 131
6.2.1 节点实体建模 131
6.2.2 关系实体建模 134
6.3 实体持久化和查询设计 135
6.3.1 东部球队存储库接口 136
6.3.2 西部球队存储库接口 137
6.3.3 比赛存储库接口 138
6.3.4 赢得关系存储库接口 139
6.4 预测算法设计 140
6.4.1 NBA季后赛的年度历史查询 141
6.4.2 一支球队的比赛历史查询 141
6.4.3 胜负比率排名算法 142
6.4.4 输赢预测算法 143
6.5 SDN配置及数据库连接 144
6.5.1 数据库连接配置 145
6.5.2 SDN配置 145
6.6 数据库设计验证 146
6.7 创建Web应用 149
6.8 Web前后端设计 150
6.8.1 Web后端设计 150
6.8.2 Web前端设计 154
6.9 比赛结果编辑设计 168
6.9.1 比赛结果编辑的访问控制设计 168
6.9.2 比赛结果的录入界面设计 171
6.10 胜率排名的Web设计 176
6.10.1 胜率排名的访问控制设计 176
6.10.2 胜率排名的界面设计 177
6.11 输赢预测的Web设计 180
6.11.1 输赢预测的访问控制设计 181
6.11.2 输赢预测的界面设计 182
6.12 使用GraphGists的测试数据 187
6.13 实例工程使用 188
6.13.1 工程配置 189
6.13.2 运行应用 189
6.14 小结 191
第7章 应用实例二:电影社区推荐引擎 192
7.1 应用背景分析 192
7.1.1 发现商业价值 193
7.1.2 建立数据模型 193
7.2 数据对象建模 194
7.2.1 节点建模 194
7.2.2 关系建模 199
7.3 存储库接口设计 201
7.3.1 影院存储库接口设计 201
7.3.2 电影存储库接口设计 202
7.3.3 节目存储库接口设计 203
7.3.4 观众存储库接口设计 204
7.4 Cypher查询算法设计 204
7.4.1 电影排名查询算法设计 205
7.4.2 电影推荐查询算法设计 205
7.5 数据访问服务类设计 208
7.5.1 分页查询公共服务类 209
7.5.2 数据访问服务类 210
7.6 数据库连接配置 212
7.6.1 SDN驱动的依赖引用 212
7.6.2 连接数据库配置 213
7.6.3 SDN配置 213
7.7 数据库设计验证 214
7.8 Web设计 217
7.8.1 访问控制设计 218
7.8.2 界面设计 222
7.9 电影评分的Web设计 242
7.9.1 电影评分访问控制设计 242
7.9.2 电影评分界面设计 244
7.10 电影排名的Web设计 247
7.10.1 电影排名访问控制设计 247
7.10.2 电影排名界面设计 248
7.11 电影推荐的Web设计 252
7.11.1 推荐电影给观众的Web设计 252
7.11.2 推荐电影给朋友的Web设计 257
7.12 管理后台的导航栏设计 258
7.13 实例工程使用 260
7.13.1 运行配置 260
7.13.2 应用发布 261
7.14 小结 262
第8章 Neo4j企业版安装及使用 263
8.1 分布式服务器安装 264
8.1.1 在不同机器上安装分布式服务器 264
8.1.2 在同一台机器上安装分布式服务器 272
8.2 使用Haproxy实施负载均衡服务 275
8.2.1 普通负载均衡配置 275
8.2.2 Haproxy服务监控 279
8.3 实现读/写分离的负载均衡服务 280
8.4 小结 284
第9章 Neo4j的数据安全及备份 286
9.1 数据的备份与恢复 286
9.1.1 数据备份 286
9.1.2 清理备份日志 288
9.1.3 数据恢复 289
9.2 数据库安全保障 290
9.3 数据的导入与导出 290
9.3.1 使用neo4j-import导入数据 291
9.3.2 使用Cypher导入数据 294
9.3.3 导出数据 295
9.4 故障恢复与事务日志 297
9.5 数据库升级 297
9.5.1 从2.x 升级到3.0.3 297
9.5.2 在3.x之间升级 299
9.6 小结 300
结束语 301
附录A 参考资料 302

读者评论

  • 陈老师, 您好, 请问neo4j的图形可视化界面的展示用的js相关文件是哪些呀?

    Nisus发表于 2018/4/23 13:06:30
    • 请问是neo4j的客户端的还是实例中用到的?
      以后有问题请到:https://github.com/mr-csj/discuss/issues留言,谢谢!

      陈韶健发表于 2018/7/5 15:43:41
  • 第四章 最短路径部分用到的电影社区数据文件有吗?

    风雨诗轩发表于 2018/4/11 10:59:17
    • 数据文件可以单元测试生成。或使用这个实例的GraphGists的数据。
      以后有问题请到:https://github.com/mr-csj/discuss/issues留言,谢谢!

      陈韶健发表于 2018/7/5 15:42:12

图书类别

相关博文

  • 聊聊Neo4j图数据库的那些明显优势

    聊聊Neo4j图数据库的那些明显优势

    管理员账号 2017-06-12

    小编说:Neo4j是一个NoSQL的图数据库管理系统,像其他NoSQL数据库一样具有高效的查询性能。同时,Neo4j还具有完全事务管理特性,完全支持ACID事务管理。Neo4j与其他数据库相比,具有哪些明显的优势呢?本文选自《Neo4...

    管理员账号 2017-06-12
    3619 0 0 0
  • Neo4j数据模型设计

    Neo4j数据模型设计

    管理员账号 2017-06-19

    小编说:数据模型设计是数据建模的第一步,因为Neo4j不需要模式结构定义,所以使用简单框图就可以为一个项目或应用设计数据模型。创建数据模型之后,就可以使用SDN进行数据实体建模和一些数据访问的设计。本文选自《Neo4j全栈开发》。 ...

    管理员账号 2017-06-19
    605 0 0 0
  • 讲书3分钟丨《Neo4j全栈开发》-讲书人 陈韶健

    讲书3分钟丨《Neo4j全栈开发》-讲书人 陈韶健

    王一 2017-08-02

    只需3分钟就能快速了解一本书! 由作(译)者发声讲书,直指新书的特点与主旨。 只需利用碎片化时间,省时省力选到适合自己的好书 音频链接 http://www.ximalaya.com/78614528/sound/45855...

    王一 2017-08-02
    635 1 0 0

相关图书

Knative最佳实践

Jacques Chester (作者) 赵吉壮 杨云锋 (译者)

本书主要围绕 Knative 进行展开,主要作者是 Knative 专家(社区作者)Jacques Chester ,先后从 Knative 构建、扩缩容、事件...

¥118.00

ATT&CK框架实践指南

过去,入侵检测能力的度量是个公认的行业难题,各个企业得安全负责人每年在入侵防护上都投入大量费用,但几乎没有人能回答CEO 的问题:“买了这么多产品,我们的入侵防...

¥148.00

云原生数据库:原理与实践

周恩昌 (作者)

本书详细剖析了作为核心基础软件系统的数据库在云计算时代的技术演进历程,从架构设计、实现机制和系统优化等多个角度阐述传统数据库技术是如何一步步发展到云原生形态的。...

¥99.00

SequoiaDB分布式数据库权威指南

黄达玮 (作者)

本书旨在介绍 SequoiaDB 巨杉数据库的基本概念、应用场景、企业级应用案例、数据库实例创建与管理方式、数据库集群管理的基本策略、以及性能调优和问题诊断。...

¥99.00

最强iOS和macOS安全宝典

Jonathan Levin (作者) 郑旻 (译者)

《最强iOS和macOS安全宝典》以苹果操作系统的安全为主题,主要面向苹果高级用户、系统管理员、安全研究人员和黑客。<br>本书主要分三个部分:第一部分重点介绍...

¥179.00

极限黑客攻防:CTF赛题揭秘

王新辉 天融信阿尔法实验室 张黎元 郭勇生 (作者)

CTF在网络安全领域特指网络安全技术人员之间进行技术竞技的一种比赛。CTF代替了以往黑客通过互相发起真实攻击进行技术比拼的方式,题目来自日常工作环境,并将其中的...

¥99.00