NoSQL
Umbrella term for non-relational databases that offer flexible data models, horizontal scaling and high performance for large data volumes.
NoSQL databases have revolutionised the database world. Where relational databases hit their limits, NoSQL solutions excel: with massive data volumes, flexible schemas and horizontal scaling. MongoDB, Redis, Cassandra and Neo4j are among the best-known options and have become essential in modern applications.
What is NoSQL?
NoSQL (Not Only SQL) is an umbrella term for database technologies that move away from the table-based structure of relational databases. There are four main types: document stores (MongoDB, CouchDB) store JSON-like documents; key-value stores (Redis, DynamoDB) offer very fast access by key; column-family stores (Cassandra, HBase) optimise column-based queries; graph databases (Neo4j, ArangoDB) model relationships. NoSQL databases typically give up fixed schemas and strict ACID transactions in favour of flexibility and scalability (BASE: Basically Available, Soft state, Eventually consistent).
How does NoSQL work?
NoSQL databases use sharding to spread data across multiple servers (horizontal scaling). Instead of complex JOINs, data is denormalised and stored together, speeding up reads. Replication provides high availability: data is copied to multiple nodes so that the failure of one server does not stop the system. The CAP theorem says a distributed system can guarantee only two of: Consistency, Availability, Partition Tolerance.
Practical Examples
MongoDB for content management: A media company stores articles with varying structures (text, video, gallery) in flexible JSON documents without a rigid schema.
Redis as cache and session store: An e-commerce shop uses Redis for session management and product caching with sub-millisecond response times.
Cassandra for IoT data: An energy provider stores billions of sensor readings per day in Cassandra, optimised for high write load and time-series data.
Neo4j for recommendations: A social network uses the graph database to analyse relationships and generate friend suggestions.
DynamoDB for serverless: A serverless application on AWS uses DynamoDB as a fully managed key-value store with automatic scaling.
Typical Use Cases
Big data and real-time analytics: Processing huge volumes with horizontal scaling
Content management: Flexible document structures for different content types
Caching and session management: Very fast data access for web applications
IoT and time-series data: Storing and querying billions of data points
Social and recommendation systems: Modelling and querying complex relationships
Advantages and Disadvantages
Advantages
- Horizontal scaling: Adding more servers for more capacity is straightforward
- Flexible schemas: Document structures can change without migration
- High performance: Tuned for specific access patterns (read, write, graph)
- Availability: Automatic replication and failover for high availability
- Developer-friendly: JSON documents and simple APIs ease integration
Disadvantages
- Limited transactions: Distributed ACID is harder than with SQL
- Less standardisation: Each NoSQL database has its own query language and API
- Data consistency: Eventual consistency can lead to inconsistent reads
- Learning curve: Different mindset from relational modelling
Frequently Asked Questions about NoSQL
When should you use NoSQL instead of SQL?
Can you use NoSQL and SQL together?
Is MongoDB the best NoSQL database?
Related Terms
Want to use NoSQL in your project?
We are happy to advise you on NoSQL and find the optimal solution for your requirements. Benefit from our experience across over 200 projects.