Why do we need databases?
When you build a web app, you need to store data that:
- Multiple users can access
- Stays available 24/7
- Can handle large amounts of data
Examples:
- User accounts and profiles
- Posts, comments, likes
- Products and orders
- Messages and notifications
How it works:
- Frontend sends request to API (like “get user profile”)
- API connects to database and runs a query
- Database returns the requested data
- API formats the data and sends response back to frontend

Example: When you log into a social media app:
- Frontend: “Get my profile data”
- API: “Database, find user with email ‘user@example.com’”
- Database: “Here’s the user data”
- API: “Frontend, here’s your profile”
Why not just use files?
- Files can’t handle multiple users writing at once
- Files don’t organise data for quick searching
- Files don’t ensure data stays consistent
Types of databases:
- SQL databases: Store data in tables (like spreadsheets). Most common for web apps.
- NoSQL databases: Store data as documents or key-value pairs. Good for flexible data.
- Graph databases: Store data as nodes and relationships. Good for social networks.
- Time-series databases: Optimised for time-based data. Good for analytics.
- In-memory databases: Store data in RAM for speed. Good for caching.
- Vector databases: Store data as vectors for AI/ML. Good for similarity search.
We’ll look at a SQL (Structured Query Language) database in the next lessons.