Was bedeutet Datenintegrität?
1. Referentielle Integrität
• Fremdschlüssel müssen auf existierende Primärschlüssel verweisen.
• Beispiel:
• KundenID in der Bestellungen-Tabelle muss in der Kunden-Tabelle existieren.
• Beim Löschen eines Kunden mit Bestellungen → entweder verhindern oder Bestellungen behandeln (löschen, auf NULL setzen).
2. Entitätsintegrität
• Primärschlüssel müssen eindeutig und nicht NULL sein.
• ProduktID in der Produkte-Tabelle muss für jedes Produkt eindeutig sein.
• Darf nie leer (NULL) sein.
3. Domänenintegrität
• Werte in einer Spalte müssen bestimmten Regeln/Formaten entsprechen.
• Preis-Feld: nur positive Zahlen erlaubt.
• E-Mail-Feld: muss ein gültiges E-Mail-Format haben.
Was sind ACID-Eigenschaften?
Gewährleisten Zuverlässigkeit und Sicherheit von Transaktionen in Datenbanken.
Eine Transaktion wird komplett oder gar nicht ausgeführt.
Keine Teilausführung möglich.
Beispiel: Geldüberweisung:
Abzug von Konto A ✅
Gutschrift auf Konto B ❌ → dann wird auch der Abzug rückgängig gemacht.
Datenbank bleibt vor und nach einer Transaktion in einem gültigen Zustand.
Alle Integritätsregeln werden eingehalten.
Beispiel: Nach einer Überweisung stimmen die Kontosalden, Regeln wie „kein negatives Guthaben“ bleiben erhalten.
Gleichzeitige Transaktionen beeinflussen sich nicht gegenseitig.
Jede Transaktion läuft, als wäre sie allein im System.
Beispiel: Zwei Benutzer ändern gleichzeitig denselben Lagerbestand → Änderungen werden sauber nacheinander verarbeitet.
Nach dem Commit bleiben Änderungen dauerhaft erhalten.
Auch bei Stromausfall oder Systemcrash gehen sie nicht verloren.
Beispiel: Nach einer bestätigten Überweisung ist das neue Guthaben sicher gespeichert – selbst bei Ausfall.
Was bedeutet Skalierbarkeit (Scalability)?
Fähigkeit der Datenbank, auch bei steigender Last leistungsfähig zu bleiben.
Datenbank muss mit mehr Daten oder mehr Benutzern zurechtkommen
Und das ohne starke Leistungseinbußen
Vertikale Skalierung (Scale Up)
Einzelnen Server aufrüsten: mehr CPU, RAM, Speicher
Beispiel:
MySQL-Datenbank wird auf leistungsstärkerem Server betrieben
Horizontale Skalierung (Scale Out)
Mehrere Server hinzufügen, die sich die Arbeit teilen
Einsatz von verteilten Datenbanken wie MongoDB oder Cassandra
Oder Sharding bei relationalen Datenbanken (Daten auf mehrere Instanzen aufteilen)
Was bedeuet Leistung?
Schnelle und effiziente Verarbeitung von Abfragen und Transaktionen – auch bei großen Datenmengen.
Daten sollen schnell abgerufen, gespeichert, geändert oder gelöscht werden – unabhängig von der Datenmenge.
Indizes
Schneller Zugriff auf Daten durch gezielte Indexierung wichtiger Spalten.
Index auf KundenID in der Bestellungen-Tabelle beschleunigt Suche nach Kundenbestellungen.
Abfrageoptimierung (Query Optimization)
Die Datenbank nutzt einen optimalen Ausführungsplan.
SQL-Abfrage ohne unnötige Joins, mit sinnvollen WHERE-Bedingungen.
Caching
Häufig genutzte Daten werden im Speicher gehalten (RAM), statt immer von der Festplatte zu lesen.
Pufferpools, die viel genutzte Datenblöcke im RAM speichern.
Was bedeutet Sicherheit?
Schutz der Daten vor unbefugtem Zugriff, Manipulation oder Verlust.
Sicherstellung von Vertraulichkeit, Integrität und Verfügbarkeit der Daten.
Authentifizierung
Identitätsprüfung der Benutzer
Benutzername + Passwort
Zwei-Faktor-Authentifizierung (2FA)
Autorisierung (Zugriffsrechte)
Festlegen, wer was sehen oder ändern darf
Kassierer: Nur Verkaufsdaten
Manager: Zusätzlich Berichte und Auswertungen
Verschlüsselung
Schutz der Daten bei Speicherung (at rest) und bei Übertragung (in transit)
Datenbankdateien auf Festplatte verschlüsselt
Kommunikation über SSL/TLS
Auditing / Logging
Protokollierung aller relevanten Datenbankaktivitäten
Aufzeichnung aller Änderungen an sensiblen Kundendaten
Was bedeutet Verfügbarkeit (Availability)?
Die Datenbank soll für berechtigte Benutzer jederzeit erreichbar sein – ohne längere Ausfälle.
Minimale Ausfallzeiten
Hohe Zuverlässigkeit durch technische Vorkehrungen
Replikation
Kopieren der Daten auf mehrere Server
Master-Slave-Replikation (z. B. MySQL)
Multi-Master-Replikation (z. B. Galera Cluster, Cassandra)
Failover-Mechanismen
Automatisches Umschalten auf Standby-Server bei Ausfall
Datenbank-Cluster
Cloud-Dienste wie AWS RDS Multi-AZ
Backups & Wiederherstellung
Regelmäßige Sicherungen zur Notfall-Wiederherstellung
Tägliche Voll-Backups + inkrementelle Backups
Speicherung auf externen Servern oder Cloudspeicher
Was bedeutet Flexibilität & Modellierungsoptionen?
Die Datenbank soll sich leicht an verschiedene Datenstrukturen und Anwendungsfälle anpassen lassen.
Unterstützung unterschiedlicher Datenmodelle
Anpassbarkeit an neue Anforderungen ohne großen Aufwand
Unterstützung verschiedener Datenmodelle
Kombination aus relationalen und NoSQL-Paradigmen
PostgreSQL speichert relationale Daten
Gleichzeitig auch JSON-Dokumente (z. B. mit JSONB, HStore)
Schema-Flexibilität
Einfache Änderungen am Datenmodell – auch während des Betriebs
Relationale DB: Neue Spalte hinzufügen mit ALTER TABLE ... ADD COLUMN
MongoDB: Dokument bekommt einfach ein neues Feld ohne Änderung am Schema
Was bedeutet Wartbarkeit & Manageability?
Die Datenbank sollte einfach zu verwalten, überwachen und warten sein – auch bei Problemen.
Ziel:
• Einfache Administration
• Gute Überwachung
• Schnelle Fehlerbehebung
Wichtige Merkmale:
Dokumentation & Community-Support
• Ausführliche Anleitungen und aktive Nutzer-Community
• Hilfe über Foren, offizielle Docs, Tutorials
Monitoring-Tools
• Werkzeuge zur Überwachung von Leistung und Stabilität
• Prometheus, Grafana, herstellereigene Tools
Automatisierte Aufgaben
• Routinen für Backups, Indexpflege, Performance-Tuning
• Skripte oder geplante Jobs zur Wartung
Benutzerfreundliche Tools (GUIs)
• Verwaltung über grafische Oberfläche
• phpMyAdmin, DBeaver, SQL Server Management Studio
Zuletzt geändertvor 14 Tagen