Intro to Graph and Native Graph Databases
The graph database model is more flexible, scalable, and agile than RDBMS, and it’s the optimal data model for applications that harness artificial intelligence and machine learning.
Join the DZone community and get the full member experience.
Join For FreeLegacy databases — or relational databases, aka RDBMS — were built for well-mapped, stable, and predictable processes like finance and accounting. These databases use rigid rows, columns, and tables that don’t require frequent modifications, but when the database model does need to change, it’s a big and expensive undertaking.
Today, when building software applications, business and user requirements change often. Yet, most legacy database software fights against these changes rather than evolving with them.
The graph database model is built to store and retrieve connections from the ground up. It’s more flexible, scalable, and agile than RDBMS, and it’s the optimal data model for applications that harness artificial intelligence and machine learning. AI and ML thrive on connected data, and that’s exactly what graph technology delivers.
Graph Databases
A graph database stores two kinds of data: “entities” and the “relationships” between them. Data entities are stored as vertices (or sometimes nodes), and data relationships are stored as edges. Vertices represent nouns: people, places, products, locations, payments, and more. Edges represent the verbs or relationships that connect various vertices. This network of interconnected vertices and edges is called a graph.
For example, an app user (vertex) sends (edge) a payment (vertex) directed to (edge) another app user (vertex). The two app user vertices are connected to the payment vertex via the sends edge and the directed to edge, respectively.
Graph database software stores all the records of these interconnected vertices, attributes, and edges so that they can be harnessed by various software applications. To simplify, graph databases store networks of interrelated data.
Native Graph Databases
As graph technology grows in popularity, more and more database vendors offer “graph” capabilities alongside their existing data models (such as relational, document, wide column, key-value, or other NoSQL stores). But, the trouble with these graph add-on offerings is that they’re not optimized to store and query the connections between data entities.
If your application frequently needs to store and query data relationships, then you need a native graph database.
The key difference between native and non-native graph technology is what it’s created for. A native graph database uses something called index-free adjacency to physically point between connected vertices in the database. This ensures connected data queries are highly performant.
Essentially, if a database model is specifically engineered to store and query connected data, then it’s a native graph database. If the database was first engineered for a different data model and only added “graph” capabilities later, then it’s a non-native graph database.
Non-native graph data storage is often slower because all of the relationships in the graph have to be translated into a different data model (and then back again) for every graph query.
While these differences might not appear critically important, it all comes down to why you’re using a graph database in the first place.
When to Use a Graph Database
If your application frequently queries and harnesses the relationships between users, products, locations, or any other entities, then you’re better off using a best-in-class native graph database. The same is true if your use case leverages network effects or requires multiple-hop queries across your data.
A graph database is quicker for your development team to modify and quicker for your application to query. Graph database technology also grows and evolves alongside your business and application requirements — it never lags behind or gets stuck in the past.
And it almost goes without saying that if your enterprise relies on graph analytics or graph data science, then you need a native graph database to ensure real-time performance for mission-critical applications.
Graph Database Use Cases
The use cases for graph technology are vast, diverse, and growing. Here’s a rundown of some of the most popular graph database use cases out there today:
Most popular graph database use cases:
- Artificial intelligence and machine learning
- Fraud detection
- Recommendation engines
Increase revenue:
- Master data management
- Entity resolution
- Product and service marketing
Reduce costs and manage risks:
- Anti-money laundering
- Risk assessment and monitoring
- Cybersecurity threat detection
Improve operational efficiency:
- Supply chain analysis and management
- Energy management system and analytics
- Network resources optimization
Foundational technology:
- Graph data science
- Time-series analysis
- Geospatial analysis
…And more! Graph technology is a tool to build the future, so there’s no limit to the use cases you might discover.
Graph databases mimic the pattern-matching functions of how the human brain maps the world through neurons (vertices) and synapses (edges). It’s this human-intuitive data model that makes graph technology so unique and powerful.
No matter what your enterprise’s core business is, it can be enhanced with the power of connected data.
Published at DZone with permission of Julia Astashkina. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments