Alle Beiträge von Andreas Heß

Datenbanken, Teil 2: Das Entity-Relationship-Modell

Im ersten Teil der Serie haben wir festgestellt, dass der Einsatz von Datenbanken eine gute Sache ist, da sich der Entwickler nicht mehr mit den Grundfunktionen der Datenspeicherung befassen muss. Allerdings konnten wir auch schon erkennen, dass eine sinnvolle Datenmodellierung essenziell ist. Oder anders gesagt:

One does not simply create a database

Bevor ein sinnvoller Datenbankentwurf beginnen kann, ist es zunächst entscheidend, sich über den Ausschnitt der realen Welt, der abgebildet werden soll, im Klaren zu sein. Dazu empfiehlt sich das von Peter Chen 1976 vorgestellte Entity-Relationship-Modell, das Entitäten, also Dinge der realen Welt, ihre Eigenschaften und Beziehungen zwischen diesen beschreibt. In diesem Artikel werden wir uns mit den Grundlagen dieses Modells beschäftigen. Im Lehrbuch von Kemper und Eickler wird das Entity-Relationship-Modell in Kapitel 2 besprochen.

Da die eigentliche Datenspeicherung in den gängigen DBMS allerdings nach dem relationalen Modell, also in Tabellenform, erfolgt, müssen wir uns auch damit beschäftigen, wie man ein Entity-Relationship-Modell in das relationale Modell umwandelt. Dies ist in vielen Fällen recht umkompliziert und führt zu guten Datenbankschemata, die die im ersten Artikel der Serie beleuchteten Probleme wie Redundanzen nicht aufweisen.

Datenbanken, Teil 2: Das Entity-Relationship-Modell weiterlesen

Dagebüll, Niebüll und das Sylt Shuttle plus

Letztes Jahr war ich auf einen Kurzurlaub im hohen Norden der Republik. Dabei sind ein paar Fotos entstanden, die ich (komplett ohne aktuellen Anlass) im Blog zeigen möchte.

628 der neg in Dagebüll Mole
628 der neg an der Mole in Dagebüll

Die Norddeutsche Eisenbahngesellschaft Niebüll (neg), die inzwischen eine Tochter der luxemburgischen Staatsbahn CFL ist, betreibt die Strecke und die Züge von Niebüll an der „Marschbahn“ Hamburg-Westerland nach Dagebüll, von wo die Fähren zu den Inseln Amrum und Föhr abfahren.

Dagebüll, Niebüll und das Sylt Shuttle plus weiterlesen

Datenbanken, Teil 1

tl;dr

Datenbanken sind toll, weil sie die Grundaufgaben der Datenspeicherung übernehmen und man sich nicht mehr selber darum kümmern muss.

Datenbanken

Seit einiger Zeit unterrichte ich an der Hochschule Furtwangen im Studiengang Wirtschaftsinformatik das Fach Datenbanken. Im Laufe der Zeit ist dabei einiges an Vorlesungsmaterial, Übungsaufgaben und Notizen zu Eigenheiten von Software angefallen. Auch ein Podcast war dabei. Bisher war mein Material aber nur hochschulöffentlich. Außerdem gibt es bisher – außer den Slides – noch kein Skript zu meiner Vorlesung. Zeit, das alles mal zu ändern und die Notizen zu meiner Vorlesung in Form zu bringen und bei der Gelegenheit ins Blog zu stellen.

Aber ganz zu Anfang gilt es erst mal zu klären, warum man sich denn überhaupt mit Datenbanken befassen sollte. Oder anders gesagt:

Databases – Y U no use simple text file?

Um diese Frage zu klären, schauen wir uns ein – scheinbar – einfaches Beispiel an: eine Adressliste. Was kann da schon schiefgehen?

Datenbanken, Teil 1 weiterlesen

Mit dem Zug zum Montserrat

Unser letzter Urlaub in Katalonien ist jetzt schon über sieben Monate her, der nächste liegt noch vier Monate in der Zukunft. Also eine Zeit, um ein wenig in Erinnerungen zu schwelgen und gleichzeitig Zeit für Vorfreude.

Einer unserer Ausflüge führte uns letzten September mit der Bahn zum heiligen Berg der Katalanen, dem Montserrat. Ausgangspunkt der Reise war Tarragona, nur echt mit Kathedrale, …

Kathedrale von Tarragona
Kathedrale von Tarragona

Mit dem Zug zum Montserrat weiterlesen

MySQL auf dem Mac: Systemdatenbank weg?

Heute wurde ich im Datenbanken-Praktikum auf dem Rechner eines Studenten mit einer MySQL-Installation konfrontiert, deren System-Datenbank (d.h. die Datenbank „mysql“) einfach mal verschwunden war. Diese Datenbank enthält unter anderem die Einstellungen für die Berechtigungen der Benutzer. Das ist recht ungünstig, denn der Server startet dann natürlich auch nicht mehr. Dass die fehlende System-Datenbank dafür der Grund ist, erfährt man nur durch Anschauen der Error-Logs, die im „data“-Verzeichnis der Installation (auf dem Mac normalerweise /usr/local/mysql/data) liegen. In diesem Verzeichnis fehlt dann auch das Unterverzeichnis „mysql“.

Als einfachster Weg, die Installation wieder zum Laufen zu bekommen und evtl. vorhandene Nutzdaten zu retten, erwies sich folgender:

  1. Das data-Verzeichnis umbenennen
  2. MySQL neu initialisieren, ab Version 5.7.6 mit:
    sudo mysqld_safe --initialize
  3. Wenn hier ein von der Intialisierung zufällig gesetztes root-Passwort angezeigt wird, so ist das unbedingt zu notieren. Es muss dann, wie bei einer Neuinstallation auch, beim ersten normalen Login geändert werden. Sollte zwar ein Passwort zufällig gesetzt, aber nicht angezeigt werden (war merkwürdigerweise bei mir so), muss evtl. anschließend die Prozedur zum Zurücksetzen des Passworts durchgeführt werden.
  4. Durch die Neuinitialisierung wurde ein neues data-Verzeichnis angelegt. Der Inhalt des alten data-Verzeichnisses kann nun ins neue kopiert werden.
  5. Der Server sollte sich jetzt wieder normal starten lassen.

Wenn der Rest des data-Verzeichnisses unbeschädigt war und wirklich nur die mysql-Datenbank gefehlt hat, sollten die anderen Datenbanken wieder in Ordnung sein.

Mit dem E-Bike nach Furtwangen

Passend zum Sommersemester an der Hochschule und somit zur E-Bike-Saison habe ich ein paar Touren bei Outdooractive veröffentlicht. Da ich mein Fahrrad öfters mit der Bahn transportiere, liegt der Fokus auf Strecken von und nach Bahnhöfen im Umkreis von Furtwangen. Das kommt aber sicher auch jenen gelegen, die eine Streckentour fahren und mit dem Rad im Zug anreisen wollen. In Furtwangen lassen sich die Touren dann entsprechend verknüpfen.

Mit dem E-Bike nach Furtwangen weiterlesen

MySQL auf dem Mac: FAQs

Die Systemvariable PATH setzen

Will man am Terminal nicht jedes Mal den vollständigen Pfad angeben, wenn man den MySQL-Client startet, muss man die Systemvariable PATH setzen. Dies geht, wenn man in der Datei „.profile“ (man beachte den Punkt am Anfang!) die Zeile „export PATH=/usr/local/mysql/bin:$PATH“ einfügt. Dies geht am Terminal am einfachsten mit folgendem Befehl:

echo "export PATH=/usr/local/mysql/bin:$PATH" >> .profile

Anschließend das Terminal komplett schließen und neu starten, damit die Änderung aktiv wird.

Einen Dump einer Datenbank erstellen

Eigentlich total easy. Im Terminal eingeben:

mysqldump -u root -p NameDerDatenbank > NameDerDatei.sql

Man muss natürlich nicht unbedingt den root-User benutzen, wenn man auch andere Datenbank-User mit den passenden Berechtigungen hat. Wenn für den Benutzer kein Passwort vergeben wurde, muss man das „-p“ weglassen.

Das root-Passwort von MySQL zurücksetzen

Weil es bei meinen Datenbank-Studierenden immer mal wieder nötig ist:

  1. MySQL-Server stoppen
  2. Terminal öffnen
  3. Folgende Befehle eingeben, um den MySQL-Server neu zu starten mit der Option, sämtliche Zugriffsrechte zu ignorieren. Dies benötigt die Eingabe des Mac-Admin-Passworts.
    sudo mysqld_safe --skip-grant-tables
  4. Ein zweites Terminal öffnen und mysql starten. Einloggen bei MySQL als root braucht nun kein Passwort mehr!
    mysql -u root
  5. An der MySQL-Befehlszeile:
    mysql> flush privileges;
    Query OK, 0 rows affected (0,01 sec)
    
    mysql> alter user 'root'@'localhost' identified by '';
    Query OK, 0 rows affected (0,00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0,00 sec)
    
    mysql> quit
    Bye

    Das Passwort ist nun zurückgesetzt. Es kann natürlich in den Anführungszeichen bei „identified by“ statt einem leeren Passwort ein neues Passwort eingesetzt werden.

  6. Wieder am Terminal sollte man nun den MySQL-Server, der mit „–skip-grant-tables“ gestartet wurde, wieder beenden:
    sudo killall mysqld
  7. Dann über die Systemeinstellungen den MySQL-Server wieder normal starten.
  8. Fertig!

Nach macOS-Update: Rechner herunterfahren dauert ewig?

Wenn nach einem Update des Betriebssystems der Rechner ewig zum Herunterfahren braucht, könnte das daran liegen, dass beim Update-Prozess manchmal (?) die Rechte des mysql-Verzeichnisses verstellt werden. Dann kann man folgendes tun:

  1. Das „data“-Verzeichnis aus dem MySQL-Verzeichnis (normalerweise /usr/local/mysql) an einen sicheren Ort kopieren.
  2. MySQL neu installieren. Das ist wohl der einfachste Weg, um die Rechte wieder korrekt zu bekommen.
  3. Das gesicherte data-Verzeichnis wieder an die selbe Stelle in das MySQL-Verzeichnis der Neuinstallation kopieren.

Moixiganga

Bevor Anke mit dem dritten Teil unserer Erlebnisse bei der Colla Jove Xiquets de Tarragona weiter macht, dränge ich mich mal kurz dazwischen mit dem im Kommentar zum zweiten Teil versprochenen Bild einer Moixiganga-Aufführung.

Die Moixiganga sind eine Tradition aus dem 15. Jahrhundert und können als Vorläufer der Castells betrachtet werden. Es handelt sich dabei um eine getanzte Repräsentation der Passion Christi.

Am 22. September führten die So Nat, Grallers de Tarragona anlässlich des Santa-Tecla-Festes eine Moixiganga auf dem Plaça de les Cols auf.

Moixiganga auf dem Plaça de les Cols in Tarragona am 22.09.2016
Moixiganga auf dem Plaça de les Cols in Tarragona am 22.09.2016

Montblanc

Letzte Woche machten wir uns auf zu einem Besuch in Montblanc, einer Kleinstadt in der Nähe von Tarragona und nicht zu verwechseln mit dem Berg an der französisch-italienischen Grenze.

Anlässlich der Festes de la Serra, dem Stadtfest von Montblanc, wurde am 8. September das Gefolge (seguici popular) gezeigt. Dazu gehören zum Beispiel die Giganten (Els Gegants)

Els Gegants
Els Gegants

… die Dämonen (Els Dimonis)

Els Dimonis
Els Dimonis

… sowie die Bestien (Bestiari), zu denen wiederum zum Beispiel der Adler (Àguila)…

Àguila
Àguila

… die feuerspeiende Cucafera

Cucafera
Cucafera

… und der Drache (El Drac) gehören.

El Drac
El Drac

Auch abseits des Festes ist Montblanc wegen seiner mittelalterlichen Altstadt…

Altstadt von Montblanc
Altstadt von Montblanc

…mit ihrer praktisch vollständig erhaltenen Stadtmauer…

Stadtmauer von Montblanc
Stadtmauer von Montblanc

… und den Kirchen Sant Miquel…

Sant Miquel
Sant Miquel

… und Santa Maria sehr sehenswert.

Portal der Kirche Santa Maria in Montblanc
Portal der Kirche Santa Maria in Montblanc

Der Legende zufolge…

Legende von St. Georg
Legende von St. Georg

… hat in Montblanc der heilige Georg (Sant Jordi) einen Drachen getötet und die Prinzessin gerettet. Die heute noch lebenden Drachen (siehe oben) gelten als weitgehend ungefährlich, so dass die Stadt seitdem sicher ist und zum Besuch empfohlen werden kann.

Cambrils

Es ist wieder September und wir genießen wieder Katalonien. Vorgestern war Zeit für einen Ausflug nach Cambrils.

Cambrils vom Hafen aus gesehen
Cambrils vom Hafen aus gesehen

Cambrils hat zwei Ortskerne, zum einen den Bereich um den Hafen und zum anderen das historische Stadtzentrum, das ein klein wenig weiter im Landesinneren liegt. Der Hafen wird vom historischen Turm beschützt.

Turm am Hafen von Cambrils
Turm am Hafen von Cambrils

Der Hafen ist nicht nur für Sportboote und Ausflugsschiffe, sondern vor allem auch für den Fischfang wichtig. Der rote Leuchtturm markiert die Einfahrt.

Roter Leuchtturm von Cambrils
Roter Leuchtturm von Cambrils

Im historischen Stadtzentrum steht die Kirche Santa Maria.

Kirche Santa Maria in Cambrils
Kirche Santa Maria in Cambrils

Die Straße vor der Kirche war untertunnelt und bot während des spanischen Bürgerkriegs der Zivilbevölkerung Schutz vor Angriffen der Franquisten.

Die Sichel-Stele (Estela Falç) vor der in Teilen erhaltenen historischen Stadtmauer erinnert an einen früheren Krieg: Zu Beginn des Aufstandes der Schnitter (Guerra dels Segadors) wurde im Jahr 1640 die Stadt Cambrils belagert. In der katalanischen Nationalhymne heißt es heute übersetzt: „Ein guter Schlag mit der Sichel, Verteidiger des Landes!“

Estela Falç
Estela Falç