官术网_书友最值得收藏!

Preface

Among the NoSQL databases, Neo4j is generating a lot of interest due to the following set of features: performance and scalability, robustness, its very natural and expressive graph model, and ACID transactions with rollbacks.

Neo4j is a graph database. Its model is simple and based on nodes and relationships. The model is described as follows:

  • Each node can have a number of relationships with other nodes
  • Each relationship goes from one node either to another node or the same node; therefore, it has a direction and involves either only two nodes or only one
  • Both nodes and relationships can have properties, and each property has a name and a value

Before Neo4j introduced Cypher as a preferred query, utilizing Neo4j in a real-world project was difficult compared to a traditional relational database. In particular, querying the database was a nightmare, and executing a complex query required the user to write an object, thereby performing a graph traversal. Roughly speaking, a traversal is an operation that specifies how to traverse a graph and what to do with the nodes and relationships found during the visit. Though it is very powerful, it works in a very procedural way (through callbacks), so its readability is poor and any change to the query means modifying the code and building it.

Cypher, instead, provides a declarative syntax, which is readable and powerful, and a rich set of graph patterns that can be recognized in the graph. Thus, with Cypher, you can write (and read) queries much more easily and be productive from the beginning. This book will guide you through learning this language from the ground up, and each topic will be explained with a real-world example.

主站蜘蛛池模板: 临潭县| 湖南省| 上蔡县| 西青区| 宾川县| 奉新县| 呼和浩特市| 北京市| 鹤山市| 克拉玛依市| 民勤县| 莱西市| 达孜县| 合水县| 英超| 新巴尔虎右旗| 青海省| 石景山区| 济宁市| 股票| 宝山区| 扬州市| 四平市| 肥西县| 广宗县| 宁城县| 永清县| 玛多县| 泸西县| 富阳市| 通渭县| 潼关县| 崇左市| 沙洋县| 兰西县| 乌什县| 丰城市| 玉树县| 浦江县| 乌鲁木齐市| 贺州市|