You may have heard about graph databases. What are they and are they right for your organization?
A graph or graph-oriented database is a type of NoSQL database that uses graph theory to store, map, and query relationships.
Rather than organizing data in tables—a neat and clean structure—graph databases are able to make sense of “huge, irregularly-shaped data sets,” according to Computer Weekly.
Graph Databases Are All About Relationships
Simply put, graph databases look at relationships between data. As Tony Agresta, managing director of Ontotext USA, explains in a Forbes “CIO Central” guest post:
Generally speaking, graph databases store data in a graph structure where entities are connected through relationships to adjacent elements. The Web is a graph; also your friend-of-a-friend network and the road network are graphs.
Graph database management systems (DBMS) are able to store individual data points—say, key-value pairs or documents—and can also store the relationships between these individual datapoints. Often, data experts say, the relationship between datapoints is more important than the data itself.
GraphBase, a provider of graph database management systems, explains that speed at parsing complex association is the lure behind graph DBMS:
Relationships between things are a key part of any data management—and the more data we store, the greater the number and nature of relationships we need to make sense of…
The truth is that relational databases aren’t relational stores at all—they’re a collection of flat tables with a relational query language (SQL) tacked on. So when it comes to working with highly-related data, a Graph DBMS can be thousands of times faster.
Where graph databases differ from conventional structured relational database management systems is that the relationships between data sets are explored, not just what’s in the table. Graph databases store the relationships between data sets, says Dan Woods, writing in Forbes:
This capability makes it much easier to express sophisticated questions, and get answers in a small fraction of the time it takes a traditional database. The relationships in the database can express the nature of each connection (parent, child, owns, friend) and capture any number of qualitative or quantitative facts about that relationship (weighting, start and end date, etc.).
Who Uses Graph Databases?
Graph data is used and needed by organizations to search and return very specific and relevant answers to complex queries. It can also explain relationships or connections between data points many degrees of separation apart. It doesn’t rely on a specific schema, which means it can evolve with the organization’s changing needs.
Because graph database management systems look at relationships between data, they have become popular with online matching sites such as AYI—Are You Interested? (a dating site) and Glassdoor (a career/job site). Volker Pacher, senior developer at eBay, says using a graph database has increased the performance of the company’s database while allowing programmers to add more functionality than was possible with MySQL.
Experts contend that graph databases with highly connected datasets outperform conventional database technologies. Such applications might include fraud detection systems, recommendation engines, or identity management systems.
Expect to Start Seeing Graph DBMS Everywhere
Emil Eifrem, the chief executive officer of Neo Technology (the company behind the Neo4j graph database management system), says once people learn what a graph database can do, they start seeing graphs everywhere. In a TechRepublic article, Eifrem argues:
The era of the one-size-fits-all database is over, and ultimately most applications of a decent size and scope will use multiple databases. The role of the data architect is going to be to look at their big dataset (because all datasets are or will be big) and identify shapes in the data and the workloads. And for the tabular parts, put that in a relational database. For simple, high volume key-value pairs (‘tall skinny tables’), put that in a key value store. For the messy, constantly changing or highly connected parts, put that in a graph database.
Graph databases are forecast to continue growing in popularity. Graph database management systems “increased their popularity by 500% within the last 2 years.” according to DB-Engines’ Paul Andlinger. In his March 2015 analysis, he said that in addition to several graph database companies attracting investors and acquisitions, several major vendors of relational database systems—including Oracle and DB2—support the RDF graph data model. Forrester Research expects more than 25 percent of all enterprises will be using graph database management systems by 2017.
The top five graph databases, as ranked by DB-Engines in November 2015, are Neo4j, Titan, OrientDB, ArangoDB, and Giraph. Of these, OrientDB and ArangoDB are considered multi-model databases.
Although graph databases do have some definite use cases compared to some conventional relational database management systems, many traditional database systems now have some graph functions. There are also many NoSQL or no schema databases able to store and retrieve various data elements such as by key-value or document stores.
If you’re interested in determining the ideal database for your next project or if your organization is starting with a blank slate, there may be several different technologies and other options for data management you’ll want to explore, including graph databases.
Datavail can help. To learn more about our remote database services and how our experts can help with your ongoing database operations, please contact Datavail to discuss a custom solution designed for your enterprise. Our database experts can help provide the support and services you need to successfully work with your data.
EPM applications help measure the business performance. This post will help you choose the best EPM solutions for your organization’s needs and objectives.
Imagine there are over one hundred logins in the source server and you need to migrate them all over to the destination server. Wouldn’t it be awesome if we could automate the process by generating the scripts for the required tasks?