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

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.

主站蜘蛛池模板: 永丰县| 大方县| 邯郸市| 渝北区| 琼中| 河间市| 翁源县| 敦煌市| 定边县| 安阳县| 抚顺市| 商水县| 荣成市| 米泉市| 应城市| 都江堰市| 咸宁市| 浦东新区| 临江市| 塔城市| 江源县| 商南县| 双峰县| 马关县| 宁明县| 太原市| 明光市| 高平市| 宜兰市| 太湖县| 江山市| 萨迦县| 客服| 屏山县| 来安县| 固阳县| 扎赉特旗| 孝义市| 斗六市| 新龙县| 陇川县|