什么是Cypher?
Cypher是一种声明式图形查询语言,可用于表达性和高效的查询更新和管理。它旨在同时适合开发人员和运营专业人员。Cypher的设计既简单又强大。可以轻松表达高度复杂的数据库查询,使您可以专注于自己的域,而不会迷失在数据库访问中。
Cypher受到许多不同方法的启发,并以用于表达查询的既定实践为基础。许多关键字(例如WHERE
和ORDER BY
)均受到SQL的启发。模式匹配借鉴了SPARQL的表达方法。某些列表语义是从Haskell和Python等语言中借用的。Cypher的结构基于英文散文和简洁的图像,使查询变得容易,无论是写作还是阅读。
Cypher基于SQL的强大功能-SQL是查询关系数据库的标准。但是,Cypher是专门为图形数据和遍历设计和优化的。尽管语言都没有好或坏,但它们各有长处和目的。
为什么选择Cypher?
我们已经知道Neo4j的属性图模型由节点和关系组成,这些节点和关系也可能具有与之关联的属性。但是,节点和关系是构建属性图模型最有价值和功能最强大的部分-模式的简单组件。模式由节点和关系元素组成,可以表示简单或复杂的遍历和路径。
模式识别是大脑工作方式的基础。因此,人类非常擅长处理模式(例如可视化图表,甚至是内存匹配游戏)。Cypher很大程度上也是基于模式的,旨在识别数据中这些模式的各种版本,使其成为用户学习的一种简单而逻辑的语言。
Cypher与SQL?
Cypher就像SQL是一种声明性文本查询语言,但用于图形。
与SQL不同,Cypher完全是关于表达图形模式的。我们添加了一个特殊子句MATCH
来匹配您数据中的这些模式。这些图案是您通常在白板上绘制的图案。
关系数据库将数据存储在具有固定结构(模式)的表中,每列具有名称,类型,长度,约束等。表之间的引用通过将一个表的主键作为列重复,将另一个表作为外键重复来表示。对于多对多引用,需要JOIN表(或链接表)作为连接表之间的人为构造。
规范化的关系模型可以直接转换为等效图模型。图模型主要由用例驱动,因此之后将有机会进行优化和模型演化。
后续文章我们开始讲解Cypher常用语法。
有疑问请点赞和留言哈,我会及时回复。
- 本期完 -
为方便看最新内容,记得关注哦!