When discussing databases in a system design interview, which type is the obvious choice for product design? What about system design?
In general, it can vary, but relational is probably preferred for product; non relational for system design.
What is a relational database and why should you use one?
A database that stores data in tables, rows, and columns and requires a well defined schema. Generally they are transactional and have strong consistency guarantees.
If you have well defined schemas, require strong consistency (via ACID), they are good choices.
What’s a non relational database? When might those be good choices?
It’s an open-ended term for non-SQL databases (they can come in many forms). They typically have a flexible data model and scale well (due to eventual consistency via BASE).
What is blob storage? When should you use it?
Blob storage is when you need to store large, unstructured data (e.g. images, videos, etc.).
What are some features of blob storage?
It’s typically highly durable, scalable, cost-efficient, and efficient (re: uploads/downloads).