Neo4j database management system

Today, the most common type of database are relational databases, which actually consist of a set of data in which the data itself is connected with relations, and SQL (Structured Query Language) is used to query this data. For relational data, the data is shown in interconnected tables. On the other hand, there are NoSQL databases, which include other ways of managing data that are not related to tabular relationships as in relational databases. NoSQL databases are generally good when using large amounts of unstructured data.

Graph databases

One subset of NoSQL databases are graph databases. Graph databases are, as the name suggests, based on graphs. A graph contains nodes and relationships between these nodes, and the nodes and relationships themselves may have additional attributes (properties) that describe them in more detail. What sets graph databases apart from other forms of databases is their efficiency in processing highly related data and easy execution of queries. Graph databases are based on the relationships of neighboring nodes and thus facilitate the collection and aggregation of information over millions of nodes and connections.


Figure 1. Difference between the relational and graph variant of a contact list database. Answering questions such as “Does Ante have Peter’s contact info?” And “Who should Ivan contact to get Ante’s contact info?”

Neo4j

Neo4j is an open-source graph database management system that effectively implements the graph database model up to the level of data storage, i.e. the data is stored exactly as it is shown, in the form of a graph. Neo4j offers all the features of a database that make it safe and adequate for use in a production environment. Some of the functionalities provided by Neo4j are the use of the Cypher query language, flexibility of the graph itself, i.e. easy addition of nodes and connections, and drivers for various programming languages ​​such as Java, .NET, JavaScript, Python and others, which allow easy integration of Neo4j into your own solutions.

Figure 2. A graph with attributes and Cypher queries

Neo4j is used in a variety of business domains, from the finance world, where graph databases are used to control risk and safety recommendations, over natural sciences and pharmaceutical companies, all the way to telecommunications and network management. Some common examples of using the Neo4j graph database are real-time product recommendations, managing key business data and gaining insight into user interests and patterns of behavior, fraud detection and analysis, data science and artificial intelligence processes, semantic search and knowledge graph creation, identity and access management and many others.