By Neo4j Staff | August 3, 2015 The recent proliferation of database technologies is a testament to the fact that relational databases are not the right tool for every job. Of course, they have their uses: Tabular data with a consistent structure and fixed schema is a perfect fit for a relational database (RDBMS). But if your application demands flexibility or highly connected data, then it’s time to look for an alternative to your RDBMS. In this series on SQL strain, we’ll dive into the causes – and cures – of relational database performance issues, including the future-proof alternative of graph databases. Last week, we covered five sure signs of SQL strain. This week, we’ll discuss the impact of a graph data model and two approaches to solving the problems of connected data.
The Impact of the Graph Database ModelRelational databases such as Oracle and MySQL excel when it comes to capturing repetitive, tabular data. Despite the word “relational” in their name, relational databases are much less effective at storing or expressing relationships between stored data elements. The word “relational” in relational databases comes from relating columns within a table, not relating information in different tables. Relationships between columns exist to support set operations. This is very different from the real world where relationships exist between individual data elements. Consider the impact that using a graph data model can have in three important areas:
- Modeling data with a high number of data relationships
- Flexibly expanding the model to add new data or data relationships
- Querying data relationships in real-time
Example Use Case: Two Approaches to Solving a Connected Data ProblemHow do relational and graph databases compare from a project standpoint? In order to contrast how you approach development with a relational versus a graph database, let’s look at a specific example: a simple product recommendation engine. The data in this case is highly connected: Customers relate to products and brands, products relate to other products and brands, and finally, customers relate to other customers. Almost every online retail organization is interested in building a recommendation engine where value is derived from data relationships. For a recommendations engine there are three key requirements:
- Model data and the data relationships to understand how recommendations can be made
- Make recommendations in real-time by querying the data relationships
- Continually make the model richer by adding more data and more relationships
From the CEO
Have a Graph Question?
Reach out and connect with the Neo4j staff.Stackoverflow
Share your Graph Story?
Email us: firstname.lastname@example.org