neo4j_logo

An Insight to working with Neo4j Graph Databases

Neo4j is a popular graph styled database application that is widely used by engineers around the world to store, organise and visualise data. Neo4j allows organisations to visualise data and relationships between datasets through an intuitive, networked representation of information. Neo4j works especially well with complex relationships and highly connected data such as hierarchical data and recursive relationships.
This Tech How-To Guide, produced by expert developers at Mitra Innovation, explains how to work with Neo4j Graph Databases.

Graphs

Typically a graph is made up of three components: Nodes, Edges and Properties represented in a manner of relationships.
Here is an example:
Imagine a simple relationship between two Nodes, namely ‘Jack’ and ‘Jill’.
Jack is a ‘Friend’ of Jill
Where ‘Jack’ and ‘Jill’ are Nodes
‘Friend’ is an edge from ‘Jack’, leading to ‘Jill’
‘Name: Jack’ and ‘Name: Jill’ are properties of their respective Nodes.

Neo4j-screen-1

(Fig 1: a simple relationship between Nodes)

Graph Databases can be used to create, retrieve, visualise and also display information from more complex databases that power large online systems such as e-commerce and e-learning platforms, publishing sites, social networks and many others. Graph Database tools such as Neo4j allow service platforms to quickly compare user behaviours and relationships to instantly deliver personalised recommendations to users – which is a driving feature of modern e-commerce sites and adtech platforms. Graph Databases also allow social networks to effectively recommend ‘friends’ with similar areas of interest to users.
Graph Databases, as a concept, moves on from traditional databases such as MySQL, Oracle, and Postgre SQL where data is stored in the form of tables, rows and columns, to the modern whiteboard modelled representation of data. Moving forward from ‘Relational Databases’ to ‘Not Only Relational Database Management Systems’ has opened up avenues for developers to create innovative projects to visualise information and assess its worth in terms of customer and user planning.

Neo4j-screen-2

(Table 1: A comparison of Relational Database Management Systems vs Graph Databases)

Using Cypher Query Language (CQL), Graph Databases allow engineers to quickly sift through large data dumps and retrieve relationships between independent records and visualise interconnected networks of relationships between recorded entities.
Popularly acknowledged as one of the most effective Graph Database tools around, Neo4j provides a number of essential tools to assist developers.

The main features of Neo4j are as follows:

1.ACID for Data Integrity (Atomic, Consistent, Isolated, Durable)
2.Flexible Schema
3.High Performance Query Execution
4.Cypher Query Language
5.Scale and Performance
6.Advanced Causal Clustering
7.Built in Tooling and Visualisation
8.Drivers for popular languages and framework
9.Seamless data import
10.Cloud ready deployment
11.Elastic Scalability
12.In-Memory Page Cache
13.Hot Backups

Neo4j also lists a number of impressive case studies in areas of engineering such as:

Neo4j provides a free online demo here which can be trialled before downloading the application.

Setting up Neo4j on Windows – a ‘How-to-guide’

The installation of Neo4j on windows can be carried out using a desktop installer and zip archive file (as a console application or as a windows service). Follow the instructions below:

Download Neo4j community edition from Neo4j’s official website:

(https://neo4j.com/download/)

neo4j-download

(Fig 2: Screenshot of Neo4j download page. We downloaded the ‘Community Edition’)

● Select the version that is compatible with your operating system.

neo4j-screen2


(Fig 3: Screenshot – download compatible version)

● Double click on the downloaded file in the local disk to start the installation.

neo4j-screen3


(Fig 4: Specify the installation location and click on ‘Next’ to proceed with the installation)

Vinday hettige

Vindya Hettige
Software Engineer

Vindya Hettige works as a Software Engineer for Mitra Innovation. She has a Special Degree in Computer Science from the University of Colombo School of Computing.
She currently works as a Full Stack Developer and has worked with front end technologies such as HTML, CSS, AngularJS and back end technologies such as Java, J2EE, SPring, SPring Boot, Neo4j and MySQL to mention a few.