Advantages of Relational DB, Graph DB, and RGDB
Tags: apacheage, db, database, bitnine
Published: 2023-07-31 18:39:59

## Introduction to Relational DB & Graph DB
The relational DB and graph DB are the most popular databases known for their own respective strengths and unique characteristics. They are no more a subject of competition because one is not superior to the other.

The use of **relational DB** and **graph DB** depends on the characteristics and purposes of the data. The table structure of a relational DB is suitable for storing records of general information or uncomplicated relationships, which is why relational DBs are generally applied in accounting or bank cash transactions.

**Graph DB**, on the other hand, is most effective for relationship-oriented analysis of complex data. This helps data experts spot unexpected connection patterns. The best-known use cases for graph DBs include social media analytics, fraud detection, and real-time recommendation engines. Mapping relationships between data also has the advantage of being easily conveyed via separate visualization tools.

The two databases can offer different pros and cons in how they structure their relationships. **NoSQL**, a category in which the graph DB belongs, is an abbreviation of **“Not Only SQL”**, which means it does not replace the SQL of the relational DB but embraces it. The synergy effect of the graph DB optimized for data utilization and analysis along with the existing system brings new insights and reinforces decision-making for business processes.

It is necessary to understand the differences between the relational DB and graph DB before applying either one of them in a project. As mentioned above, the use of each DB depends on the purpose of use.


## Relational Database
A relational DB stores data in tables. A table is defined by having columns and rows. Each row is identified by a unique key that links to a row in another table, and each table contains a primary key that identifies information found within the table. Since they can be divided into the same exact schema, the relational DB is able to manage data accurately.

Additionally, the relational DB is divided into a logical structure of tables, a structure of physical storage. This allows data experts to make changes to the physical data structure without affecting the logical structure.

The relational DB requires additional tables containing information from existing tables to model the relationship with other tables. As shown in the image below, you can see a network of tables linked to analyze the products the customer has purchased.


![RDB](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/syummwq788wvex14t03z.png)

## Graph Database
While the relational DB can only manage structured data, the NoSQL databases are able to analyze semi-structured and unstructured data as well. These data are generally schema-less, hence the reason why relational DB struggles to manage them.


![GraphDB](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sbr4mz5ap7l2hs5uiwsn.png)

According to the trend chart from DB-Engines.com, the graph database is the most popular database in the NoSQL market. It is showing overwhelming growth in the market, which signifies the recognition of its future value. Gartner, one of the global market research institutes, predicts that by 2025, 80% of companies around the world will use the graph DB.


The basic components of a graph DB are as follows: 

**Node**: the main object of the graph. Similar to ‘row’ in RDB

**Edge**: expresses the relationship between objects. Similar to the ‘foreign key’ of RDB

**Label**: a property that groups similar nodes together

**Propertie**s: keys/values stored within a node or edge (relationship)


![Social Network in Graph](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rb7515t5g8ptxvwj5x3u.png)

In the social network graph shown above, everyone is represented by a single node labeled as `Person`. This node contains properties such as name, gender, location, and email. Relationships (edge) between people in that network are specified as `FRIENDS_WITH` with a time period of their friendship included as a property as well. A person node is also connected with a location node with an edge named, `LIVES_IN`.

 
The image above is a simple example, but it shows the general idea of how a relationship of data is expressed in the graph DB. Adding properties to some nodes can be done easily in a graph DB, so it gives data experts more flexibility when it comes to data modeling. The graph DB is able to extract values and retrieve meaningful insights for the analysts.

## Reference
- [Bitnine Global Inc](https://bitnine.net/blog-graph-database/relational-db-graph-db-rgdb/)

## Visit Bitnine and Apache AGE
- [Apache AGE official Website](https://age.apache.org)
- [Apache AGE Github Repo](https://github.com/apache/age)