Projekt mit
1 €
unterstützen?
So geht das *:


Step 07 - MySQL Teil 1: Einstieg

 

Eine Datenbank - Was ist das?

 

Eine Datenbank ist - einfach ausgedrückt - eine Schnittstelle, die Daten speichert, eigenständig verwaltet und Zugriffe auf diese Daten regelt.

Spezielle Schutzmechanismen in der Datenbank sorgen für die Datensicherheit (=Sicherheit vor Datenverlust) und eine Nutzerverwaltung sorgt für den Datenschutz(=Schutz vor unberechtigtem Zugriff). Sie sind konzipiert um sehr große Datenmengen zu managen, auf welche sehr vielen Personen gleichzeitig Zugriff haben können (Begriff: Paralleler Zugriff). Mit Datenbanken kann langfristig sichergestellt werden, dass die Daten sicher gespeichert sind (und nicht verloren gehen). Es können eine Vielzahl von Programmiersprachen verwendet werden um auf die Daten der Datenbank zuzugreifen. Um letztenendes schnell Daten in der Datenbank direkt zu manipulieren oder abzurufen verwendet man in der Regel SQL (Struktured Query Language), welche von Datenbank-Hersteller zu Datenbank-Hersteller einen unterschiedlichen Dialekt haben kann. Auch die Datenbank-Version kann Einschränkungen oder neue Befehle mit sich bringen.

Soweit die Ersten Fakten zu Datenbanken. Aber nun erst mal noch ...

 

Etwas aus meiner Vergangenheit:

 

In der 9. Klasse hat mich eine Bekannte mal gefragt, ob ich nicht das ganze Karteisystem der Schulbücherei digitalisieren könnte. Sie haben gerade einen Computer bekommen, aber kein anständiges Programm, um die Bücher und Besitzer korrekt zu verwalten. Hätte ich damals das Wissen über die Mächtigkeit der echten Datenbanken und von SQL gehabt hätte, wäre mir sicher sehr viel erspart geblieben. Aber ich konnte ja Delphi und wusste wie man Typisierte Dateien erstellt, in einem Array nach Daten sucht, und so war für mich die Sache schon geregelt.

Ich machte mir also darüber Gedanken, was das Programm alles können sollte:
Es soll...

  • ...eine Liste aller Bücher (Autor, Buchtitel, Freigegeben ab Klasse, Leihstatus...) beinhalten
  • ...eine Liste aller Schüler, die etwas ausgeliehen haben, beinhalten.
  • ...zeigen, welche Bücher heute zurückgegeben werden müssen.
  • ...durch Passwort und Benutzername gesichert sein.

Wenn man viele Informationen zu einer Sache (in meinem Fall, einem Buch) darstellen möchte, dann empfiehlt sich meistens ein einfaches TStringGrid - eine Tabelle. Damit alle Funktionen übersichtlich dargestellt werden, habe ich auch noch ein Hauptmenü verwendet:

Und hier noch der Anmeldebildschirm - oder Besser: die Anmelde-Konsole!


Um hier erstmal abzuschließen: Ein Programm zu entwickeln ist ein Ständiger Prozesss. Es gibt immer wieder etwas anzupassen, oder etwas hinzuzufügen, oder Zeiten ändern sich und man muss es an das Neue System anpassen... Genauso war es hier. Am Anfang musste man z.B. noch Benutzername und Passwort eingeben, aber dann haben die Mädels mir gesagt, dass sie sich untereinanger genug vertrauen, sodass man hier Zeit sparen kann, indem man sich nur noch durch den Namen identifizieren muss. Das ist zwar gegen jede Datenschutzbestimmung, da somit wirklich jeder Zugriff darauf hatte, aber wie man es so sagt: früher war alles einfacher.

Je nach dem wann und wie ich wieder Zeit finde, möchte ich das Projekt etwas aufbereiten (für Turbo Delphi) und unter der Sammelmappe vorstellen. (keine Angst, wenns soweit ist, gibts hier einen Link :) )

 

Und nun Action: Download und Erste Schritte!

 

Heruntergeladen habe ich es bei Chip.de

Danach am Besten "Standard" installieren und am Ende folgende Schritte bei der MySQL Server instance Configuration Ausführen:

  • Detailed Configuration
  • Developer Machine (es Sei denn ihr verfügt tatsächlich über einen anderen PC im Netzwerk der leistungsstärker ist, als den, den ihr zum Entwickeln benutzt)
  • Multifunctional Database
  • Pfad nach belieben auswählen.
  • Decision Support (für 20 Zugriffe gleichzeitig, sollte erstmal ausreichen ;) )
  • Strict Mode und den Port so lassen
  • Standard Character Set
  • Wenn ihr vor habt den Server oft zu benutzen empfielt es sich, die Datenbank als Windows-Service im Hintergrund automatisch laufen zu lassen. Andernfalls kann es auch (aus Speicherverbrauchsgründen) deaktiviert und der Server manuell gestartet werden.
  • Root-Passwort für unseren Testserver auf dieser Website nehmen wir ein alt bekanntes: toor
    zudem aktivieren wir aber auch den Anonymouse Account.
  • Hiernach müssen wir nur noch auf Execute klicken und die erste Datenbank ist erstellt.

 

Erste Tabelle und erste Daten per MySQL-Konsole:

 

Als Erstes müssen wir eine Tabelle erstellen. Das geht einfach per "MySQL Command Line Client":

Information:

Sollte kein Link mit "MySQL Command Line Client" erstellt worden sein könnt ihr euch per cmd anmelden:
Windowstaste + R -> Ausführen öffnet sich.
"cmd" [Enter]
"mysql -u root -p" [Enter]

Einmal mit unserem "toor" definierten root-Passwort eingeloggt, geben wir folgende Befehle ein um eine Datenbank mit einer Tabelle zu erstellen. Ein Semikolon beendet die Zeile. Der Text nach den zwei Slashes // dient hier der Beschreibung und sollte nicht eingegeben werden!!!

  • create database db4delphi;
    //Datenbank mit dem Namen "db4delphi" erstellen
  • connect db4delphi;
    //Zur Datenbank verbinden
  • CREATE TABLE daynames
    (day_number INT NOT NULL,
    day_name VARCHAR(10) NOT NULL,
    PRIMARY KEY (day_number));
    //Erstellt eine Tabelle mit 2 Spalten, wobei Spalte day_number der Primärschlüssel der Tabelle wird.
  • // jetzt folgen die Daten:
    INSERT INTO daynames
    VALUES (1,'Sonntag');
    INSERT INTO daynames
    VALUES (2,'Montag');
    INSERT INTO daynames
    VALUES (3,'Dienstag');
    INSERT INTO daynames
    VALUES (4,'Mittwoch');
    INSERT INTO daynames
    VALUES (5,'Donnerstag');
    INSERT INTO daynames
    VALUES (6,'Freitag');
    INSERT INTO daynames
    VALUES (7,'Samstag');
    // Nun sind alle Tage aufgezählt!
  • select * from daynames; // zeigt nun die Tabelle mit den Daten:
    +------------+------------+
    | day_number | day_name |
    +------------+------------+
    | 1 | Sonntag |
    | 2 | Montag |
    | 3 | Dienstag |
    | 4 | Mittwoch |
    | 5 | Donnerstag |
    | 6 | Freitag |
    | 7 | Samstag |
    +------------+------------+
    7 rows in set (0.00 sec)

Um SQL zu lernen, wendet euch bitte an eine Andere Seite. Alle Befehle die hier verwendet werden, erkläre ich zwar kurz und bündig, aber dies ist nicht ausreichend um selbst aktiv zu werden. Hier mal ein Link zu einer Page, die mir ganz annehmbar erscheint:
SQL.LernenHoch2.de

 

Erste Verbindung von Delphi zur Datenbank

 

Bevor die Verbindung aufgebaut werden kann, müssen wir für unser System noch einen ODBC-Treiber besorgen und mit diesem dann eine Verbindung aufbauen:

Wir laden hier den ODBC-Connector herunter und installieren ihn. ACHTUNG: um den Treiber hier herunterladen zu können, müsst ihr euch bei MySQL zunächst registrieren (alles kostenlos! nur Zeit kostets)

Ist er erstmal runtergeladen und installiert, ist der Rest - nach wie vor - ein Kinderspiel: (XP) Unter Systemsteuerung -> Verwaltung unternehmt ihr folgende Schritte:

1. Verwaltung öffnen
2. Datenquelle (ODBC) öffnen
3. Benuzer DSN -> Hinzufügen -> MySQL ODBC Vx.x Driver (je nach Version, die ihr herunterladet) -> Fertig stellen
4. Die Daten eingeben. Wichtig dabei Data Source Name merken! Falls ihr einen anderen Server im Netzwerk benutzt, gebt dessen IP ein - checkt ggf. die Firewalleinstellungen!
5. Finaler Test! Wenn ihr unter Database jedoch schon unser db4delphi findet, ist auch schon alles gut gegangen!

Als nächstes in Delphi:

Wir erstellen ein neues Projekt und werfen erstmal folgende Komponenten in unser Formular (Quick'n'Dirty) :

  • Unter dbGo: TADOConnection
  • Unter dbGo: TADOQuery
  • Unter Datenzugriff: TDataSource
  • Unter Datensteuerung: TDBGrid

Hiernach verbinden wir die Komponenten miteinander:

  • ADOQuery1.Connection setzen wir auf ADOConnection1
  • DataSource1.Dataset setzen wir auf ADOQuery1
  • DBGrid1.DataSource setzen wir auf DataSource1

Damit nun der Zugriff auf die Datenbank funzt, muss noch die Verbindung zu unserem ODCB-Treiber hergestellt werden:

Dazu geht ihr unter ADOConnection1 auf die ... bei ConnectionString und füllt auf der Karteikarte "Verbindung" die Punkte 1-3 aus, wie es auf dem folgendem Bild gezeigt wird. Ein abschließender Klick auf "Verbindung testen" dürfte wieder eine Erfolgsmeldung bringen.

Damit die Tabelle daynames wie im oberen Bild dargestellt wird fehlen noch 2 Punkte:

  • ADOQuery1.SQL als text eingeben: "select * from daynames"
  • ADOQuery1.Active auf true setzen. Fertig!

 

Dies war ein kleiner Einstieg in die Welt von MySQL.

Als nächstes werden wir ein praktisches Beispiel durcharbeiten, sodass der Stoff auch etwas mit "programmieren" und nicht nur mit "Einstellung ändern" oder "Installieren" zu tun hat ;-)

 


Da das Kommentarmodul dieser Seite zur Zeit neu überarbeitet werden muss, sendet bitte alle Fragen, Anregungen oder Probleme mit Betreff zu welchem Thema es sich handelt an folgende Mailadresse:



www.marco-hetzel.de
www.delphi-lernen.de
www.lazarus-lernen.de

© 2006-2019 by Marco Hetzel , last modified 01.11.2018, 11:28

(* Unterstützung dient der Aufrechthaltung laufender Kosten für dieses Projekt.)