christova  

aws

#database #sql #nosql #acid #aws #azure #gcp

Here are steps to help you choose the appropriate database:

𝗨𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱 𝗬𝗼𝘂𝗿 𝗗𝗮𝘁𝗮 𝗥𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀

Analyze the nature of your data, including its structure, volume, and complexity. Determine if your data is structured (relational), semistructured (like JSON or XML), or unstructured (e.g., text, images). Consider the growth rate of your data and whether it's transactional or analytical.

𝗜𝗱𝗲𝗻𝘁𝗶𝗳𝘆 𝗬𝗼𝘂𝗿 𝗨𝘀𝗲 𝗖𝗮𝘀𝗲𝘀:

Define the specific use cases your application will have, such as read heavy, write heavy, complex queries, realtime analytics, or simple CRUD operations.

𝗦𝗰𝗮𝗹𝗮𝗯𝗶𝗹𝗶𝘁𝘆 𝗥𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀:

Determine if your application needs to scale horizontally (adding more servers) or vertically (upgrading server resources). Look at the database's ability to handle increased loads and traffic.

𝗗𝗮𝘁𝗮 𝗖𝗼𝗻𝘀𝗶𝘀𝘁𝗲𝗻𝗰𝘆:

Decide whether your application requires strict ACID (Atomicity, Consistency, Isolation, Durability) compliance or if eventual consistency is acceptable.

𝗤𝘂𝗲𝗿𝘆 𝗖𝗼𝗺𝗽𝗹𝗲𝘅𝗶𝘁𝘆:

Consider the types of queries your application will run and whether the database can efficiently handle them. Evaluate the indexing and querying capabilities.

𝐃𝐚𝐭𝐚 𝐌𝐨𝐝𝐞𝐥:

Choose between relational databases (SQL) and NoSQL databases based on your data structure and query requirements.

𝗖𝗼𝗺𝗽𝗮𝘁𝗶𝗯𝗶𝗹𝗶𝘁𝘆 𝘄𝗶𝘁𝗵 𝗧𝗲𝗰𝗵𝗻𝗼𝗹𝗼𝗴𝘆 𝗦𝘁𝗮𝗰𝗸:

Ensure that the selected database integrates well with your existing technology stack and frameworks.

𝗙𝘂𝘁𝘂𝗿𝗲 𝗚𝗿𝗼𝘄𝘁𝗵:

Think about the longterm scalability and growth of your application and whether the chosen database can accommodate future needs.

Based on my understanding, I've compiled a list of databases, which I've updated from the diagram initially provided by Satish Gupta. Please note that this list may not cover all databases, and I might have overlooked some. Additionally, there may be databases that can serve multiple use cases. The intention here is to categorise databases based on use cases or sql/nosql/newsql databases