Introduction to graph databases

As mentioned in this chapter's introduction, relational databases do not provide a good enough answer for the actual software development and data challenges. In today's world, you need to be fast; faster than the others. This means that data is created, updated, and changed faster than ever. Relational databases are inert and are not designed to handle fast changes and meet new business requirements as well as agile development. Handling changes in relational databases is too expensive and too slow. Achieving scalability and elasticity is also a huge challenge for relational databases. Nowadays, changes occur frequently, and data modeling is a huge challenge: you only partly know the necessary requirements and you have less time for development and deployment than ever. Furthermore, relational databases are not suitable for processing highly related and nested data or hierarchical application objects.

To handle tremendous volumes of data as well as a variety of data and to achieve scalability, in recent years, companies have started to use NoSQL-based database solutions. They usually belong to one of the following four categories:

  • Key-value store: It is the simplest and most flexible NoSQL model. Every item in the database is stored as a key, together with its value. It is very performant, easy to scale out, and good for high availability. Examples are: Redis, Berkeley DB, and Aerospike.
  • Document store: It stores a complex data structure for each key (document). Documents can contain many different key-value pairs, key-array pairs, or even nested documents. Examples are: Micosoft Azure DocumentDB, MongoDB, ElasticSearch, and CouchDB.
  • Wide-column store: It stores tables as sections of columns of data rather than as rows. It can be described as a two-dimensional key-value store. Multiple columns are supported, but you can have different columns in each row. Examples are: Cassandra and HBase.
  • Graph databases: They are the most complex NoSQL systems and store both entities and relations between them. Examples are: Neo4J, Azure Cosmos DB, OrientDB, FlockDB, DSE Graph, and so on.

Before starting with graph databases, let's have a very brief introduction to graph theory.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.223.108.119