Michael Schröpl: ich brauche eine Datenbank

Beitrag lesen

ich habe nur absolut keine Ahnung wo ich da anfangen muß um eine Datenbank (sql) zu erstellen und zu warten(records löschen, sortieren, etc.)

Wenn Du wirklich eine Datenbank verwenden willst, dann wirst Du in vielerlei Hinsicht umdenken müssen.
Die typischen Überraschungen sind nach meiner Erfahrung:

  • Alle Elemente einer Tabelle haben denselben Aufbau. Eine Datenbank ist wesentlich unflexibler als eine ASCII-Datei. Heterogene Daten in ein Geflecht voneinander abhängiger Tabellen zu überführen kann ganz schön kompliziert werden.
  • Eine Datenbank enthält Mengen. Nicht irgendwas Geordnetes, sondern Mengen im mehr oder weniger mathematischen Sinne. "Sortieren" ist beispielsweise überhaupt keine Operation, die man auf einer Menge ausführen kann. Man kann bei der *Ausgabe* einer Menge eine Sortierung mit anwenden, um die durch die Ausgabefunktion serialisierten Datensätze entsprechend anzuordnen, aber man kann beispielsweise nichts sortiert abspeichern - und das würde auch gar keinen Sinn machen, weil eine Sortierung die typischen Datenbankoperationen nicht überleben würde. Dafür wiederum sind Operationen wie Schnitt- oder Differenzmengenbildung in SQL trivial. Man sollte sich in Mengenlehre gut auskennen, um die eleganten Lösungen nicht zu übersehen - insbesondere ist fast alles, was man an algorithmischem Programmieren gelernt hat, in SQL völlig wertlos.
  • Irgendwie muß man einzelne Elemente einer Menge adressieren können. Sinnvollerweise macht man das über einen sogenannten Primärschlüssel, das sind ein oder mehrere Felder einer Tabelle, die zusammen die Eigenschaft haben, daß ihre Wertekombination nur maximal einmal auftreten kann. Eine Tabelle muß nicht unbedingt einen Primärschlüssel haben, aber es hilft in vielen Fällen.
  • SQL unterteilt sich in zwei Sprachen, die nur oberflächlich miteinander verwandt sind, nämlich die Datenbeschreibungssprache, welche zum Erzeugen, Vernichten usw. von Tabellen etc. dient, und die Datenmanipulationssprache, welche zum Bearbeiten von Tabellen etc. dient (hier finden dann Operationen wie Einfügen, Ändern, Löschen von Datensätzen statt). Es ist wichtig, beides auseinanderhalten zu können.

Datenbanken sind so ziemlich das Komplexeste, was mir bisher untergekommen ist. (Einen Webserver zu verstehen ist verglichen damit relativ trivial.) Man sollte sich gründlich überlegen, ob man wirklich eine Datenbank braucht.
Dafür aber leistet eine Datenbank bei wirklich hohen Anforderungen an Konsistenz und Performance Dinge, die man ohne sie ziemlich mühsam selbst programmieren müßte.