NoSQL · Data models beyond tables
What is NoSQL and when is it a good fit?
Short answer
NoSQL is an umbrella term for databases that trade the relational model and some guarantees for flexible data shapes, horizontal scale, or specialised query models. It is a good fit when access patterns and scale are known.
NoSQL is not one technology. Document stores, key-value stores, wide-column stores and graph databases all fall under the label, and they solve different problems. The common thread is that they do not require a fixed relational schema and are usually designed to scale horizontally across many nodes.
{
"orderId": "ord_1042",
"customer": { "id": "cus_7", "name": "Asha" },
"items": [
{ "sku": "sku_1", "qty": 2, "price": 499 },
{ "sku": "sku_9", "qty": 1, "price": 1299 }
],
"status": "paid"
}What you gain and what you give up
- Gain: flexible documents, horizontal partitioning, and low-latency access by key
- Gain: data can be stored in the shape the application reads it
- Give up: joins, ad hoc queries, and strong multi-object guarantees in many systems
- Give up: the database rarely enforces relationships for you, so the application owns integrity
A good fit is a workload with known access patterns, high write or read volume, and data that naturally groups by an entity. A poor fit is a reporting system that needs arbitrary joins and changing questions, because every new query may require a new index or a data copy.
Follow-ups you should expect
Interviewers use these to check whether the first answer was understanding or memorisation.
- 1Does NoSQL always mean eventual consistency?
- 2What does horizontal scaling actually require from the data model?
- 3When would a relational database still be the better choice?
- 4What does schemaless really mean in practice?
Say it in the interview
NoSQL is an umbrella term, not a single database design. It covers document, key-value, wide-column and graph stores, and each makes different trade-offs. The shared idea is giving up the fixed relational model and some guarantees to gain flexibility or scale. I would choose it when I know the access patterns and the data groups naturally by an entity, and I would avoid it when the product needs arbitrary joins and fast-changing queries.
Use this as a model, not a script. Saying it in your own words is what makes it survive follow-up pressure.
Related questions
Reading is step one
Now say it out loud.
Understanding an answer and delivering it under pressure are different skills. Rehearse this topic in a live NoSQL mock interview and get scored feedback on depth, clarity and confidence.