Choosing the correct type of database is an important part of developing a new application. In our earlier publications, we have discussed about four common type of databases used in different data science related applications, which are Key-Value Database, Graph Database, Document-Oriented Database and Column-oriented Database. In addition, there is traditional RDMS, such as MySQL and the new varieties namely NewSQL and Time Series Database. Our comparison articles such as MySQL Versus NewSQL, MongoDB vs Cassandra, MongoDB versus MySQL are for delivering a practical idea to the new developers.
Graph databases are a type of Navigational Database. Navigational database as an entity is from the 70s era and the records or objects in the database are found by following references from other objects. When our application requiring to chase through records of different types, then the navigational database can meet the extreme performance requirements. Although the Graph Databases are officially NoSQL databases, they are not same like the rest. Graph Databases have stickier schemas than and hence dependent on the hard links. The semantic graph database is also referred to as an RDF triplestore. It is a nice tool for knowledge discovery. Only building/creating/establishing the relationships about data does not necessarily require a similarity computation algorithm. Many of the data models are interconnected nodes and expressible as graphs. We can easily translate such models in a graph database and navigate them quicker if we compare with a relational database. In a Graph Database, we expect persistence of the data. In most of the graph computational frameworks we have the data in memory. There are many use cases for which it is easier to model data as a network of relationships which connect different entities.
Graph Databases are not closest to the all-purpose solution. If the data under question looks like a table, then a relational model probably will be better. If the data looks like documents, then a document database such as MongoDB might be better. If the data looks like a map, then we may use a key/value database.
Graph databases probably superior for data modelling and performance in the correct use cases and avoid extremely expensive joins of a traditional relational database. Friends of a friend are never easily handled by MySQL, rather we handle it via coding and caching – a good example is the related article plugins in WordPress.