Rheinwerk Design < openbook > Rheinwerk Design - Know-how für Kreative.
Know-how für Kreative

Inhaltsverzeichnis
1 Einleitung
2 Projektablauf für die Buchwebsite
3 Programmgrundlagen
4 Dreamweaver erweitern
5 Eine Site erstellen
6 Grundlegende Dokumenteinstellungen
7 Tabellen in Dreamweaver
8 Bilder im Web
9 Framesets
10 Aktionen
11 Die Zeitleiste
12 CSS in Dreamweaver
13 Ebenen
14 Hyperlinks
15 Vorlagen und Bibliotheken
16 Formulare
17 Quelltext de Luxe
18 Dreamweaver und Flash
19 Office-Daten einfügen
20 Dynamische Websites – eine Einführung
21 Einführung in PHP
22 Lokalen Webserver installieren
23 Dynamische Sites in Dreamweaver einrichten
24 MySQL-Grundlagen
25 Datenbanken mit Dreamweaver anbinden
26 PHP und Dreamweaver
27 Datenbanken abfragen
28 Daten einfügen und dynamische Formulare
29 Datensätze bearbeiten
30 Benutzer authentifizieren und Zugriffsrechte festlegen
31 Fortgeschrittene Techniken
32 Dreamweaver 8 und XML
33 Menüs für dynamische Verhalten
Stichwort
Ihre Meinung?

Spacer
 <<   zurück
Dreamweaver 8 von Richard Beer, Susann Gailus
Webseiten entwickeln mit HTML, CSS, XML, PHP und MySQL
Buch: Dreamweaver 8

Dreamweaver 8
mit CD
639 S., 39,90 Euro
Rheinwerk Design
ISBN 978-3-89842-739-5
gp 24 MySQL-Grundlagen
  gp 24.1 Einführung in Datenbanken
    gp 24.1.1 Relationale Datenbanken
    gp 24.1.2 Relationstypen
    gp 24.1.3 Primärschlüssel
    gp 24.1.4 Redundanzfreiheit
    gp 24.1.5 Prozessdatenfreiheit
    gp 24.1.6 Fremdschlüssel
    gp 24.1.7 Referenzielle Integrität
    gp 24.1.8 Endlosschleifen
    gp 24.1.9 MySQL-Datentypen
  gp 24.2 Erstellen einer MySQL-Datenbank
    gp 24.2.1 MySQL-Datenbank mit phpMyAdmin anlegen
    gp 24.2.2 Einfügen von Datensätzen
    gp 24.2.3 Import von Datendateien
    gp 24.2.4 Export von Daten zum Provider
  gp 24.3 MySQL und Microsoft Access
  gp 24.4 Benutzerverwaltung mit MySQL
  gp 24.5 Einführung in SQL
    gp 24.5.1 Daten abfragen mit SELECT
    gp 24.5.2 Datensatz abfragen mit WHERE
    gp 24.5.3 Datensatz sortieren mit ORDER BY
    gp 24.5.4 Datensatz aktualisieren mit UPDATE
    gp 24.5.5 Datensatz löschen mit DELETE
    gp 24.5.6 Datensatz einfügen mit INSERT
  gp 24.6 Datenstruktur der Buchwebsite
    gp 24.6.1 Datenstruktur der Website
    gp 24.6.2 Primärschlüssel festlegen

24 MySQL-Grundlagen

MySQL ist die Datenbank unserer Wahl. Die meisten Provider bieten diese Datenbank in Kombination mit PHP als Service an. Wir zeigen Ihnen den richtigen Umgang mit MySQL.

MySQL ist in der Standardversion kostenlos erhältlich und sehr leistungsfähig. Zu einer Datenbank gehören das Datenbanksystem und eine Möglichkeit, diese abzufragen. Die Abfrage erfolgt mit einer eigenen Sprache, kurz SQL (Structured Query Language) genannt. SQL ist sehr einfach gehalten, eine kurze Einführung gibt es am Ende dieses Kapitels. Die Arbeit an unserer Buchwebsite sollte damit kein größeres Problem darstellen.


Rheinwerk Computing

24.1 Einführung in Datenbanken  downtop

Bevor wir eine Datenbank abfragen können, muss sie zunächst angelegt werden. Wir können hier nicht sehr tief in diese Thematik einsteigen, das würde den Rahmen des Buches sprengen. Bei Galileo Press gibt es einige sehr gute Bücher zum Thema MySQL, die wir nur empfehlen können. Wir wollen uns in erster Linie auf die Anbindung von MySQL in Dreamweaver 8 konzentrieren.

Dennoch sind einige kurze Erläuterungen an dieser Stelle notwendig. Sehr vereinfacht gesagt besteht eine Datenbank aus folgenden Komponenten:

  • ein Data Base Management System, das sie verwaltet
  • die Datenbank selbst
  • Tabellen, die sich in den Datenbanken in beliebiger Anzahl befinden
  • Datensätze in Tabellen (jeder einzelne Datensatz wird als Tupel bezeichnet)
  • Datenfelder in den Tabellen

Abbildung 24.1 zeigt, wie diese Komponenten zusammenhängen.

Abbildung 24.1 Allgemeiner Aufbau einer Datenbank


Rheinwerk Computing

24.1.1 Relationale Datenbanken  downtop

MySQL und fast alle anderen modernen Datenbanken sind so genannte relationale Datenbanken. Diese bestehen aus den eben beschriebenen Tabellenstrukturen und Beziehungen (Relationen) zwischen den einzelnen Tabellen. Betrachten Sie Abbildung 24.2. In den Tabellen gibt es zunächst keine Verbindung zwischen Kunden und Produkten.

Abbildung 24.2 Eine einfache Datenstruktur für ein Shopsystem

Wir möchten erreichen, dass jeder Kunde Bestellungen ausführen und dabei beliebige Produkte bestellen kann. Diese bestellten Produkte sollen den Kunden zugeordnet werden können. Man könnte jetzt der Kundentabelle ein weiteres Feld für Bestellungen hinzufügen und die Produktbezeichnung darin abspeichern. Wenn der Kunde jedoch mehrere Produkte oder eines mehrfach bestellt, müsste für jeden Bestellvorgang ein weiteres Datenfeld angefügt werden. Dieses müsste für alle Kunden angelegt werden, da Felder immer in allen Datensätzen einer Tabelle erscheinen. Das wäre somit ziemlich umständlich.

Eine einfachere und bessere Lösung bietet das relationale Modell, das wir in Abbildung 24.3 skizziert zu haben.

Abbildung 24.3 Relationale Datenbank mit Tabellen in der Relation n:m

Beziehungen herstellen | Es wird eine dritte Tabelle geschaffen, um die Beziehung zwischen den beiden anderen Tabellen zu definieren. In unserem Beispiel wird für jeden neuen Bestellvorgang ein neuer Datensatz angelegt. In diesem werden die Bestellnummer, die Kunden-ID und die Produkt-ID hinterlegt. Der Vorteil dieser Methode ist die wesentlich höhere Flexibilität. Für jede neue Beziehung zwischen Tabellen können Sie eine weitere Tabelle anlegen und bei Bedarf auch wieder löschen. An den eigentlichen Hauptdatensätzen muss keine Veränderung stattfinden.


Rheinwerk Computing

24.1.2 Relationstypen  downtop

Es gibt drei verschiedene Arten von Relationen.

  • n:m-Beziehungen: In unserem Beispiel bilden die Tabellen diese Art der Beziehung. Jeder Datensatz einer Tabelle kann mit beliebig vielen Datensätzen einer anderen Tabelle eine Beziehung bilden.
  • 1:1-Beziehungen: Diese Beziehung definiert, dass jeder Datensatz einem anderen Datensatz zugehörig ist bzw. sein darf.
  • 1:n-Beziehungen: Bei dieser Beziehung kann ein Datensatz mit beliebig vielen (n) Datensätzen einer anderen Tabelle verbunden sein, aber nicht umgekehrt.

Rheinwerk Computing

24.1.3 Primärschlüssel  downtop

Um mit relationalen Datenbanken zu arbeiten, müssen Datensätze eindeutig definiert sein. Das erreicht man mit einem Primärschlüssel.

Primärschlüssel angeben | Der Primärschlüssel ist eine Zahl, die automatisch beim Anlegen eines neuen Datensatzes hoch gezählt (auto-inkrementiert) und mit dem jeweiligen Datensatz gespeichert wird.

Ein Feld in einer Datenbank muss eindeutig als Primärschlüssel ausgewiesen werden. In unserem Beispiel sind die Datensätze Kunden_ID, Produkt_ID und Bestell_ID die Primärschlüssel. Für die Bestimmung von Primärschlüsseln sind folgende zwingende Vorgaben zu beachten:

  • Primärschlüssel müssen immer einen Inhalt haben.
  • In jeder Tabelle wird nur ein Feld als Primärschlüssel deklariert.
  • Vom Primärschlüssel darf es keine Duplikate geben.

Rheinwerk Computing

24.1.4 Redundanzfreiheit  downtop

Damit die eben erwähnten Bedingungen erfüllt werden, muss sichergestellt werden, dass jeder Datensatz nur einmal vorkommt. Die dabei häufigste Fehlerquelle ist mit großem Abstand der Mensch. Schnell wird der Kunde Maier noch einmal als Mayer oder Meier gespeichert, und die Eindeutigkeit ist verloren. Wenn zu erwarten ist, dass solche Probleme auftreten, müssen Sie bereits bei der Eingabe Vorkehrungen treffen, indem Sie zum Beispiel identische Namen, Adressen etc. überprüfen.


Rheinwerk Computing

24.1.5 Prozessdatenfreiheit  downtop

Vermeiden Sie unter allen Umständen das Abspeichern berechneter Werte. Nehmen Sie als Beispiel einen Kunden, und Sie möchten sein Alter als Datensatz hinterlegen. Wenn Sie jetzt sein Alter real abspeichern, zum Beispiel 40 Jahre, stimmt dieser Wert nächstes Jahr bereits nicht mehr. Hinterlegen Sie in diesem Fall das Geburtsdatum, und errechnen Sie das Alter außerhalb der Datenbank immer aufs Neue. Prozessdaten gehören nicht in eine Datenbank!


Rheinwerk Computing

24.1.6 Fremdschlüssel  downtop

In der Tabelle für den Bestellvorgang finden sich die Inhalte der Primärschlüssel aus den beiden anderen Tabellen wieder. Diese eingefügten Werte aus Primärschlüsseln dritter Tabellen bezeichnet man als Fremdschlüssel. Fremdschlüssel bilden die eigentliche Beziehung der Tabellen zueinander.


Rheinwerk Computing

24.1.7 Referenzielle Integrität  downtop

Aus Relationen kann sich allerdings auch ein Problem ergeben. Stellen Sie sich vor, ein Kunde hat 100 Bestellungen über einen längeren Zeitraum aufgegeben. Nun wird eines der Produkte gelöscht oder der Preis verändert. Der erste Fall, die Löschung, würde eine Anfrage mit einem Verweis auf ein nicht mehr vorhandenes Produkt ergeben. Im zweiten Fall, der wesentlich fataler ist, würde eine nachträgliche Kundenumsatzberechnung völlig falsche Ergebnisse liefern. Die Gewährleistung, dass solche Fehler nicht auftreten, nennt man referenzielle Integrität.

Fehler wie der geschilderte sind unter allen Umständen zu vermeiden, und durch entsprechende Programmierung ist Abhilfe zu schaffen. Das ist jedoch ein sehr komplexes Thema. Leider bietet MySQL keine integrierte Unterstützung dafür an, und Sie müssen sich mit Workarounds in PHP behelfen.

Bei einem WCMS spielt dies keine große Rolle. Wenn Sie jedoch ein Shopsystem mit Bestellverwaltung programmieren wollen, sehr wohl. Das ist auch einer der Gründe, warum wir Anfängern vor dem Programmieren eines Shopsystems nur warnen können.


MySQL 5.0 unterstützt Trigger
Trigger sind programmierbare Automatismen, um Bezüge von Datensätzen zu überprüfen und um die referenzielle Integrität sicherzustellen. Da MySQL 5.0 gerade erst (Stand Oktober 2005) neu erschienen ist, können wir auf diese komplexe Thematik hier nicht eingehen und verweisen auf die Dokumentation und geeignete Fachliteratur.


Rheinwerk Computing

24.1.8 Endlosschleifen  downtop

Im Bereich dynamischer Menüführung tritt ein weiteres Problem auf. Möchten Sie in Ihrem CMS die Menüpunkte frei definieren und beliebig zuweisen, kann es vorkommen, dass sich folgendes Szenario abspielt:

  • B ist ein Unterpunkt von A
  • C ist ein Unterpunkt von B
  • A ist ein Unterpunkt von C

Weil A aber einen Unterpunkt hat, nämlich B, würde eine Abfrage nie zu einem Ergebnis kommen, sondern immer im Kreis laufen.

Abbildung 24.4 Endlosschleife von A nach B nach C

Solche Fehler müssen vermieden werden. Die einfachste Möglichkeit dafür ist, die Anzahl der Schleifendurchläufe zu ermitteln und nach einem einzigen Durchlauf zu stoppen. Ansonsten werden die Datensätze unendlich oft ausgegeben.


Rheinwerk Computing

24.1.9 MySQL-Datentypen  toptop

Jedem einzelnen Datenfeld, wie z. B. name, muss ein bestimmter Datentyp zugeordnet werden. Dieser soll dem Inhalt des Feldes möglichst entsprechen. Die exakte Datendefinition ermöglicht es, die Datenbank nicht größer werden zu lassen als nötig, da jeder Feldinhalt einen durch den Datentyp definierten Speicherplatz benötigt. Weiterhin werden Fehler durch nicht eindeutige Datentypen vermieden.

Mit der Definition des Datentyps wird etwa definiert, ob eine 1 als eine Zahl oder ein Zeichen behandelt werden soll. Wenn Sie ein Feld als Zahl definieren, können darin keine abweichenden Zeichen wie Buchstaben oder Symbole gespeichert werden.

MySQL unterstützt die Datentypen aus der folgenden Tabelle:


Zahlenformate

TINYINT

  • ganze Zahl
  • 1 Byte

SMALLINT

  • ganze Zahl
  • 2 Byte

MEDIUMINT

  • ganze Zahl
  • 3 Byte

INT

  • ganze Zahl
  • 4 Byte

BIGINT

  • ganze Zahl
  • 5 Byte

FLOAT

  • Fließkommazahl
  • einfache Genauigkeit
  • 4 Byte

DOUBLE

  • Fließkommazahl
  • doppelte Genauigkeit
  • 8 Byte

DEZIMAL

  • Festkommazahl
  • mit z. B. zwei Nachkommastellen
Zeichenformate

VARCHAR (n)

  • Zeichenkette mit fester Länge
  • n ist die Anzahl der Zeichen (max. 255)
  • flexibler Speicherbedarf je nach tatsächlicher Zeichenanzahl

CHAR (n)

  • Zeichenkette mit fester Länge
  • N ist die Anzahl der Zeichen (max. 255)
  • fester Speicherbedarf

TINYTEXT

  • Textfeld
  • 255 Zeichen

MEDIUMTEXT

  • Textfeld
  • 2^24 – 1 Zeichen

TEXT

  • Textfeld
  • 2^16 – 1 Zeichen

LONGTEXT

  • Textfeld
  • 2^32 – 1 Zeichen
Binäre Datentypen

BLOB

  • binäre Datentypen
  • 2^16 – 1 Zeichen

TINYBLOB

  • binäre Datentypen
  • 255 Zeichen

MEDIUMBLOB

  • binäre Datentypen
  • 2^24 – 1 Zeichen

LONGBLOB

  • binäre Datentypen
  • 2^32 – 1 Zeichen
Zeit- und Datumsformate

DATE

  • Zeitangabe
  • Format: JJJJ-MM-DD

TIME

  • Zeitangabe
  • Format: HH:MM:SS

TIMESTAMP

  • Dieses Feld wird beim Einfügen oder bei Änderungen im Datensatz automatisch gesetzt.
  • Format: JJJJMMDDHHMMSS

DATETIME

  • Zeitangabe
  • Format: JJJJ-MM-DD HH:MM:SS

YEAR

  • Zeitangabe
  • Format: JJJJ
Aufzählungen

ENUM

  • Aufzählungstyp
  • Format `Wert1`,`Wert2` usw.
  • ein definierter Wert

SET

  • Aufzählungstyp
  • Format `Wert1`,`Wert2` usw.
  • mehrere definierte Werte

Tabelle 24.1 MySQL-Datentypen



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

 <<   zurück
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Adobe Dreamweaver CS3
Die Neuauflage:
Adobe Dreamweaver CS3
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Adobe Dreamweaver CC






 Adobe
 Dreamweaver CC


Zum Rheinwerk-Shop: Adobe Dreamweaver CC Einstieg






 Adobe Dreamweaver
 CC Einstieg


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern