Unless you need some kind of specific database such as OLAP, Graph or in memory.
You’ll usually end up using either sql or nosql database.
Both are valid choices, both have its strength and weaknesses.
Most popular sql database is postgreSQL.
It’s a powerful structured database that supports storing structured data, doing join on different tables, having materialized and non materialized views and many more.
However the traditional reason why choose sql db over no-sql one is that sql supports ACID. Your data state will remain consistent, there is no concept of eventual consistency.
And not to mention transactions and their rollback, another important sql db aspect.
SQL tables are famous for being highly productive, hence our allegory for bees.
No-sql databases are on the other traditionally optimized for high amount of writing.
They also, traditionally support writing your data in unstructured way.
Even though it’s not always true nosql databases are a part of just dump data in db and store it philosophy.
While in sql databases you should organize your data in a way that reads won’t constrain your system, nosql enforces certain policies which prevent you from messing up.
Traditionally in nosql there are no joins, you should group your data together.
The most popular nosql database is mongoDB, being followed by elasticsearch.
The nosql is famous for its un-parallel data flows, supporting concurrent writes, hence our 8 legged octopus allegory.
1. SQL hive
2. NoSQL ocean