Ich   Entwicklung   Lösungen Apache PHP mySQL  
 

Motivation: warum Datenbanken?

Nehmen wir an, wir wollen unser Adressbuch online zur Verfügung stellen. Wir sind wichtig, deshalb haben wir Hunderte oder gar Tausende von Adressen gespeichert, wobei auch eine gewisse Fluktuation gegeben ist (man lernt immer wieder neue Freunde kennen und vergisst alte Bekannte). Da es so viele sind, wollen wir alle Adressen in mehrere Kategorien aufteilen: Freunde, Bekannte, Familie, Kommilitonen, Geschäftsfreunde, Kunden,...

Da wir dies im Internet verfügbar haben wollen, müssen wir es in einem verwendbaren Format speichern; Excel oder ähnliches fällt also weg. Wir können die Adressen deshalb erst einmal nur in einer Textdatei speichern.

Wir legen also für jede Kategorie eine Textdatei an, die in etwa so aussieht:

Jens Becker		Dorstfelder Hellweg 62	44149	Dortmund	jb@intermitto.net
Der Tester		Testmannsweg 11			44999	Bochum		test@intermitto.net
Ein Engel		Harfen-Allee 12			30000	Harfburg	engel@intermitto.net

PHP bietet Funktionen, mit der wir jetzt jede Zeile der Datei nacheinander auslesen und darstellen können. Da die einzelnen "Spalten" mit Tabulatoren getrennt sind, können wir sie auch mit PHP trennen. Es ist also ohne weiteres möglich, die Adressen auszulesen und wie folgt darzustellen:

Jens Becker Dorstfelder Hellweg 62 44149 Dortmund jb@intermitto.net
Der Tester Testmannsweg 11 44999 Bochum test@intermitto.net
Ein Engel Harfen-Allee 12 30000 Harfburg engel@intermitto.net

Es liesse sich sogar ein Formular schreiben, dass neue Adressen an das Ende der Datei anhängt.

Wofür dann eine Datenbank?

Angenommen, wir möchten jetzt eine der folgenden Funktionen hinzufügen:

  • die Adressen nach Name oder Ort sortiert ausgeben
  • Adressen löschen
  • Adressen selektieren zur weiteren Bearbeitung
  • alle Kategorien zusammen verwalten
    (der Einfachheit wegen und weil eventuell eine Adresse in mehreren Kategorien auftaucht)

Dann haben wir mit Textdateien ein Problem. Die Adressen nach einem Kriterium sortiert ausgeben ist so gut wie unmöglich (mit angemessenem Aufwand), denn die Adressen müssten erst einmal in ein Array eingelesen werden. Dort muss nach einem Kriterium sortiert werden, damit ein neues Array geschaffen werden, welches dann zur Augabe genutzt wird.
Das Löschen muss dann so laufen, dass die einzelnen Zeilen in ein Array eingelesen werden. Beim Löschen wird dann die komplette Datei gelöscht und aus dem Array (ohne die zu löschenden Werte) eine neue Datei erstellt. Dies ist nicht nur umständlich und unpraktisch, sondern auch gefährlich! Dasselbe muss zur Bearbeitung passieren, nur noch umständlicher.
Wenn wir alle Kategorien in einer Datei verwalten wollen, kommt dann noch eine erhebliche Mehrarbeit des Servers hinzu: er muss die komplette, riesige Datei einlesen, obwohl nur ein kleiner Teil davon genutzt wird.

Zusammengenommen haben wir folgende Probleme:

  • Belastung des Servers (Festplatte, Speicher und CPU)
  • es kann immer nur eine Person an der Datei arbeiten, sonst gibt es Datenverluste
  • Sortierung ist sehr programmieraufwendig
  • Löschen und Bearbeiten ist unpraktikabel
  • allgemein erfordern Text-Dateien mehr Programmierarbeit
  • alle Lösungen wären proprietär, Programm und Daten wären voneinander abhängig

Schön wäre es doch, wenn man die Daten in eine Tabelle eintragen könnte, um auf spezielle Felder zugreifen, nach bestimmten Kriterien suchen, eine Zeile oder Spalte erstellen oder Löschen zu können. Dies bietet uns eine Datenbank. Sie speichert unsere Daten strukturiert ab, so dass wir mit PHP einfach sagen können verrate mir doch bitte alle Nachnamen der Leute, die Freunde von mir sind und deren PLZ mit 44 beginnt.

Wie funktioniert eine Datenbank?

Wenn nicht mit Textdateien, wie sonst soll eine Datenbank funktionieren? Na, auch mit Textdateien. Allerdings sind diese bei einer Datenbank so gut strukturiert gespeichert und vor allem so brilliant verwaltet, dass die oben genannten Probleme gelöst sind. Ein Datenbank-Server ist also nur eine Schnittstelle, die Daten strukturiert speichert und liest und vor allem verwaltet.

Installation von mySQL weiter

URL: www.intermitto.net/mysql/motivation/?PHPSESSID=1c93db4ea2ed350e02c21751eb03c35c
© 2004-05 Jens Becker - intermitto.net v5.1
Letzte Änderung: 23.08.2005

Home - Kontaktformular - Downloads - Suche und Sitemap - Impressum
Entwicklung - Problemlösungen - Tutorials: Apache PHP mySQL

user  pass