Traditional databases are relational databases, which store data in rows and columns and emphasize the ability to denormalize the data and link it with primary and foreign keys. This is well suited for traditional use cases like a customer and order database to store and track your customers, the inventory, the products, and the items the customer has purchased.
Graph databases solve a different problem, they emphasize the relationships between the data in large connected networks, and allow for the storage, modeling and querying of these new data sets and use cases. We will describe the context and some of the example use cases where a graph database is more suited than a relational database.
What is a Graph Database
Graph databases provide a relationship-first approach to storing and querying data. They store data in a logical fashion that represents the real-world network and prioritizes the representations, discoverability, and, maintainability of data relationships.
Graph databases use graph structures for semantic queries with nodes, called vertices, edges, and properties to represent and store data.
- Vertex – represents a real-world object such as a movie or person.
- Edge – represents a relationship between two vertices.
- Properties – similar to fields in a tablet but more flexible. Can be applied to an edge or a vertex.
Graph databases can be queried using graph oriented languages like sparkql, which are suited to expressing problems in large graph domains.
Most Popular Graph Databases
There are dozens of open source and commercial graph databases, but the most popular graph database currently available is decisively Neo4j, which is an open source graph database described by its developers as an ACID-compliant transactional database with native graph storage and processing.
Other popular graph databases include OrientDB (an open source NoSQL database management system written in Java), ArangoDB (a native multi-model database system developed by triAGENS GmbH), MarkLogic (a multi-model database designed for NoSQL speed and scale), and AllegroGraph (a closed source triplestore which is designed to store RDF triples), just to name a few.
Graph Database Use Cases
Graph databases are applicable everywhere where data relationships are valuable in real-time:
- Social networks – Perhaps the most typical use case for a graph database are social networks, with their complex relationships and user activity.
- Fraud detection – To uncover fraud in real-time, fast analysis of data relationships is essential, and graph databases provide the necessary performance.
- Knowledge graphs – Used by search engines and businesses alike, knowledge graphs gather information from a wide variety of sources, allowing for better digital asset management and easier information retrieval.
- IT network analysis – The management of networks and IT infrastructures revolves around complex interdependencies, and graph databases are inherently more suitable for this use case than relational databases.
- Recommendations – Companies can use graph databases to power sophisticated recommendation engines to personalize products, content, and services.
- Identity management – Graph databases enable efficient user activity tracking and quick authorizations and asset management.
Conclusion
Graph databases solve today’s data challenges by focusing not only on data, but also on the connections between individual database entries. They have numerous use cases and are available both as community-driven software products and as commercial software with enterprise-grade support.