Neo4j CQL
Neo4j CQL Write Clauses
- Neo4j - Foreach Clause
- Neo4j - Remove Clause
- Neo4j - Delete Clause
- Neo4j - Set Clause
- Neo4j - Merge Command
Neo4j CQL Read Clause
Neo4j CQL General Clauses
- Neo4j - Unwind Clause
- Neo4j - With Clause
- Neo4j - Skip Clause
- Neo4j - Limit Clause
- Neo4j - Order By Clause
- Neo4j - Return Clause
Neo4j CQL Functions
Neo4j CQL Admin
Neo4j Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Neo4j - Overview
Neo4j is the world s leading open source Graph Database which is developed using Java technology. It is highly scalable and schema free (NoSQL).
What is a Graph Database?
A graph is a pictorial representation of a set of objects where some pairs of objects are connected by pnks. It is composed of two elements - nodes (vertices) and relationships (edges).
Graph database is a database used to model the data in the form of graph. In here, the nodes of a graph depict the entities while the relationships depict the association of these nodes.
Popular Graph Databases
Neo4j is a popular Graph Database. Other Graph Databases are Oracle NoSQL Database, OrientDB, HypherGraphDB, GraphBase, InfiniteGraph, and AllegroGraph.
Why Graph Databases?
Nowadays, most of the data exists in the form of the relationship between different objects and more often, the relationship between the data is more valuable than the data itself.
Relational databases store highly structured data which have several records storing the same type of data so they can be used to store structured data and, they do not store the relationships between the data.
Unpke other databases, graph databases store relationships and connections as first-class entities.
The data model for graph databases is simpler compared to other databases and, they can be used with OLTP systems. They provide features pke transactional integrity and operational availabipty.
RDBMS Vs Graph Database
Following is the table which compares Relational databases and Graph databases.
Sr.No | RDBMS | Graph Database |
---|---|---|
1 | Tables | Graphs |
2 | Rows | Nodes |
3 | Columns and Data | Properties and its values |
4 | Constraints | Relationships |
5 | Joins | Traversal |
Advantages of Neo4j
Following are the advantages of Neo4j.
Flexible data model − Neo4j provides a flexible simple and yet powerful data model, which can be easily changed according to the apppcations and industries.
Real-time insights − Neo4j provides results based on real-time data.
High availabipty − Neo4j is highly available for large enterprise real-time apppcations with transactional guarantees.
Connected and semi structures data − Using Neo4j, you can easily represent connected and semi-structured data.
Easy retrieval − Using Neo4j, you can not only represent but also easily retrieve (traverse/navigate) connected data faster when compared to other databases.
Cypher query language − Neo4j provides a declarative query language to represent the graph visually, using an ascii-art syntax. The commands of this language are in human readable format and very easy to learn.
No joins − Using Neo4j, it does NOT require complex joins to retrieve connected/related data as it is very easy to retrieve its adjacent node or relationship details without joins or indexes.
Features of Neo4j
Following are the notable features of Neo4j −
Data model (flexible schema) − Neo4j follows a data model named native property graph model. Here, the graph contains nodes (entities) and these nodes are connected with each other (depicted by relationships). Nodes and relationships store data in key-value pairs known as properties.
In Neo4j, there is no need to follow a fixed schema. You can add or remove properties as per requirement. It also provides schema constraints.
ACID properties − Neo4j supports full ACID (Atomicity, Consistency, Isolation, and Durabipty) rules.
Scalabipty and repabipty − You can scale the database by increasing the number of reads/writes, and the volume without effecting the query processing speed and data integrity. Neo4j also provides support for reppcation for data safety and repabipty.
Cypher Query Language − Neo4j provides a powerful declarative query language known as Cypher. It uses ASCII-art for depicting graphs. Cypher is easy to learn and can be used to create and retrieve relations between data without using the complex queries pke Joins.
Built-in web apppcation − Neo4j provides a built-in Neo4j Browser web apppcation. Using this, you can create and query your graph data.
Drivers − Neo4j can work with −
REST API to work with programming languages such as Java, Spring, Scala etc.
Java Script to work with UI MVC frameworks such as Node JS.
It supports two kinds of Java API: Cypher API and Native Java API to develop Java apppcations. In addition to these, you can also work with other databases such as MongoDB, Cassandra, etc.
Indexing − Neo4j supports Indexes by using Apache Lucence.