Vorlesung Datenbanken: Benutzung von PostgreSQL und MySQL

  • Wichtiger Hinweis: Um mit dem Datenbanksystem arbeiten zu können, müssen Sie einen Account für die Benutzung der Rechner am Fachbereich 10 besitzen und dieser muss für die Benutzung freigeschaltet sein. Die Freischaltung erfolgt voraussichtlich am 22.05 automatisch für alle Teilnehmer des Learnweb-Kurses.
  • Bei Problemen wenden Sie sich bitte an Tobias Brix.

Herstellen einer Verbindung zum Uni-Netzwerk:

Der Server, auf dem die Datenbanksysteme zur Verfügung gestellt werden, befindet sich im privaten Teil des Uni-Netzwerkes. Daher können Sie sich nicht einfach, wie in den vergangen Jahren, mit ihrem Rechner von zu Hause aus verbinden, sondern müssen zunächst eine Verbindung zum Uni-Netzwerk herstellen. Sie haben drei Möglichkeiten um sich mit dem Uni-Netzwerk zu verbinden:
  • Benutzen Sie einen Rechner aus den Computerpools der Universität. Diese befinden sich automatisch im Uni-Netzwerk und können eine Verbindung zum DB-Server problemlos herstellen.
  • Verbinden Sie Ihren Laptop mit dem Uni-WLAN (siehe Anleitung). Befindet sich Ihr Laptop im internen Netzwerk, sollte die Verbindung zum DB-Server keine Probleme bereiten.
  • Sollten Sie Ihren Rechner von zu Hause aus benutzen wollen, so benötigen Sie eine VPN-Verbindung zum Uni-Netzwerk. Eine Anleitung hierfür finden Sie hier.

Herstellen einer Verbindung zum DB Server:

Wenn Sie eine Verbindung zum Uni-Netzwerk hergestellt haben, können Sie sich nun plattformabhängig mit dem DB-Server verbinden.

Unter Windows:
  • Starten Sie das Programm PuTTY. Lassen Sie alle Einstellungen so wie sie sind und geben Sie bei "Host Name" ivv5dbsrv01.uni-muenster.de ein. Klicken Sie anschliessend auf "Open".

    PuttY Configuration

  • Es öffnet sich ein neues Fenster in dem Sie sich nochmals mit Ihrer Uni-Kennwort und Nutzerpasswort anmelden müssen. Befinden Sie sich an einem Poolrechner wird Ihre Uni-Kennung automatisch übernommen.
    [Anmerkung: Das zugeschickte MySQL Passwort wird hier nicht benötigt.]
    Beim ersten Einloggen werden Sie gefragt, ob Sie dem RSA Schlüssel vertrauen. Hier klicken Sie auf "OK" bzw, tippen "yes". Sollten sie bereits im letzen Jahr die Vorlesung Datenbanken gehört haben, beachten Sie bitte diese Fehlermeldung.

    ivv5dbsrv01

    Sie sind erfolgreich Angemeldet.
  • Mit dem Befehl "exit" beenden Sie die Verbindung.


Unter Unix (Mac OS):
  • Starten Sie die Konsole (Anwendungen->Sytemwerkzeuge->Terminal).

    Terminal

  • Stellen Sie die Verbindung her durch den Befehl "ssh ivv5dbsrv01.uni-muenster.de" Beim ersten Einloggen werden Sie gefragt, ob Sie dem RSA Schlüssel vertrauen. Hier klicken Sie auf "OK" bzw, tippen "yes". Sollten sie bereits im letzen Jahr die Vorlesung Datenbanken gehört haben, beachten Sie bitte diese Fehlermeldung.

    ivv5dbsrv01

    Sie sind erfolgreich Angemeldet.
  • Sollten Sie sich nicht von einem Uni-Rechner aus einloggen, so müssen Sie ihre Uni-Kennung beim Aufbau der Verbindung angeben. Der Befehl lautet dann zum Beispiel für die Nutzerkennung k_knip06 "ssh k_knip06@ivv5dbsrv01.uni-muenster.de".
  • Mit dem Befehl "exit" beenden Sie die Verbindung. Ein zweites "exit" schliesst die Konsole.

Ein neuer RSA Key:

Sollten sie bereits im letzen Jahr die Vorlesung Datenbanken gehört haben, so befindet sich vermutlich bereits ein veralteter RSA-Schlüssel auf ihrem Rechner. Student(inn)en, welche die Vorlesung zum ersten Mal hören, sollten dieses Problem nicht haben.
Unter Windows weist PuTTY den Benutzer auf den neuen Schlüssel hin und fragt, ob dieser aktualisiert werden soll. Bestätigen Sie die Aktualisierung einfach.
Unter Linux sieht die Fehlermeldung etwas dramatischer aus:

Fehlermeldung unter Linux

Benutzen Sie den angegebenen Befehl, um den alten RSA-Key zu löschen. Bei einem zweiten Verbindungsaufbau sollte dann alles wie im vorherigen Abschnitt beschrieben funktionieren.

Zur Benutzung von PostgreSQL:

Erstellen Sie zunächst eine Verbindung zu ivv5dbsrv01.uni-muenster.de wie in dem oberen Abschnitt beschrieben.

Erzeugen und laden einer Datenbank:
  • Beim ersten Arbeiten mit PostgreSQL müssen Sie eine neue Datenbank für sich anlegen. Ausführen von "createdb datenbankname" (von der UNIX-Kommandozeile aus) legt die gewünschte neue Datenbank an. Zwecks Unterscheidung der Datenbanken stellen sie dem Namen einer neuen Datenbank bitte Ihre Nutzerkennung voran (z.b. "k_knip02TestDB"). Es wird dabei ihr Nutzerpasswort verlangt (wenn Sie es angeben müssen).
  • Der anschließende Aufruf "psql datenbankname" erzeugt eine Verbindung zu der Datenbank mit dem Namen "datenbankname" (z.B. psql k_knip02TestDB). Ein Aufruf von "psql" ohne Parameter stellt automatisch eine Verbindung zu einer Datenbank her, die Ihrem Benutzernamen entspricht, sofern Sie diese vorher angelegt haben. Es sollte selbstverständlich sein, dass Sie bei einem späteren Einloggen direkt mit "psql datenbankname" Ihre DB öffnen können und nicht erneut "createdb datenbankname" aufrufen müssen.
  • Es kann sinnvoll sein für jede Übungsaufgabe eine neue Datenbank anzulegen. Ansonsten müssen Sie vorher den Inhalt Ihrer alten DB löschen.
  • Ausführen von "dropdb datenbankname" (von der UNIX-Kommandozeile aus) löscht die übergebene Datenbank (z.B dropdb k_knip02TestDB). Es wäre sehr freundlich, wenn Sie Datenbanken, die Sie nicht mehr benötigen, löschen könnten.

    PostgreExample



Innerhalb des PSQL-Interpreters sind folgende Befehle neben der reinen SQL-Syntax von Bedeutung:
  • "\i dateiname" führt die in "dateiname" enthaltenen SQL-Kommandos aus. Dieser Befehl kann also dazu verwendet werden, die im Learnweb bereitgestellten Dateien in eine eigene Datenbank zu übernehmen. Die Dateien müssen dazu vorher lokal gespeichert werden (am einfachsten im Verzeichnis, aus dem man den Aufruf "psql ..." tätigt). Sollten Sie Probleme mit der lokalen Speicherung haben, so können Sie auch den gesamten Inhalt der bereitgestellten Datei in die Komandozeile kopieren. Markieren und kopieren Sie hierfür einzelne Befehlsblöcke aus der Datei und fügen Sie sie in die Komandozeil ein. Die Befehle werden dann der Reihe nach ausgeführt. Ein Kopieren der gesamten Datei auf einmal kann zu Fehlern führen.
  • "\dt" zeigt die bisher angelegten Tabellen an
  • "\q" beendet den PSQL-Interpreter
  • "\h" hilft bei der Benutzung von SQL-Kommandos
  • "\?" hilft bei der Benutzung des PSQL-Interpreters
Anmerkung: Auf Grund von Encoding-Inkompatibilität kann es dazu führen, dass Umlaute nicht als Eingabe akzeptiert werden. Benutzen Sie daher möglichst "ss" statt "ß" bzw. "ue" statt "ü" usw.

pgcli für PostgreSQL:

Für PostgreSQL ist auf dem Server eine Kommandozeilenschnittstelle mit automatischer Vervollständigung und Syntax-Highlighting installiert. Mit dem Befehl "pgcli datenbankname" können Sie diese Schnittstelle nutzen. Der Befehl ersetzt "psql datenbankname" aus dem vorherigen Abschnitt. Selbstverständlich können Sie weiterhin die Standardschnittstelle von PostgreSQL verwenden.

pgcli Screenshot

Zur Benutzung von MySQL:

Erstellen Sie zunächst eine Verbindung zu ivv5dbsrv01.uni-muenster.de wie in dem oberen Abschnitt beschrieben.

Öffnen einer Datenbank:
  • Für die Benutzung von MySQL sollte Sie eine Mail mit Ihrem SQL Passwort und Ihrer zugehörigen SQL-Datenbank erhalten haben. Sollte dies nicht der Fall sein, so kontaktieren Sie bitte Tobias Brix. Bitte beachten Sie, dass die Freischaltung automatisch für alle Teilnehmer des Leranweb-Kurses durchgeführt wird. Eine manuelle Freischaltung kann bis zu 48 Stunden dauern.
  • Mit dem Aufruf "mysql -p datenbankname" stellen Sie eine Verbindung zu der Datenbank mit Namen "datenbankname" her. Der "datenbankname" besteht aus Ihrer Nutzerkennung + DB. Also z.B. k_knip02DB. Anschließend müssen Sie Ihr SQL-Passwort eingeben, welches Sie per Mail erhalten haben.
  • Eine Erstellung eigener Datenbanken ist auf Grund des Rechtesystems von MySQL und aus Sicherheitsgründen leider nicht möglich. Zusammen mit Ihrer DB-Nutzerkennung wurde eine Datenbank mit dem gleichen Namen wie ihr DB-Nutzername + DB für Sie eingerichtet. Für größere Flexibilität ist daher PostgreSQL zu bevorzugen.

    MySQLExample



Innerhalb des MySQL-Interpreters sind folgende Befehle neben der reinen SQL-Syntax von Bedeutung:
  • "SOURCE dateiname" führt die in dateiname enthaltenen SQL-Kommandos aus. Dieser Befehl kann also dazu verwendet werden, die im Learnweb bereitgestellten Dateien in eine eigene Datenbank zu übernehmen. Die Dateien müssen dazu vorher lokal gespeichert werden (am einfachsten im Verzeichnis, aus dem man den Aufruf "mysql ..." tätigt). Sollten Sie Probleme mit der lokalen Speicherung haben, so können Sie auch den gesamten Inhalt der bereitgestellten Datei in die Komandozeile kopieren. Markieren und kopieren Sie hierfür einzelne Befehlsblöcke aus der Datei und fügen Sie sie in die Komandozeil ein. Die Befehle werden dann der Reihe nach ausgeführt. Ein Kopieren der gesamten Datei auf einmal kann zu Fehlern führen.
  • "SHOW TABLES;" zeigt die bisher angelegten Tabellen an.
  • "SHOW DATABASES;" zeigt alle Datenbanken an.
  • "exit" beendet den MySQL-Interpreter.
  • "help" hilft bei der Benutzung des MySQL-Interpreters.

Übungsdatenbank aus der Vorlesung:

Um sich mit PostgreSQL und MySQL vertraut zu machen, laden Sie sich bitte die Datei Bank.sql aus dem Learnweb herunter. Sie enthält die Datenbank, welche in der Vorlesung als "running example" dient. Mit ihr können Sie alle Befehle, die in der Vorlesung vorgestellt wurden, ausprobieren und Ihre Ergebnisse mit denen auf den Folien vergleichen.
  • Stellen Sie eine Verbindung zu dem DB-Server her. Erstellen und öffnen Sie eine Datenbank mit einem DBMS Ihrer Wahl. Die Schritte die hierfür nötig sind wurden in den vorherigen Abschnitten erläutert.
  • Laden Sie den Inhalt der Datei Bank.sql in Ihre Datenbank. Dies kann über die spezifischen Befehle des DBMS geschehen (siehe vorheriger Abschnitt) oder über einfaches Einfügen einzelner Befehlsblöcke der Datei mittels "Copy&Paste".
  • Nun ist Ihre Datenbank breit die Befehle aus der Vorlesung entgegen zu nehmen. Der Befehl "SELECT * FROM customer;" sollte zum Beispiel folgendes ergeben:

    BankExample

  • Viel Erfolg beim weiteren Experimentieren. Bei Fragen und Problemen senden Sie bitte eine Mail an Tobias Brix.