目录
1.前言(Foreword)
1.1.图无处不在,或者据我们所知图数据库的诞生
那是1999年,每个人每天工作23小时。至少有这种感觉。 好像每天都带来另一个关于一个疯狂想法的故事,这个想法只赚了数百万美元
资金。 我们所有的竞争对手都有数百名工程师,而我们是20岁的人开发小组。 似乎还不够,我们有10位工程师花了大部分他们的时间只是在打关系数据库。
我们花了一段时间才弄清楚原因。 随着我们深入研究持久层我们的企业内容管理应用程序,我们意识到我们的软件是不仅管理许多单独的,隔离的和离散的数据项,还管理他们之间的联系。 虽然我们可以轻松地将离散数据拟合为关系型表,连接的数据存储起来更具挑战性,而存储起来则非常慢查询。
出于纯粹的绝望,我的两个Neo联合创始人Johan和Peter和我开始试用其他模型来处理数据,尤其是那些以图形为中心。想法可能使我们震惊,用以图表为中心的模型替换表格SQL语义开发人员在浏览连接的数据时更容易使用。我们感觉到有了图形数据模型,我们的开发团队可能不会浪费一半的时间。我的两位Neo联合创始人Johan和Peter出于纯粹的绝望而奋斗试用其他模型来处理数据,尤其是那些以图形为中心。想法可能使我们震惊用,以图表为中心的模型替换表格SQL语义发人员在浏览连接的数据时更容易使用。我们感觉到有了图形数据模型,我们的开发团队可能不会浪费一半的时间来挑战数据库。
当然,我们对自己说,我们不能在这里独树一帜,图论已经出现了近300年来,它以其广泛的适用性而闻名各种各样的数学问题当然,肯定有数据库乐意采纳的图表!
好吧,我们在年轻的Web上使用AltaVistad,却找不到任何东西。 经过几次经过几个月的调查,我们(naively)着手从头开始建立一个数据库,与图本机工作。 我们的目标是保留所有经过验证的功能关系数据库(transactions, ACID, triggers等),但使用数据模型21世纪。 Project Neo诞生了,有了它,我们便知道了图形数据库今天。
新千年的头十年,已经出现了一些改变世界的新兴业务,包括Google,Facebook和Twitter。 它们之间有一个共同的线索:他们将连接的数据(图形)放在其中心商业。 15年后的今天,图表无处不在。
例如,Facebook是基于这样的思想:有关人员的信息(他们的姓名,他们的工作等等)具有更大的价值在他们之间的关系中。 Facebook创始人马克·扎克伯格(Mark Zuckerberg)建立了一个依靠洞察力在社交图中捕获这些关系。
同样,Google的Larry Page和Sergey Brin弄清楚了如何存储和处理不仅是离散的Web文档,还有这些Web文档的连接方式。 Google捕获了网络图表( web graph),这无疑使它们成为前十年的最具影响力的公司。
如今,图形已被网络巨头成功采用。 世界上最大的物流公司之一,实时使用图形数据库来运输实物包裹; 一家大型航空公司正在利用其媒体内容元数据的图表; 和一个顶级金融服务公司已在Neo4j。 几年前几乎不为人所知,现在在行业中使用图数据库包括医疗保健,零售,石油和天然气,媒体,游戏以及其他领域,表明他们已经爆炸性的步伐加快了。
这些想法值得使用新的工具:通用数据库管理包含关联数据并支持图形思维的技术。我希望在1999年我们与关系数据库进行斗争时,可以使用现成的那种工具。
我希望这本书可以很好地介绍这个美好的新兴世界图形技术,我希望它会启发您开始在您的下一个项目,以便您也可以释放图表的非凡力量。
祝好运!
—Emil Eifrem
Cofounder of Neo4j and CEO of Neo Technology
Menlo Park, California
May 2013
1.前言(Preface)
图形数据库解决了当今巨大的宏观业务趋势之一:利用高度关联的数据中的复杂和动态关系来生成洞察力和竞争优势。我们是否想了解人际关系客户之间,电话或数据中心网络中的元素,娱乐生产者和消费者,或基因和蛋白质,了解和分析高度关联数据的庞大图形的能力将是确定哪些公司的关键,在未来十年内将超越竞争对手。
对于任何大小或价值的数据,图形数据库是表示的最佳方法并查询连接的数据。 关联数据是其解释和价值的数据,首先要求我们了解其构成要素之间的联系方式。为了产生这种理解,我们经常需要命名和限定事物之间的联系。
尽管大公司在一段时间前意识到这一点并开始创建他们的拥有专有的图形处理技术,我们现在正处于该技术迅速民主化的时代。 今天,通用图形数据库是现实,使主流用户可以体验关联数据的好处无需投资建立自己的图形基础架构。
图形数据和图形思维的这种复兴是值得注意的是图论本身并不新鲜。图论是欧拉在18世纪提出的,并且得到了数学家,社会学家的积极研究和改进,人类学家,以及其他从业者。 但是,仅在过去的几年中,图论和图思维已被应用到信息管理领域多年。 当时,图形数据库已帮助解决了社交网络领域,主数据管理,地理空间,建议,和更多。 对图形数据库越来越多的关注是由两个因素驱动的:Facebook,Google和Twitter等公司在商业上取得了巨大成功,他们的业务模型以他们自己的专有图形技术为中心; 并通过将通用图形数据库引入
技术格局。
1.1.关于第二版
本书的第一版是在Neo4j 2.0处于积极开发阶段时编写的,当时标签,索引和约束的最终形式仍待确定。现在Neo4j进入了2.x生命周期(撰写本文时为2.2,而2.3即将发布很快),我们可以放心地合并图属性模型的新元素进入文本。
在本书的第二版中,我们修改了所有Cypher示例,它们符合最新的Cypher语法。 我们在查询和图,并提供了Cypher声明式索引的说明,以及可选约束。在其他地方,我们添加了其他建模准则,对Neo4j内部的最新描述及其内部架构的变化,并更新了测试示例以使用最新的工具。
1.2.关于这本书
本书的目的是向技术从业人员,包括开发人员,数据库专业人员和技术决策制造商介绍图形和图形数据库。 阅读本书将使您对图数据库有实际的了解。
我们展示了图模型如何“塑造”数据,以及如何查询,推理,使用图形数据库理解数据并根据数据采取行动。 我们讨论了与图数据库完全吻合的各种问题,并列举了一些实际的例子。实际的用例,我们将展示如何计划和实现图形数据库解决方案。
1.3.本书中使用的约定
本书中使用以下印刷约定:
斜体
指示新的术语,URL,电子邮件地址,文件名和文件扩展名。
恒定宽度
用于程序清单,以及在段落中用于引用程序元素,例如变量或函数名称,数据库,数据类型,环境变量,语句和关键字。
等宽粗体
显示应由用户直接输入的命令或其他文本。
等宽斜体
显示应由用户提供的值或由上下文确定的值替换的文本
此图标表示提示,建议或一般注释。
此图标表示警告或注意。
1.4.使用代码示例
补充材料(代码示例,练习等)可从以下网站下载:https://github.com/iansrobinson/graph-databases-use-cases
这本书可以帮助您完成工作。 通常,如果提供示例代码使用本书,您可以在程序和文档中使用它。 你不需要与我们联系以获得许可,除非您复制了很大一部分内容编码。 例如,编写一个使用此代码块的程序这本书不需要许可。 出售或分发示例CD-ROM来自O'Reilly的书确实需要获得许可。 通过引用这个来回答问题预订和引用示例代码无需许可。 纳入重大意义本书中的大量示例代码无法纳入您的产品文档中需要许可。
我们感谢但不要求注明出处。 归因通常包括书名,作者,出版商和ISBN。 例如: “Graph Databases by Ian Robinson,Jim Webber, and Emil Eifrem (O’Reilly). Copyright 2015 Neo Technology, Inc.,978-1-491-93089-2.”
如果您认为对代码示例的使用超出了合理使用范围或给予了许可以上,请随时与我们联系,即:[email protected]。
1.5.Safari®在线丛书
Safari联机丛书是一个按需提供的数字图书馆,专家提供的书籍和视频形式的内容世界领先的技术和商业作家。
技术专业人员,软件开发人员,网页设计师以及业务和创意专业人员将Safari图书在线作为他们研究的主要资源,解决问题,学习和认证培训。
Safari图书在线提供了针对企业,政府,教育和个人。
会员可以访问数千本书,培训视频和预出版物像O’Reilly Media这样的出版商在一个完全可搜索的数据库中撰写手稿,Prentice Hall Professional,Addison-Wesley Professional,Microsoft Press,Sams,Que,Peachpit Press,Focal Press,Cisco Press,John Wiley&Sons,Syngress,Morgan Kaufmann,IBM Redbooks,Packt,Adobe Press,FT Press,Apress,Manning,New Riders,
McGraw-Hill,Jones&Bartlett,课程技术等等。 欲了解更多有关Safari图书在线的信息,请在线访问我们。
1.6.如何联络我们
请将有关本书的评论和问题发送给出版商:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
800-998-9938 (in the United States or Canada)
707-829-0515 (international or local)
707-829-0104 (fax)
我们有一本书的网页,其中列出了勘误表,示例以及所有其他内容信息。 您可以在http://bit.ly/graph-databases-2e上访问此页面。
要对本书发表评论或提出技术问题,请发送电子邮件至bookques‐[email protected]。
有关我们的书籍,课程,会议和新闻的更多信息,请参见我们的网站http://www.oreilly.com。
在Facebook上找到我们: http://facebook.com/oreilly
在Twitter上关注我们: http://twitter.com/oreillymedia
在YouTube上观看我们:http://www.youtube.com/oreillymedia
1.7.致谢
我们要感谢我们的技术评审:Michael Hunger,Colin Jack,Mark Needham和Pramod Sadalage。
感谢和感谢我们的编辑第一版Nathan Jepson。
在本书写作过程中,Neo Technology的同事们投入了大量的时间,经验和精力。 特别感谢Anders Nawroth,感谢他对本书工具链的宝贵帮助;安德烈斯·泰勒,他的热心帮助与Cypher支架所有的东西; 菲利普·拉斯(Philip Rathle),为他的建议和对文本的贡献。
非常感谢Neo4j社区中的每个人多年来为图形数据库领域做出的许多贡献。
特别感谢我们的家人的爱心和支持:Lottie, Tiger, Elliot,Kath, Billy, Madelene, and Noomi。
克里斯蒂娜·埃斯卡兰特(Cristina Escalante)和迈克尔·汉格(Michael Hunger)的勤奋工作使第二版成为可能。 谢谢你们俩的宝贵帮助。