The decision is whether to use a NoSQL database or a Relational Database that uses SQL.
In situations where you will be querying information across many types of data (eg "How many flights from LAX with more than 100 passengers departed more than 15 minutes late"), a relational database makes things much easier.
They can be slower, but queries are much easier to write. (For example, the above question could be done in one query.)
A NoSQL database is excellent when you need predictable performance (reads per second), but cannot join information across tables.
Once you have picked your database type, then you can choose the database engine. Amazon Relational Database Service (RDS) offers:
- MySQL (Open-source, low cost)
- Aurora (Cloud version of MySQL, much more performant)
- MariaDB
- Microsoft SQL Server (higher cost)
- Oracle (higher cost)
If in doubt, go with Aurora since it is more cloud-native and is fully compatible with MySQL. There is now a serverless version of Aurora that can automatically scale and even turn off when unused to lower costs.
As to flexibility of schemas, all SQL databases basically offer the same flexibility via ALTER TABLE
.