SQL-Datenbank
Relationales Datenbankkonzept, das strukturierte Daten in Tabellen speichert und SQL zur Abfrage und Manipulation nutzt.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Fehlendes Index-Management führt zu Performance-Einbrüchen
- Unbedachte Schemaänderungen können Blockaden und Ausfallzeiten erzeugen
- Unsachgemäße Konfiguration erhöht Angriffsfläche und Datenverlust-Risiko
- Schema-Migrationen in kleinen, rücksetzbaren Schritten durchführen
- Indices basierend auf realen Abfrageprofilen pflegen
- Regelmäßige Backups und Wiederherstellungsübungen planen
I/O & Ressourcen
- Datenmodell / Schema-Definition
- Kapazitäts- und Performance-Anforderungen
- SLAs zu Konsistenz, Verfügbarkeit und Latenz
- Persistente relationale Datensätze
- Transaktionale Integritätsgarantien
- Schnittstellen (SQL) für Abfragen und Manipulation
Beschreibung
Eine SQL-Datenbank ist ein relationales Datenbanksystem, das strukturierte Daten in Tabellen speichert und SQL als Abfragesprache verwendet. Sie unterstützt Transaktionen, Integritätsregeln und relationale Modellierung. SQL-Datenbanken eignen sich für konsistente, relationale Daten, OLTP-Workloads und situationsabhängig auch für analytische Aufgaben. Ihre Auswahl beeinflusst Latenz, Skalierung und Betriebsaufwand.
✔Vorteile
- Starke Konsistenz durch ACID-Transaktionen
- Bewährte Abfragesprache (SQL) mit breiter Tool-Unterstützung
- Effiziente relationale Modellierung komplexer Geschäftsregeln
✖Limitationen
- Horizontale Skalierung kann komplex und teuer sein
- Starre Schemata erschweren schnelle, schemalose Iteration
- Nicht optimal für hochparallele, sehr verteilte Analytics ohne Anpassung
Trade-offs
Metriken
- Abfrage-Latenz (Median / P95)
Messung der Antwortzeit für typische Abfragen zur Beurteilung der Performance.
- Transaktionen pro Sekunde (TPS)
Anzahl abgeschlossener Transaktionen pro Zeiteinheit als Durchsatzkennzahl.
- Fehlerrate bei Transaktionen
Prozentsatz fehlgeschlagener oder zurückgerollter Transaktionen zur Zuverlässigkeitsbewertung.
Beispiele & Implementierungen
PostgreSQL in einer Web-Anwendung
PostgreSQL wird als primärer transaktionaler Store für Benutzer- und Bestelldaten eingesetzt.
MySQL als konfigurierbarer Metadatendienst
MySQL speichert systemweite Konfigurationen und Feature-Flags mit Replikation für Verfügbarkeit.
Oracle für kritische Geschäftsanwendungen
Oracle-Datenbank in einer Finanzanwendung mit strengen Integritäts- und Compliance-Anforderungen.
Implementierungsschritte
Anforderungen und Datenmodell spezifizieren
Schema und Indizes entwerfen
Produktionsinstanz bereitstellen und konfigurieren
Replikation, Backup und Monitoring einrichten
Migrations- und Rollout-Strategie testen
⚠️ Technische Schulden & Engpässe
Tech Debt
- Unstrukturierte Migrationsskripte ohne Versionskontrolle
- Fehlende oder veraltete Indizes in Produktivtabellen
- Monolithische Datenbank ohne klare Partitionierungsstrategie
Bekannte Engpässe
Beispiele für Missbrauch
- Einsatz einer SQL-Datenbank für hochparallele, verteilte Analytics ohne Anpassung
- Fehlende Transaktionslogik und manuelles Datenreparieren
- Ungetestete Sharding-Strategien in kritischen Pfaden
Typische Fallen
- Ignorieren von Sperrkonflikten bei gleichzeitigen Schreiboperationen
- Verlassen auf Defaults ohne Skalierungsprüfung
- Unzureichende Beobachtbarkeit für langsame Abfragen
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Vordefiniertes Schema erfordert Migrationsprozesse
- • Transaktionsisolation kann Parallelität einschränken
- • Regulatorische Anforderungen an Datenschutz und Auditing