Technik & Betrieb

Datenbank

Eine Datenbank speichert Daten strukturiert, damit sie schnell gefunden, geändert und ausgewertet werden können. Anders als eine Tabellendatei stellt sie sicher, dass mehrere Nutzer gleichzeitig arbeiten können, ohne sich zu überschreiben.

Redaktionell geprüft von Alexander SeidlertwentyonepixelsStand:

Der Unterschied zur Tabellenkalkulation

Viele Unternehmen führen ihre Daten in Tabellenblättern, und für kleine Mengen ist das völlig in Ordnung. Die Grenze ist erreicht, sobald mehrere Personen gleichzeitig schreiben, sobald Beziehungen zwischen Daten wichtig werden oder sobald es auf Verlässlichkeit ankommt.

Eine Datenbank löst genau das: Sie erzwingt Regeln – ein Auftrag braucht einen Kunden, ein Preis darf nicht leer sein –, sie verhindert, dass zwei gleichzeitige Änderungen sich gegenseitig überschreiben, und sie findet auch in Millionen Datensätzen den richtigen in Millisekunden.

Wann eine relationale Datenbank die richtige ist

Fast immer, wenn die Daten Beziehungen haben — Kunden, Aufträge, Positionen. Die Alternativen sind für Sonderfälle gebaut: sehr große Mengen gleichartiger Daten, sehr flexible Strukturen, sehr hohe Schreibraten. Diese Fälle sind im Mittelstand selten.

Der häufigste Fehler ist deshalb nicht die falsche Wahl, sondern eine vorschnelle: Wer mit einem Spezialsystem anfängt, weil es modern klingt, baut später Beziehungen von Hand nach, die eine relationale Datenbank mitgebracht hätte.

Woran Anwendungen tatsächlich langsam werden

An der Zahl der Abfragen, nicht an ihrer Komplexität. Eine Seite, die in einer Schleife für jeden Eintrag eine Abfrage stellt, kommt schnell auf hunderte — und ist damit langsamer als eine einzige, die alles auf einmal holt. Das ist der mit Abstand häufigste Befund.

Der zweite Befund ist fehlende Indexierung an einer Stelle, die mit den Daten gewachsen ist. Beides ist ohne Umbau zu beheben und macht in der Regel den größten Teil des Gewinns aus.

Was Sie als Entscheider davon wissen müssen

Zwei Dinge. Erstens: Ein sauberes Datenmodell zu Projektbeginn spart später ein Vielfaches. Nachträglich eine Struktur zu ändern, in der schon Daten liegen, ist aufwendig und riskant – deshalb lohnt sich die Zeit für diese Frühphase.

Zweitens: Sicherungen sind kein Nebenthema. Eine Datenbank ohne geprüftes Wiederherstellungsverfahren ist eine Sicherung, die es nicht gibt. Die Frage lautet nicht „Wird gesichert?", sondern „Wann wurde zuletzt erfolgreich zurückgespielt?".

Rechtsgrundlagen

Häufige Fragen zu Datenbank

Fünfzehn Jahre. § 87d UrhG lässt die Rechte des Datenbankherstellers fünfzehn Jahre nach der Veröffentlichung erlöschen, bei unveröffentlichten Sammlungen fünfzehn Jahre nach der Herstellung. Geschützt ist nach § 87a UrhG nur eine Sammlung, deren Beschaffung, Überprüfung oder Darstellung eine wesentliche Investition erforderte – und geschützt wird diese Investition, nicht der einzelne Datensatz. § 87b UrhG untersagt die Übernahme wesentlicher Teile; unwesentliche nur, wenn sie wiederholt und systematisch entnommen werden und das die normale Auswertung beeinträchtigt.

Eine Änderung innerhalb einer Transaktion wird zurückgenommen, eine ohne Transaktion bleibt halb stehen. InnoDB spielt beim Neustart das Redo-Log vor und rollt anschließend alle Transaktionen zurück, die beim Absturz nicht bestätigt waren – so steht es im MySQL-Referenzhandbuch 8.4 zur Wiederherstellung nach einem Absturz. Wer mehrere zusammengehörige Schreibvorgänge einzeln abschickt, bekommt diesen Schutz nicht: Buchung ohne Gegenbuchung, Auftrag ohne Position. Die Klammer setzt die Anwendung, nicht die Datenbank.

2.147.483.647 bei einem vorzeichenbehafteten INT, 4.294.967.295 ohne Vorzeichen – das sind die Höchstwerte aus Tabelle 13.1 des MySQL-Referenzhandbuchs 8.4. Danach weist die Datenbank jede neue Zeile mit einem Fehler ab, während Lesen und Ändern weiterlaufen; der Fehler trifft den Betrieb also ohne Vorwarnung. BIGINT UNSIGNED braucht vier Byte mehr je Zeile und reicht bis rund 18,4 Trillionen. Bei Tabellen mit laufend neuen Zeilen – Protokolle, Nachrichten, Messwerte – gehört er von Anfang an ins Modell.

Ein TIMESTAMP endet laut MySQL-Referenzhandbuch 8.4 am 19.01.2038 um 03:14:07 UTC, weil er die Sekunden seit 1970 in 32 Bit ablegt; ein DATETIME reicht bis zum Jahr 9999. MariaDB hat den TIMESTAMP-Bereich ab Version 11.5 auf den 07.02.2106 erweitert. Wer Vertragslaufzeiten, Wartungsfristen oder Garantien ablegt, überschreitet diese Grenze schon heute: 15 Jahre ab 2026 gerechnet enden 2041, also jenseits von 2038. DATETIME kennt dafür keine Zeitzone – die Anwendung muss sie mitführen.

Eine Datenbank kann eine eingeschmuggelte Anweisung nicht von einer gewollten unterscheiden. Sie führt aus, was ihr als SQL zugeht; ob der Text aus dem Programm oder aus einem Suchfeld stammt, erkennt sie nicht. SQL-Injection steht als CWE-89 seit 2020 in jeder Jahresliste der CWE Top 25 von MITRE. Vorbereitete Anweisungen mit Platzhaltern trennen Befehl und Wert und schließen die Lücke; das empfiehlt MITRE ausdrücklich. Eingeschränkte Datenbankrechte begrenzen nur den Schaden.

Mehr zum Thema

9 Min. Lesezeit

Rechnungen automatisch auslesen mit KI: was GoBD-konform ist

KI liest Rechnungen schneller als jeder Mensch – aber sie archiviert nicht, sie prüft nicht, und bei einer echten E-Rechnung ist sie überflüssig. Was je nach Belegart sinnvoll ist und was die GoBD verlangen.

9 Min. Lesezeit

E-Rechnung im Online-Shop: Was ab 2027 gilt und was nicht

Ab 2027 müssen Händler mit mehr als 800.000 Euro Vorjahresumsatz E-Rechnungen an Geschäftskunden ausstellen, ab 2028 alle. Welche Bestellungen im Shop betroffen sind, welches Format passt und wo die Umsetzung typischerweise hakt.

Alle Fachbeiträge ansehen

Passende Leistungen

Datenbank-Design & Optimierung

Durchdachtes Schema-Design, gezielte Indexierung und Performance-Tuning für PostgreSQL, MariaDB, MongoDB und Redis — für Datenbanken, die mitwachsen.

Mehr dazu

CRM/ERP-Integration

Salesforce, HubSpot, SAP und Co. per REST, Webhooks und ETL verbinden — Schluss mit doppelter Datenpflege und Medienbrüchen.

Mehr dazu