Eine Datenbank ist der Ort, an dem deine App ihre Daten dauerhaft speichert. User-Accounts, Bestellungen, Notizen, Chats – alles, was nach einem Refresh noch da sein soll, lebt in einer Datenbank. Ohne Datenbank kann eine App nichts erinnern.
Datenbanken laufen auf Servern, sind über das Backend erreichbar und werden meist nicht direkt vom Frontend angesprochen (Sicherheitsgründe). Anbieter wie Supabase, Neon, PlanetScale oder Firebase bieten verwaltete Datenbanken, sodass du dich nicht selbst um Backups, Skalierung und Updates kümmern musst.
Wie funktioniert eine Datenbank?
Es gibt zwei große Familien:
SQL / Relationale Datenbanken speichern Daten in Tabellen mit festen Spalten – wie ein hochgezüchtetes Excel. Tabellen können miteinander verknüpft sein. Standard-Sprache ist SQL (SELECT * FROM users WHERE email = '...').
- PostgreSQL – mächtigste Open-Source-Datenbank, der 2026er Standard
- MySQL / MariaDB – sehr verbreitet, etwas einfacher
- SQLite – läuft ohne Server, perfekt für kleine Apps
NoSQL / Dokument-Datenbanken speichern Daten als JSON-Dokumente, Schemas sind flexibel.
- MongoDB – verbreitete Dokument-Datenbank
- Firebase Firestore – Google, viel im Mobile-Bereich
- DynamoDB – AWS, hochskalierbar
Für 95 % aller neuen Projekte ist PostgreSQL die richtige Wahl. Es ist mächtig, schnell, kann auch JSON, hat starke Tooling-Unterstützung und ist in Supabase, Neon und Railway sofort einsatzbereit.
Wofür brauchst du eine Datenbank?
- User-Accounts – Email, Passwort-Hash, Name, Avatar
- App-Daten – Notizen, Tasks, Bestellungen, Beiträge
- Beziehungen – welcher User hat welche Bestellungen
- Audit-Logs – wer hat was wann geändert
- Statistiken und Reporting
- Vector-Embeddings für KI/RAG (über pgvector in Postgres)
- Realtime-Features – Postgres + Supabase pushen Änderungen live ans Frontend
Datenbank und VibeCoding
Datenbank-Schema-Design ist eines der ersten Dinge, die du beim Bauen einer App brauchst. Mit Claude Code beschreibst du dein Datenmodell ("User, Posts, Comments, mit Likes pro Post"), Claude generiert SQL-Migrations und TypeScript-Typen.
Mit Supabase wird es noch komfortabler: Du legst Tabellen im Web-UI an, schreibst Row-Level-Security-Policies in SQL und Supabase generiert daraus automatisch eine REST-API + Realtime-Subscriptions. Dein Frontend spricht direkt mit der Datenbank – sicher, weil RLS jede Zeile filtert.
Wichtige Konzepte für Anfänger:
- Primary Keys – jede Zeile hat eine eindeutige ID
- Foreign Keys – Verknüpfungen zwischen Tabellen
- Indizes – machen Abfragen schnell
- Migrations – versionierte Änderungen am Schema (über Drizzle, Prisma oder Supabase CLI)
- ORM – Object-Relational-Mapper wie Drizzle oder Prisma, die SQL für dich generieren
Empfehlung
- Standard-Stack 2026: PostgreSQL via Supabase oder Neon
- ORM für Next.js: Drizzle (modern, leichtgewichtig)
- Vector-Datenbank für KI: pgvector in Postgres, oder Pinecone/Weaviate
- Lokale Entwicklung: Supabase CLI mit Docker