Neo4j3.x入门经典pdf下载pdf下载

Neo4j3.x入门经典百度网盘pdf下载

作者:
简介:本篇主要提供Neo4j3.x入门经典pdf下载
出版社:清华大学出版社
出版时间:2019-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介

Neo4j是一个高性能的NoSQL图数据库,将结构化数据存储在拓扑图上而不是表中,从而轻松地管理巨量的数据。Neo4j凭借嵌入式、高性能、轻量级等优势越来越受关注。
本书共15章,介绍图论和图数据库、Neo4j基础、Neo4j数据模型、Cypher入门、APOC和Cypher扩展、查询性能优化、Neo4j数据导入、空间、安全认证、Neo4j可视化、Neo4j数据重构、集群等内容,1后通过两大案例(推荐系统和影响分析与模拟)的讲解,使你获得图数据建模与设计的技能。
本书既可以作为Neo4j初学者的入门教材,也可以作为相关行业Neo4j技术专家的参考手册。

作者简介

张帜,中国IT界元老、中国图数据库先导者、大数据领域资深专家、WPS曲线汉字发明人。曾任Microsoft高级软件设计师及“维纳斯计划”技术主管,牵头研发中国移动139手机邮箱。于2017年会期间做客CCTV,与著名主持人阿丘老师对话,畅谈《关于图数据库的梦想》,被业界誉为中国图数据库一人。

目录

目 录

第1章 图论和数据库 1
1.1 Neo4j 3.x简介和图的历史 1
1.2 图论的定义和用途 3
1.2.1 社会学研究 5
1.2.2 生物学研究 6
1.2.3 计算机科学 6
1.2.4 流量问题 7
1.2.5 路径问题 8
1.2.6 网页搜索 9
1.3 背景 10
1.3.1 导航数据库 11
1.3.2 关系数据库 13
1.3.3 NoSQL数据库 15
1.4 图数据库的属性图模型 18
1.4.1 节点标签 20
1.4.2 关系类型 20
1.5 使用图数据库的注意事项 20
1.5.1 为什么使用图数据库 20
1.5.2 什么时候不用图数据库以及用什么替代 22
1.6 问答 23
1.7 小结 23
第2章 Neo4j基础入门 25
2.1 Neo4j的关键概念和特点 25
2.1.1 从头开始创建图 25
2.1.2 基于事务的ACID数据库 26
2.1.3 可用于联机事务处理 27
2.1.4 扩展性能 28
2.1.5 声明式查询语言Cypher 28
2.2 Neo4j典型案例 29
2.2.1 复杂的连接密集型查询 29
2.2.2 路径查询 29
2.2.3 开源解决方案 29
2.3 特性 30
2.4 许可协议 31
2.5 安装Neo4j 32
2.5.1 在Windows系统上安装Neo4j 32
2.5.2 在Mac和Linux系统上安装Neo4j 35
2.6 在云平台使用Neo4j 37
2.7 沙盒模式 41
2.8 在Docker容器中使用Neo4j 47
2.8.1 安装Docker 48
2.8.2 准备文件 48
2.8.3 在Docker容器中运行Neo4j 48
2.9 问答 50
2.10 小结 51
第3章 Neo4j数据模型 52
3.1 四种基础数据结构 52
3.2 图数据库建模基础 53
3.2.1 ER图和关系模式 53
3.2.2 通过连接表引入复杂性 54
3.3 图模型—一个简单、高保真的现实模型 55
3.4 图建模—最佳实践和陷阱 57
3.4.1 图建模最佳实践 57
3.4.2 图数据库建模陷阱 61
3.5 问答 64
3.6 小结 65
第4章 Cypher入门 66
4.1 Cypher的语法 66
4.2 Cypher的关键特性 67
4.3 与数据很好地结合 68
4.3.1 创建数据 68
4.3.2 读取数据 69
4.3.3 更新数据 70
4.3.4 删除数据 71
4.4 Cypher的关键操作词 72
4.5 语法约定 73
4.6 高级知识 74
4.7 Cypher参考卡 78
4.8 openCypher工程 79
4.9 小结 79

第5章 过程—APOC 80
5.1 安装APOC 80
5.1.1 机器安装 81
5.1.2 Docker容器安装 81
5.2 检查APOC安装 81
5.3 函数和过程 82
5.4 习惯用法 82
5.4.1 来自朋友的建议 82
5.4.2 图概述 83
5.5 关键用法 85
5.5.1 安装 85
5.5.2 随机图生成器 85
5.5.3 网站排名 86
5.5.4 Cypher语句限时执行 86
5.5.5 节点集合连接 87
5.5.6 更多APOC 87
5.6 问答 88
5.7 小结 89
第6章 Cypher扩展 90
6.1 构建扩展工程 90
6.1.1 创建函数 91
6.1.2 创建过程 92
6.2 定制聚合器 95
6.3 非托管扩展 96
6.3.1 HTTP和JAX-RS refreshers 97
6.3.2 JSON响应流式化 98
6.4 小结 101
第7章 查询性能优化 102
7.1 Explain和Profile指令 102
7.1.1 查询计划 102
7.1.2 运算符 104
7.2 索引 105
7.2.1 强制使用索引 105
7.2.2 强制使用标签 105
7.3 经验法则 106
7.3.1 Explain所有查询 106
7.3.2 行 106
7.3.3 不要过度消耗资源 106
7.3.4 返回笛卡儿积级别的数据 106
7.3.5 简单 106
7.4 小结 107
第8章 Neo4j数据导入 108
8.1 导入CSV文件 108
8.2 导入JSON源 111
8.3 导入JDBC源 114
8.3.1 测试安装 114
8.3.2 导入所有系统数据 114
8.4 导入XML源 115
8.5 小结 116
第9章 空间 118
9.1 空间简介 118
9.1.1 回顾 118
9.1.2 无缺陷塔 119
9.1.3 什么是空间 119
9.2 Neo4j的空间特性 119
9.3 APOC的空间特性 120
9.4 地理编码 121
9.4.1 设置OSM为提供商 121
9.4.2 设置谷歌为提供商 121
9.5 Neo4j Spatial 122
9.5.1 在线示例 122
9.5.2 Neo4j Spatial特性 122
9.6 导入OpenStreetMap数据 124
9.7 大型OSM数据导入 126
9.7.1 简易方法 126
9.7.2 更直接的数据导入方法 127
9.8 查询卫生间 127
9.9 理解WKT和BBOX 128
9.10 删除所有地理数据 128
9.11 小结 129
第10章 安全认证 130
10.1 认证与授权 130
10.2 角色 131
10.3 用户管理 132
10.4 Neo4j连接到LDAP目录 132
10.5 使用LDAP配置Neo4j 135
10.6 问答 136
10.7 小结 136
第11章 Neo4j 可视化 137
11.1 可视化的重要作用 137
11.1.1 为什么图数据可视化很重要 137
11.1.2 直观地与数据进行交互 137
11.1.3 模式识别 138
11.1.4 发现重点 139
11.2 图数据可视化的基本原则 139
11.2.1 开源可视化组件库 140
11.2.2 将可视化组件库应用到项目中 143
11.2.3 可视化解决方案 144
11.2.4 问题和陷阱 148
11.2.5 Cytoscape实例 149
11.3 问答 152
11.4 小结 153
第12章 Neo4j数据重构 154
12.1 预备步骤 154
12.2 简单改变 154
12.2.1 重命名 154
12.2.2 添加数据 155
12.2.3 删除数据 156
12.3 重大改变 156
12.3.1 知道我们的模型 156
12.3.2 重构工具 157
12.3.3 属性变标签 157
12.3.4 属性变节点 157
12.3.5 相关节点变标签 158
12.3.6 合并节点 158
12.3.7 关系 159
12.4 结论 162
12.5 小结 162
第13章 集群 163
13.1 为什么需要Neo4j集群 163
13.2 Neo4j集群的概念 164
13.2.1 核心服务器 164
13.2.2 只读副本服务器 164
13.2.3 高吞吐量 164
13.2.4 数据冗余 165
13.2.5 高可用 165
13.2.6 Bolt协议 165
13.3 构建Neo4j集群 165
13.3.1 核心服务器 165
13.3.2 只读副本服务器 167
13.3.3 bolt+routing协议 168
13.4 在Neo4j集群中实现灾难恢复 169
13.5 小结 169
第14章 案例—推荐系统 170
14.1 推荐系统剖析 170
14.2 推荐系统的图模型应用 171
14.3 推荐系统查询示例 173
14.3.1 基于商品购买的推荐 173
14.3.2 基于品牌忠诚度的推荐 175
14.3.3 基于社交关系的推荐 176
14.3.4 组合推荐 176
14.4 推荐系统的业务变化 177
14.5 欺诈检测系统 178
14.6 访问控制系统 179
14.7 社交网络系统 179
14.8 问答 180
14.9 小结 181
第15章 案例—影响分析与模拟 182
15.1 影响分析系统解析 182
15.1.1 影响分析在业务流程管理中的应用 183
15.1.2 业务图建模 183
15.2 成本计算环境中的影响模拟 187
15.2.1 产品层次结构的图建模 187
15.2.2 产品层次结构图的应用 188
15.3 问答 192
15.4 小结 193
附录 应用技巧介绍 194



前言/序言

前 言
本书内容基于Neo4j 3.x版本,通过对本书的学习我们会掌握图数据库和Neo4j的关键技能。从理论知识到应用程序开发,我们将全方面地学到Neo4j的各项知识。
本书所涵盖的内容
第1章 图论和数据库,解释图数据库技术的历史和基本理论。另外,本章阐述图数据库不断的发展、演变,以及图数据库从技术、行业方面与其他数据库技术进行比较。
第2章 Neo4j基础入门,介绍图数据库Neo4j的具体实现,并着重介绍Neo4j的关键概念和特性。
第3章 Neo4j数据模型,阐述图数据库的基本建模技术。
第4章 Cypher入门,阐述Cypher查询语言的用法。
第5章 过程——APOC,在本章我们将学习如何在Cypher查询中使用过程、获取过程的相关信息以及社区版提供的数百个存储过程的概述。
第6章 Cypher扩展,阐述如何扩展Neo4j实例的功能、如何创建用户自定义APOC。
第7章 查询性能优化,阐述如何调整我们的Cypher查询以获得更好的性能。
第8章 Neo4j数据导入,阐述如何从不同数据源将数据导入到Neo4j。
第9章 空间,阐述如何使用Neo4j的地理信息功能。
第10章 安全认证,阐述Neo4j中的认证和授权。
第11章 Neo4j可视化,阐述如何展示我们的数据。
第12章 Neo4j数据重构,阐述如何按照需求来修改适合我们的数据模型。
第13章 集群,使用Neo4j企业版建立一个因果集群。
第14章 案例——推荐系统,深入挖掘特定的图数据库用例,并使用特定的示例数据集和查询模式进行剖析。
第15章 案例——影响分析与模拟,分析网络中某一部分的变化对另外一部分的影响。
附录 应用技巧介绍,阐述使用Neo4j的一些技巧。
学习本书需要具备的条件
要运行Neo4j的软件,我们需要一个装有Java7或更高版本的计算机,并且要具备4GB的内存和2GB的可用硬盘空间。
本书有一些在GNU / Linux系统运行的例子,所以某些内容会用到Linux操作系统。
除了第10章安全认证和第13章集群之外,大多数章节讨论的内容都适用于Neo4j社区版和Neo4j企业版。
在最后几章内容中,我们推荐使用两台笔记本电脑,几个树莓派设备和Docker容器来做实验。
本书适用人群
本书内容适用于想要采用图作为数据存储结构或者想要处理复杂网状关系数据的开发人员。只要我们有传统数据库的使用经验,即便没有图数据库的相关经验我们也是可以很容易地理解本书内容。
本书内容格式的约定
代码块样式如下:
public class StringHacking {
@UserFunction
@Description("Returns the last word of a string")
public String getLastWord( @Name("aStr") String aStr){
if(aStr==null) return null;
else {
int pos = aStr.lastIndexOf(" ");
if(pos==-1) return aStr;
else return aStr.substring(pos+1);
}
}
}
当本书想要让读者着重注意代码中某一部分时,将会加粗显示:
MATCH (ln:LastName)--(p:Person)
RETURN ln, learningneo4j.randomCount(p.lastName) AS badcount
命令行的输入、输出内容格式如下:
mkdir data/ldap/environment -p
mkdir data/ldap/db -p
新术语和重要词汇以及操作界面上的词汇(如菜单、对话框的名字)本书将以粗体显示,如下所示:
为了下载新模块,我们打开“文件|设置|项目名称|项目解释器”。
重要提醒的内容将以此形式展示。
技巧性的内容将以此形式展示。
反馈
我们欢迎读者反馈对本书的看法,任何你喜欢或不喜欢的内容都可以反馈给我们。读者的反馈对我们是非常重要的,从读者的反馈中我们可以知道如何修改、完善本书的内容。如果要向我们反馈关于本书的普通问题请发送电子邮件至feedback@packtpub.com,并在邮件主题中写明章节标题;如果你是一位专业人士并希望参与到本书的撰写中,请参阅我们的作者指南,网址为www.packtpub.com/authors。
读者支持
既然你是这本书的拥有者,我们自然愿意从多方面帮助你从购买中获得最大收益。
下载本书示例代码
如果你是从http://www.packtpub.com上购买的本书,那么你可以直接在此网站下载本书的示例代码文件。如果你在其他地方购买了本书,则可以访问http://www.packtpub.com/support并注册,我们将直接将示例代码文件通过电子邮件发送给你。你可以通过以下步骤下载代码文件:
(1)使用你的电子邮件地址和密码登录或注册我们的网站。
(2)将鼠标指针悬停在顶部的SUPPORT选项卡上。
(3)点击Code Downloads&Errata。
(4)在搜索框中输入书名。
(5)选择你要下载代码的对应书名。
(6)打开购买本书的下拉菜单。
(7)点击代码下载。
示例代码文件是一个压缩包文件,当你下载下来后请使用最新版本的解压工具,如:
? WinRAR、7-Zip Windows版。
? Zipeg 、iZip、UnRarX Mac版。
? 7-Zip 、PeaZip Linux版。

版权
互联网上盗版问题是一直存在的,我们非常重视保护我们的版权。如果你在互联网上发现任何本书的非法复制作品,请立即向我们提供网址或网站名称,以便我们寻求补救措施。请通过copyright@packtpub.com与我们联系,并附上可疑的盗版材料的链接。我们非常感谢你的帮助,这将帮助我们作者保护自身利益不受侵犯。
其他问题
如果你对本书的任何方面有疑问,可以通过与我们联系,我们将尽最大努力帮你解决问题。