next up previous contents index
Next: theoretische Grundlagen Up: . Previous: .

Unterabschnitte


Vorwort

Diese Anleitung erklärt die Grundlagen einer Datenbank in Verbindung mit der Abfragesprache SQL und der Scriptsprache PHP. Dafür wird anhand eines Beispiels ein Datenmodell entwickelt, welches nachher auch umgesetzt wird. Mit einigen Beispielen wird versucht, die Theorie etwas aufzulockern.

Die Kenntnis der Sprache HTML wird vorausgesetzt. Wer nicht alles darüber weiß, kann sich unter [7] noch ein Nachschlagewerk besorgen. In dieser Anleitung werden im Prinzip keine HTML-Befehle beschrieben.

Diese Anleitung wurde ursprünglich für Scripte geschrieben, die auf dem Server der Sites http://ffm.junetz.de/ und http://of.junetz.de/ Verwendung finden. Sie kann aber auch für alle anderen Server benutzt werden, die nach dem LAMP[*]- oder WAMP[*]-Prinzip arbeiten, solange dabei etwaige Server-spezifische Besonderheiten außer acht gelassen werden.


Aktuelle Version / Download

Diese Anleitung wird ständig aktualisiert und verbessert (wenn ich es schaffe, den inneren Schweinehund zu überwinden). Weiterhin befindet sich unter http://reeg.net/ immer die aktuelle Version. Als Formate stehen PS, PDF und HTML (online und als ZIP) zum Herunterladen zur Verfügung.

Wenn Du Anregungen hast, was noch verbessert werden kann, würde ich mich über eine eMail an dsp@reeg.net sehr freuen.


Was ist das hier oder was ist es nicht?

Dieses Tutorial will die Grundlagen in Datenbankdesign, SQL und PHP vermitteln. Das Wissen sollte für normale und auch etwas aufwendigere Webseiten ausreichen. Wer allerdings Datenbanken mit Millionen von Einträgen oder Webpräsenzen mit mehreren hundert Seiten und tausenden von Abrufen pro Tag plant, sollte dies nur als Einführung sehen und sich Hilfe in Form eines Beraters besorgen.

Die Installation wird komplett weggelassen. Dazu gibt es neben den Beschreibungen in der Dokumentation auch etliche Webseiten, die das Thema ausführlich behandeln.

Im SQL- und PHP-Teil werden die grundlegen Befehle vorgestellt. Für eine ausführliche Befehlsübersicht müssen die Original-Anleitungen zu Rate gezogen werden.

Weitere Informationsquellen oder Hilfe

Wie oben schon gesagt, sollten zur Befehlsübersicht immer die Original-Anleitungen zu Rate gezogen werden. Die Anleitung von MySQL [4] gibt es nur in Englisch, diese ist aber sehr ausführlich und eignet sich auch als Einführung für SQL. Bei PHP [5] sieht die Sache etwas anders aus. Die Anleitung gibt es in verschiedenen Sprachen, auch wenn nicht alle komplett aus dem Englischen übersetzt wurden. Sie eignet sich nur dann zum Erlernen von PHP, wenn man schon vorher programmieren konnte und nur die neue Syntax lernen muß. Sie eignet sich aber auf jeden Fall als gutes Nachschlagewerk. Bei der (englischen) Online-Variante gibt es die Möglichkeit, Kommentare zu den einzelnen Seiten zu hinterlassen, die später auch in die Dokumentation eingebaut werden. Die Kommentare sind häufig sehr wertvoll, wenn die Dokumentation nicht ganz klar ist.

Eine weitere Informationsquelle sind die FAQs[*]. Die FAQ von MySQL [9] ist noch im Aufbau und deshalb noch nicht so ausführlich; sie enthält jedoch schon einige nützliche Informationen. Die PHP-FAQ [8] müßte eigentlich AFAPQ[*] heißen: Es gibt für fast jede erdenkliche Frage eine Antwort.

Neben der PHP-FAQ gibt es noch unzählige weitere Informationsquellen zu PHP (und häufig auch MySQL) im Internet. Gute Startpunkte dafür sind die PHP-Portale, wie z.B. [10] oder [11]. Nimm dir einfach mal einen Abend frei und surf los. Wenn du Glück hast, findest du das, was du selbst programmieren wolltest, schon irgendwo fertig oder zumindest Teile davon.

Trotz ausführlicher Anleitungen kann es einem passieren, daß man an der ein oder anderen Stelle nicht weiterkommt. Für solche Fälle gibt es Newsgroups und Mailinglisten im Internet, wo andere Leute in ihrer Freizeit versuchen zu helfen. Die Mailingliste zu MySQL findet sich auf der MySQL-Homepage [4] unter ,,Documentation``; die deutschsprachige Newsgroup heißt ,de.comp.datenbanken.mysql`. Zu PHP gibt es gleich mehrere Mailinglisten in Englisch, die sich auf der PHP-Homepage [5] unter ,,support`` finden. Die deutsche Mailingliste wird vom PHP-Center [10] betrieben. Die Newsgroup zu PHP heißt ,de.comp.lang.php`. Auch wenn man keine aktuellen Probleme hat, kann es sich lohnen, mitzulesen.

Unterteilung

Dieses Dokument ist in verschiedene Teile unterteilt. Die ersten drei derselben können auch einzeln für sich gelesen werden.

Erster Teil

Im ersten Abschnitt dieses Teils der Anleitung soll geklärt werden, was eine Datenbank ist, sowie, was mit Begriffen wie DB, DBS oder DBMS gemeint ist und wo die Unterschiede liegen.

Dieser Teil ist nicht existentiell, um nachher Datenbanken zu entwickeln, allerdings sollte man es sich schon einmal durchlesen, und sei es nur, um einmal die Begriffe gehört zu haben ;-).

Wenn wir dann wissen, was eine DB ist, kommen wir zu der Frage, wie man aus einer Aufgabenstellung die passenden Datenstrukturen entwickelt. Dieser Teil ist für alle die, die die Datenstrukturen noch entwickeln müssen, besonders wichtig, weil man sich sonst viel Ärger einhandeln kann. Wer lediglich mit schon vorhanden Datenstrukturen arbeiten muß, kann diesen Teil überspringen, obwohl er eigentlich sehr interessant ist ;-)).

Zweiter Teil

Nachdem wir uns dann im ersten Teil schon einige Zeit mit der Datenstruktur beschäftigt haben, wird es langsam einmal Zeit, unsere Kenntnisse am Computer zu testen.

Als DBMS benutzen wir `MySQL`, das als Abfragesprache SQL[*] benutzt. SQL ist eine nach bestimmten Normen festgelegte Sprache, die von der Mehrheit der Relationalen DBS[*]benutzt wird; dazu zählen unter anderem: PostgreSQL, IBM DB2, Oracle, Adabas-D, MySQL, mSQL, Informix und Gupta.

Im Prinzip ist SQL standardisiert, allerdings unterstützen nicht alle Hersteller den kompletten Standard und jeder hat seine eigenen Erweiterungen. Soweit nicht explizit angegeben, sollten die in dieser Anleitung benutzten Befehle dem Standard entsprechen und auch mit anderen Datenbanken verwendet werden können.

All diejenigen, die mit Datenbanken arbeiten wollen, müssen diesen Teil vollständig verstanden haben - andernfalls kommen sie später mit Sicherheit stark ins Schleudern.

Du mußt übrigens nicht jeden Befehl auswendig kennen; viel wichtiger ist, daß Du weißt, wo Du nachschlagen mußt.

Dritter Teil

In diesem Teil wird die Scriptsprache PHP beschrieben. Mit ihr kann man sehr viel mehr machen als nur Datenbanken abzufragen, wobei der Schwerpunkt hier natürlich auf der Datenbankabfrage liegt. Wer mehr über diese Sprache lernen will, sollte sich einfach die Original-Dokumentation zu Gemüte führen.

PHP gibt es seit kurzem in der Version 4. Bis alle umgestellt haben, wird jedoch sicherlich noch einige Zeit lang PHP3 sehr weit verbreitet sein. Im Prinzip sollten alle PHP3-Scripte auch unter PHP4 laufen. Soweit nicht anders angegeben, sind die Befehle, die in dieser Anleitung verwendet werden, sowohl unter PHP3 als auch unter PHP4 verwendbar. Wenn ein Befehl erst in PHP4 hinzu gekommen ist, wird dies explizit erwähnt (sofern ich es nicht vergessen habe ;-)).

Dieser Teil ist unbedingt notwendig, um in PHP programmieren zu können und sollte deshalb verstanden worden sein. Das soll nicht heißen, daß Du jeden Befehl auswendig kennen mußt, sondern nur, daß Du im Zweifelsfall weißt, wo Du nachschlagen mußt.

Vierter Teil

Hier werden ein paar Beispiele vorgestellt, in denen meines Erachtens Konstrukte benutzt werden, auf die man nicht immer auf Anhieb kommen würde. Hoffentlich helfen sie Dir. Sollte noch etwas fehlen: Meine eMail-Adresse kennst Du ja. ;-)

Ein paar der Beispiele sind auch unter http://reeg.net/ in Aktion zu sehen (wenn ich es endlich mal schaffe, sie zu programmieren :-( ).

Typographische Konventionen

Um die Übersichtlichkeit zu erhöhen, werden einige Sachen hervorgehoben. Die folgende Liste zeigt, auf welche Weise was hervorgehoben wird:


Tabelle 1.1: Typogr. Konventionen
Wie Was Beispiel
kursiv Internet-Adressen Wenn Du Anregungen hast, dann schreib mir doch eine eMail an dsp@reeg.net
in einfachen Anführungszeichen Bezeichnungen, Namen Wir benutzen hier `mySQL` und `PHP`.
in doppelten Anführungszeichen Werte Wenn die Variable Tag den Wert ,,13`` und die Variable Monat den Wert ,,Mai`` annimmt, hat ein wichtiger Mensch Geburtstag
nicht-proportionale Schriftart Befehle bzw. Teile davon Zum Mail-Lesen wird auf Unix-Maschinen der Befehl rm (read mail) benutzt. Es gibt noch die Optionen -rf (really fast), da geht das dann noch schneller. Um alle Mails zu lesen, muß man rm * eingeben (auf eigene Gefahr!).
fett besonders wichtige Dinge, Hervorhebungen, Spalten-Bezeichnungen Der Befehl rm bedeutet nicht ,,read mail``, sondern remove. Und -rf steht für recursive und force.



next up previous contents index
Next: theoretische Grundlagen Up: . Previous: .
Christoph Reeg(http://reeg.net/)