A graph is exactly that, a clear model of the domain, focused on the use-cases you want to efficiently support.Querying relational databases is easy with SQL; a declarative query language that allows both for easy ad-hoc querying in a database tool as well as specifying use-case related queries in your code.
In addition, it explains how to integrate graph databases with relational databases and how to import data from a relational store.
Relational databases have been the power-horse of software applications since the 80s, and continue so to this day.
Even object-relational mappers use SQL under the hood to talk to the database. Cypher, Neo4j’s declarative graph query language, is built on the basic concepts and clauses of SQL but has a lot of additional graph-specific functionality to make it simple to work with your rich graph model without being too verbose.
It allows you to query and update the graph structures, with concise statements.
In some regards, graph databases are like the next generation of relational databases, but with first class support for “relationships”, or those implicit connections indicated via foreign-keys in the traditional relational databases.
Each node (entity or attribute) in the graph database model directly and physically contains a list of relationship-records that represent its relationships to other nodes.
These relationship records are organized by type and direction and may hold additional attributes.
Whenever you run the equivalent of a You more or less keep the data as it is in the real world: small, normalized, yet richly connected entities.
Goals This article explores the differences between relational and graph databases and data models.