www.r-krell.de |
Webangebot für Schule und Unterricht, Software, Fotovoltaik und mehr |
Willkommen/Übersicht > Informatik >
Teil 1: Übersicht und sinnvolle Software
Die Ausführungen über Datenbanken ergänzen meine Reihe „Informatik mit Java"
(auf meiner „Informatik"-Hauptseite finden Sie eine Übersicht der gesamten
Unterrichtsreihe).
Hier, auf dieser Seite „Datenbanken, Teil 1" finden Sie:
In den kommenden Seiten über Datenbanken wird dann die Software benutzt und natürlich auch
erläutert/erlernt, was Datenbanken sind und wie sie planvoll erstellt und richtig genutzt werden
können:
- Datenbanken, Teil 2: Entwurf, Normalisierung und Implementation einschl.
ER-Diagramm und SQL-Abfragen
- Datenbanken, Teil 3: Java und MySQL -- Datenbankzugriff per
Java-Programm
zum Seitenanfang / zum Seitenende
Datenbanken im Unterricht
Übersicht und Vorrede
In meinem Informatik-Leistungskurs werden in der Jahrgangsstufe 12/13 auch Datenbanken behandelt. Themen sind dabei u.a.
Mit dem selbst geschriebenen Java-Programm wird sogar eine Rasterfahndung simuliert, sodass Überlegungen zum Datenschutz angeregt werden.
Dabei lassen sich die Themen allerdings nicht immer getrennt nacheinander behandeln, sondern müssen wegen gegenseitiger Abhängigkeiten und um theoretische Überlegungen direkt am Rechner ausprobieren und bestätigen zu können, teilweise verwoben werden. Damit Sie die praktischen Beispiele wie beschrieben nachvollziehen können, empfiehlt sich der Download und die Installation der hier verwendeten, frei und kostenlos zugänglichen Software auf dem eigenen Rechner - wie auf dieser Seite beschrieben.
Noch ein Wort zur Beruhigung: Die folgenden Ausführungen mögen etwas technisch anmuten. Zum Glück müssen die beschriebenen Schritte nur ein einziges Mal ausgeführt werden. Ist die Software einmal installiert und eingerichtet, reicht später der Doppelklick auf die Stapelverarbeitungsdatei db_start.bat, um das Datenbankprogramm bequem und unaufwändig in Betrieb zu nehmen.
zum Seitenanfang / zum Seitenende
Download und Installation der Software
inkl. Verweisen auf kostenlose Bezugsquellen
Als Datenbankprogramm wird das kostenlose und leistungsfähige, auch in vielen Betrieben in großem Maßstab erfolgreich eingesetzte MySQL verwendet. Ursprünglich wurde MySQL von eine skandinavischen Firma entwickelt und angeboten; Anfang 2008 wurde MySQL AB von der Firma Sun übernommen, die bekanntlich auch Java und OpenOffice betreut.
zum Seitenanfang / zum Seitenende
MySQL in XAMPP
MySQL gibt's in verschiedenen Paketen, meist mit Zusatzprogrammen für die Verwendung von MySQL zusammen mit PHP und/oder Perl als Apache-Datenbankserver für dynamische Webseiten. Solche Pakete gewährleisten eine leichte Installation und nehmen dem Anwender viele Einstellungsarbeiten ab. Hier wird - auch wenn es mehr enthält, als das hier nur benötigte MySQL - das Paket XAMPP verwendet, das von http://www.apachefriends.org/de/xampp.html herunter geladen werden kann. Dort kann man sich bis zur gewünschten Installer-Version für das eigene Betriebssystem durchklicken. Hier reicht die Windows-Version XAMPP Lite mit angegebenen 28 MB, tatsächlich aber ca. 29 MB Downloadumfang. Die Lite-Version 1.7.3 gibt's noch direkt unter http://www.apachefriends.org/download.php?xampplite-win32-1.7.3.exe (wobei das Herunterladen gelegentlich erst mit etwas Verzögerung beginnt). Von der im Juli 2011 noch aktuellen Version 1.7.4 (vom Januar 2011) gibt's allerdings (noch?) keine Light- bzw. Lite-Variante; wer genug Platz auf seinem Computer hat und Wert auf die neueste Version legt, muss das normale Paket herunter laden und installieren (Installer-Version mit 66MB oder zip- und 7z-Varianten mit 123 MB bzw. 56 MB), auch wenn 1.7.3-Lite völlig reicht!
Befindet sich die Datei xampplite-win32-1.7.3.exe dann
auf dem eigenen Rechner, wird die Installation von „XAMPP 1.7.3" mit Doppelklick auf den Dateinamen
gestartet. Würden die Vorgaben übernommen werden, will sich die Software in den Ordner c:\xampplite installieren. Zur normalen Windows-Verzeichnisstruktur passt aber viel
besser c:\programme\xampplite, sodass ich vorschlage, das
Zielverzeichnis entsprechend abzuändern. Jedenfalls gehe ich im Folgenden davon aus, dass der Ordner
c:\programme\xampplite verwendet wird. Während des
Installationsprozesses können bei den XAMPP-Optionen noch die ersten beiden Häkchen für
Verknüpfungen auf dem Desktop und Startmenü gesetzt bzw. belassen werden (sie sind allerdings keineswegs
nötig und können auch ohne Weiteres entfernt werden). Keinesfalls sollte man aber Häkchen bei den
Diensten setzen oder stehen lassen, sonst wird bei jedem Computerstart im Hintergrund XAMPP mitgestartet, was nicht
nur unnötig Startzeit und Ressourcen kostet, sondern wegen der Servertätigkeit auch ein unnötiges
Sicherheitsrisiko darstellt.
Insgesamt belegt der erzeugte XAMPP-Ordner rund 164 MB Platz auf der Festplatte. Obwohl der angelegte Ordner einige
Unterverzeichnisse und viele ausführbare Dateien enthält, erfolgt der Start des Datenbankprogramms im
Folgenden immer nur durch Start des Programms xampp-control.exe direkt im XAMPP-Ordner (bei der vorgeschlagenen
Installation also Ausführen von c:\programme\xampplite\xampp-control.exe). Es empfiehlt sich, eine Verknüpfung
hierzu im Startmenü oder auf dem Desktop anzulegen - oder meine später noch vorgestellte Batch-Datei
db_start zu verwenden.
zum Seitenanfang / zum Seitenende
Query-Browser (bzw. Workbench oder HeidiSQL)
MySQL kommt ohne grafische Oberfläche. Damit das Datenbankprogramm nicht mühsam im Konsolenfenster
bedient werden muss, empfiehlt sich zusätzlich die Installation einer ebenfalls kostenlosen Oberfläche wie
hier des MySQLQueryBrowsers. Dieser ist bzw. war in den GUI-Tools enthalten (die alte, durchaus ausreichende Version
5.0 gibt's noch auf http://dev.mysql.com/downloads/gui-tools/5.0.html); die neueste Version 5.2. ist jetzt in der Workbench
enthalten (Stand Juli 2011): http://dev.mysql.com/downloads/workbench/5.2.html. Für meinen Geschmack ist die etwas umgestaltete
Oberfläche aber weniger gelungen, sodass ich bei der älteren Version bleiben würde!
Wählt man z.B. von der älteren Version 5.0 die Installer-Version für Windows 2000 / Windows (x86)
5.0-r17 16.9M, so gelangt man nach Klick auf 'Download' zu einer Seite, von wo man 'New Users: Proceed with
Registration' wählen kann, um zu einer Formularseite für die kostenlose Registrierung zu kommen. Hier kann
man seine Daten eingeben, muss es aber nicht, sondern gelangt am Seitenende mit dem Link „» No thanks,
just take me to the downloads!" auch ohne weitere Angaben zur Auswahl eines Mirrors und dadurch zum Download, d.h.
lädt die Datei mysql-gui-tools-5.0-r17-win32.msi
herunter.
Ist diese Datei auf dem eigenen Rechner, startet der Doppelklick die Installation. Wieder ist ein beliebiges Verzeichnis wählbar, standardmäßig wird C:\Programme\MySQL\MySQL Tools for 5.0\ angelegt (wie unten beim Start der Datenbank-Software noch beschrieben wird, kann es aber vorteilhaft sein, einen Pfadnamen ohne Leerzeichen zu wählen -- also etwa C:\Programme\MySQL\MySQLTools\. Allerdings ist auch das spätere Umbenennen problemlos). Hieraus wird künftig ausschließlich die mit einem Blitz markierte Datei MySQLQueryBrowser.exe (bei der Standardinstallation also C:\Programme\MySQL\MySQL Tools for 5.0\MySQLQueryBrowser.exe) gestartet, die aber immer erst nach dem oben erwähnten Programm xampp-control ausgeführt werden sollte.
Natürlich kann auch jedes andere Frontend die Arbeit mit MySQL erleichtern. Ein Blick auf bzw. Ausprobieren der seit Juni 2011 in der Version 6 angebotenen, ebenfalls kostenlosen Oberfläche HeidiSQL von http://www.heidisql.com lohnt sicher auch! (Oder man programmiert sich selbst eine Oberfläche in Java, wie auf meiner dritten Seite zu Datenbanken unter der Überschrift "Datenbank-Zugriff per Java-Programm" angedeutet wird).
zum Seitenanfang / zum Seitenende
Java-MySQL-Connector/J
Befindet man sich nach dem Download der Gui-Tools mit dem QueryBrowser noch auf der MySQL-Webseite, so kann (für die spätere Anbindung der MySQL-Datenbank an Java) hier aus dem Downloadbereich der Developer Zone unter 'Connectors' > 'Connector/J', also von http://dev.mysql.com/downloads/connector/j, die aktuelle zip-Version von „Connector/J" herunter laden. Im Juli 2011 war dies die Version 5.1.17, wobei die Größe der zip-Datei mit 3,9 MB angegeben wurde. Auf "Download" klicken (und wieder weiter wie oben mit oder ohne Anmeldung/Registrierung und Auswahl eines Mirrors). Man erhält die Archivdatei mysql-connector-java-5.1.17.zip. Tatsächlich wird später aus diesem Archiv nur die weniger als 700 kB große Datei mysql-connector-java-5.1.17-bin.jar benötigt, die z.B. in den selbst anzulegenden Ordner C:\JavaEntw\mysqlconnector entpackt werden sollte; der Rest sind Dokumentationen und Quelltexte und hier nicht erforderlich. Genaueres folgt weiter unten auf dieser Seite im Kapitel „Einbinden des Java-MySQL-Connectors/J in den Javaeditor".
zum Seitenanfang / zum Seitenende
Verbessern der
MySQL-Datenbank-Einstellungen:
Inno-DB per Konfigurationsdatei dauerhaft einschalten!
Leider führt die Datenbanksoftware MySQL einige sinnvolle Kontrollen nicht automatisch durch: so fehlt die wichtige Kontrolle der referenziellen Integrität bei den angegebenen Fremdschlüsseln. Inzwischen (XAMPP-lite 1.7.3, Mai 2010) ist die dafür zuständige Datenbank-Engine InnoDb zwar nicht mehr ausgeschlossen, muss aber entweder am Ende jedes create-table-Befehls ausdrücklich mit engine = innodb angegeben werden oder es muss einmal in der Datei ..\xampplite\mysql\bin\my.ini die Zeile default-storage-engine = innodb ergänzt werden, damit ab dann automatisch die bessere Datenbank-Engine mit strikter Kontrolle verwendet wird.
Wer allerdings noch eine ältere Version von Xampp und MySQL benutzt, wo die Einstellungen statt in my.ini noch in einer Konfigurationsdatei namens my.cnf gespeichert sind, muss dort auch Kommentarzeichen '#' entfernen. Achtung: Im Windows-Explorer wird die Endung .cnf nicht angezeigt (auch nicht, wenn grundsätzlich Dateiendungen sichtbar geschaltet wurden!), sondern vielmehr wird die Datei my fälschlich mit dem Typ 'Zielwahl' dargestellt (weil Windows seine Verknüpfungen ebenfalls mit der Endung .cnf versieht). Nichtsdestotrotz kann die Datei mit einem Texteditor (z.B. notepad) geöffnet und so bearbeitet werden, dass sie schließlich folgenden Inhalt zeigt. Anschließend das Speichern nicht vergessen! Wurde XAMPP allerdings in ein anderes Zielverzeichnis installiert, müssen Sie an allen Stellen den Pfadnamen c:\programme\xampplite\ - am besten mit Suchen und Ersetzen - entsprechend verändern.
Ausschnitt aus my.ini (bzw. my.cnf)
[...] #skip-innodb # Uncomment the following if you are using InnoDB tables innodb_data_home_dir = C:/Programme/xampplite/mysql/data/ innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = C:/Programme/xampplite/mysql/data/ innodb_log_arch_dir = C:/Programme/xampplite/mysql/data/ # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high set-variable = innodb_buffer_pool_size=16M set-variable = innodb_additional_mem_pool_size=2M # Set .._log_file_size to 25 % of buffer pool size set-variable = innodb_log_file_size=5M set-variable = innodb_log_buffer_size=8M innodb_flush_log_at_trx_commit=1 set-variable = innodb_lock_wait_timeout=50 default-storage-engine = innodb [...] |
Natürlich sollten Sie diese Änderungen durchführen, wenn MySQL noch nicht läuft. Wie Sie nach diesen einmal durchzuführenden Änderungen jetzt und künftig MySQL mit den neuen Einstellungen starten, steht im nächsten Kapitel.
zum Seitenanfang / zum Seitenende
Start der Datenbank-Software
(Bebilderte Schritt-für-Schritt-Anleitung mit
Stapelverarbeitungsdatei)
Zunächst muss das XAMPP-Paket mit der MySQL-Datenbanksoftware sowie der MySQL-QueryBrowser installiert sein wie im vorstehenden Kapitel beschrieben. Damit die Datenbanksoftware mit der Oberfläche benutzt werden kann, muss nun dann als erstes xampp-control ausgeführt werden. Erst nach dem Start von MySQL im XAMPP Control Panel kann danach die Oberfläche verwendet werden. Da die Installation keine passenden Startmenü-Einträge anlegt, empfehle ich die Verwendung einer selbstgeschriebenen Batch-Datei (=Stapelverabeitungsdatei) db_start.bat folgenden Inhalts (die ggf. auf eigene, eventuell abweichende Pfad- bzw. Ordnernamen angepasst werden muss):
db_start.bat
@echo off echo Start vom XAMPP (dort MySQL starten!) und echo MySQL-GUI (dort localhost und root eingeben): cd C:\Programme\xampplite\ start C:\Programme\xampplite\xampp-control.exe cd C:\Programme\MySQL\MySQL Tools for 5.0\ start C:\Programme\MySQL\MySQL Tools for 5.0\MySQLQueryBrowser.exe |
(Während dieses Verfahren zu Hause einwandfrei klappte, hatten die Schulrechner Probleme mit den Leerzeichen im Pfadnamen MySQL Tools for 5.0 und die Batchdatei funktionierte erst richtig, nachdem ich diesen Ordner in MySQLTools umbenannt und dann in den letzten beiden Zeilen der vorstehenden Batchdatei entsprechend cd C:\Programme\MySQL\MySQLTools\ bzw. start C:\Programme\MySQL\MySQLTools\MySQLQueryBrowser.exe geschrieben hatte).
Die Batchdatei db_start.bat kann auf dem Desktop oder im Startmenü angelegt bzw. gespeichert werden. Klickt man jedenfalls auf db_start.bat auf dem eigenen Rechner, so erscheint zunächst das XAMPP-Kontrollfenster, in dem man MySQL durch Anklicken von „Start" in Gang setzt:
Durch die Batch-Datei wurde auch die Oberfläche bereits im Hintergrund gestartet und ihr Startfenster wird nach Verschieben oder Minimieren des XAMPP Control Panels sichtbar oder kann in den Vordergrund geholt werden durch Klick auf die Schaltfläche „MySQL Query Browser.." in der Taskleiste am unteren Bildschirmrand ( ). Jedenfalls erscheint der Dialog (mit neuerer Versionsnummer >= 1.2.17)
in den zumindest beim ersten Mal wie abgebildet localhost und root eingegeben werden müssen, bevor OK gedrückt wird. Nach Wahl von „Ignorieren" in der Warnung
öffnet sich schließlich die Oberfläche, die rechts natürlich noch weniger Datenbanken anzeigt. Ist oben der SQLAbfragebereich noch nicht sichtbar, sollte er mit der Taste F11 oder per Menü maximiert werden:
Damit läuft die Datenbanksoftware und vorhandene Datenbanken können genutzt und/oder verändert bzw. neue Datenbanken können angelegt werden. Für einen ersten Test kann im rechten Fenster ('Schemata') in der Datenbank mysql zweimal doppelt auf die Tabelle user geklickt werden (sieh nachfolgendes Bild). Daraufhin erscheint links oben im SQLAbfragebereich automatisch die SQL-Abfrage „SELECT * FROM `user` u;". Diese wird beim zweiten Doppelklick (oder nach Klick in den Befehl und anschließenden Klick auf den grünen Blitz-Button, dem 4. Symbol in der Werkzeugleiste) ausgeführt und veranlasst das Erscheinen der Ergebnis-Tabelle im unteren linken Fenster, die mindestens die Zeile „localhost root .." enthalten muss, denn so haben Sie sich schließlich angemeldet, wenn Sie meiner Anleitung gefolgt sind:
Alternativ können Sie auch „select * from mysql.user;" selbst ins Abfragefenster links eintippen, das Blitz-Symbol betätigen (während sich der Kursor in der Fragezeile befindet) und die Ergebnistabelle erhalten.
zum Seitenanfang / zum Seitenende
Soll später nicht nur mit dem MySQL-QueryBrowser, sondern auch aus einem Java-Programm auf MySQL bzw. auf MySQL-Datenbanken zugegriffen werden, muss die oben bereits aus dem Archiv mysql-connector-java-5.1.17.zip entpackte Datei mysql-connector-java-5.1.17-bin.jar an einer beliebigen festen Stelle gespeichert werden. Ich habe mir dafür in meinem Verzeichnis C:\JavaEntw einen Unterordner C:\JavaEntw\mysqlconnector angelegt, in den ich die jar-Datei kopiert habe (zu meiner Java-Verzeichnisstruktur vergleiche meine Seite „Informatik mit Java, Teil a"). Egal, wohin die Datei kopiert wurde: Wenn sie nicht zufällig in einem Ordner gespeichert wurde, der schon im Classpath von Java liegt, muss dem Java-System der Aufenthaltsort noch mitgeteilt werden. Bei Verwendung des Javaeditors (im Bild in der im März 2010 aktuellen Version 9.14j; im Juli 2011 ist die Versionsnummer auf 10.2 geklettert) gelingt dies über den Menüpunkt 'Fenster' > 'Konfiguration' und Anhängen von „;C:\JavaEntw\mysqlconnector\mysql-connector-java-5.1.17-bin.jar;" (bzw. dem Namen der tatsächlich installierten Version -- das Bild zeigt noch die Einrichtung für den Connector/J 5.1.12 im Mai 2010) an den bisherigen User-Classpath
Wird z.B. auch die Bibliothek Stift&Co verwendet (vgl. „Informatik mit Java, Teil a) - dort: Installation und Einrichten des Javaeditors"), so hat der Eintrag für den 'Classpath-User' jetzt ingesamt den Wert
.;C:\JavaEntw\stiftlib\stift.jar;C:\JavaEntw\mysqlconnector\mysql-connector-java-5.1.17-bin.jar; |
Auf jeden Fall sollte am Anfang des User-Classpath' ein Punkt stehen, damit jeweils das aktuelle Verzeichnis (mit dem gerade geschriebenen Java-Programm) im Blickfeld ist. Mindestens muss der Eintrag also lauten:
.;C:\JavaEntw\mysqlconnector\mysql-connector-java-5.1.17-bin.jar |
Natürlich sind auch noch zusätzliche Pfade zu anderen Bibliotheken möglich. Ist der Javaeditor entsprechend eingerichtet, können später im Javaeditor erstellte, kompilierte und ausgeführte Java-Programme die MySQL-Datenbanksoftware nutzen und - sofern MySQL zuvor mit dem XAMPP Control Panel gestartet wurde - eigene Daten in Datenbanken ablegen oder aus Datenbanken beziehen. Dies ist oft eine sinnvolle Alternative zum Speichern von Daten in Dateien im java-eigenen Format per ObjectOutputStream (vgl. etwa meine Seite „Informatik mit Java, Teil d) - dort: Dateien in Java").
Wird an Stelle des Javaeditors eine andere Java-Entwicklungsumgebung (wie etwa Eclipse) verwendet, so findet sich auch dort die Möglichkeit, die jar-Datei mysql-connector-java-5.1.17-bin.jar als Bibliotheksdatei in ein Projekt bzw. in alle Projekte einzubinden.
zum Seitenanfang / zum Seitenende
Mit den vorstehenden Installationen und Einrichtungen, die zum Glück nur einmal vorgenommen werden mussten, lässt sich die Software künftig bequem und ohne große Mühe nutzen. Begleitend zum Unterrichtsgang wird sie schon im folgenden Teil 2 auch tatsächlich gebraucht.
zurück zur Informatik-Hauptseite
Weiter zur folgenden Seite „Datenbanken mit MySQL und Java", Teil
2:
Entwurf, Normalisierung und Implementation einschl. ER-Diagramm und SQL-Abfragen
und zur übernächsten Seite: Datenbanken.., Teil 3: Java und MySQL