Archiv der Kategorie: Computerkram

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

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

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.

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.

Von der Unsinnigkeit, die Webcam abzukleben

Immer wieder sehe ich an Laptops in meinem Umkreis abgeklebte Webcams. Und ich frage mich dann jedes Mal, was das eigentlich soll.

Haare schön?
Haare schön?

Liebe Leser mit abgeklebter Webcam:

Habt Ihr denn auch Euer Mikrofon abgeklemmt?

Vermutlich nicht, denn dafür ist wohl bei den meisten Laptops nötig, das Gehäuse zu öffnen. Glaubt Ihr ernsthaft, dass sich ein Angreifer die Mühe macht, Eure Kamera anzuzapfen, nur um herauszufinden, was für ein T-Shirt Ihr heute an habt, ob die Frisur sitzt und der Bart gestutzt ist? Lauschen, was gesprochen wird, ist doch viel interessanter! Und glaubt Ihr, dass der Angreifer dann noch den Zusatzaufwand investiert, die LED der Kamera auszuschalten, wo doch das Mikrofon eine solche LED gar nicht erst hat? Aber eigentlich ist das egal, denn noch viel spannender als das Mikrofon dürften für einen Angreifer sowieso die eingetippten Passwörter oder die auf dem Rechner gespeicherten Daten sein.

Ernsthaft, wenn jemand schon mal so weitgehenden Zugriff auf Euren Rechner hat, dass er oder sie in der Position ist, Eure Kamera anzuzapfen, dann ist die Kamera Euer kleinstes Problem!

Das echte Horrorszenario!

Nehmen wir mal folgendes an: Ihr seid in einem öffentlichen, unverschlüsselten WLAN eingeloggt. Ihr gebt Euer Passwort in einem Internet-Forum ein. Weil dieses Forum eigentlich nicht so wichtig ist, achtet Ihr nicht darauf, ob die Zugangsdaten verschlüsselt übermittelt wurden. Jetzt kann ein Angreifer mit Wireshark ganz locker Euer Passwort mitschneiden. Blöd jetzt, wenn Ihr für Euren E-Mail-Account fast das gleiche Passwort habt.

Seid Ihr Euch eigentlich darüber im Klaren, was alles möglich ist, wenn jemand Zugriff auf Euer Mail-Konto hat? Viele Online-Dienste bieten die Möglichkeit, über die Mail-Adresse das Passwort zurückzusetzen. Wenn also jemand Zugriff auf Euer E-Mail-Konto hat, hat er auch Zugriff auf praktisch alle anderen Accounts von Euch, einschließlich des Zugangs zum Cloud-Speicher, in dem Eure Bikini-Fotos vom letzten Strandurlaub liegen. Wer braucht da noch den Zugang zur Webcam, wo Ihr vor dem Rechner doch meistens vollständig bekleidet seid? Für all das reicht übrigens ein rein passiver Angriff, der somit völlig unbemerkt vonstatten geht! Nicht gerade eine beruhigende Vorstellung.

Sichert Eure Rechner!

Vergebt sichere Passwörter für Eure E-Mail-Accounts und achtet darauf, dass Ihr diese Passwörter nur über TLS-gesicherte Verbindungen verschickt! Passt auf, wenn Ihr in öffentlichen WLANs unterwegs seid! Und ganz allgemein: Sichert Eure Rechner, in dem Ihr nicht jedem Mist installiert und blind überall drauf klickt!

Aber die Massenüberwachung…!?

Natürlich ist seit Snowden nun wirklich jedem klar, dass Geheimdienste Massenüberwachung betreiben. Aber wie sinnvoll ist es vor diesem Hintergrund, die eigene Webcam abzukleben?

Für Massenüberwachung eignen sich weder Mikrofon noch Webcam, da zum Zugriff darauf der Rechner individuell angegriffen werden müsste. Das ist ein Aufwand, der zur flächendeckenden Überwachung auch für Geheimdienste viel zu groß ist. E-Mails und Chatnachrichten massenhaft abzusaugen, ist dagegen völlig unbemerkt möglich.

Um sich gegen flächendeckende Überwachung zu schützen, sollte man sich also lieber mit der Verschlüsselung von E-Mails beschäftigen. Oder damit, ob man nicht auf kryptographisch gesicherte Messenger ausweicht.

All das ist etwas aufwändiger, als einen bunten Sticker auf die Kamera zu kleben. Dafür bringt es wenigstens was.

Samsung 840 EVO auf dem Mac updaten

Wegen Performanzproblemen ist seit ein paar Tagen ein Firmare-Update für die SSD Samsung 840 EVO auf die Version EXT0DB6Q zum Download verfügbar. Da ich mein MacBook Pro vor einer Weile mit einer eben solchen SSD ausgerüstet hatte, habe ich mich nun dazu entschieden, dass Update zu wagen. Für das Update auf dem Mac ist man auf ein ISO-Image angewiesen, das auf CD gebrannt werden muss. Tatsächlich habe ich es nicht geschafft, das ISO-Image auf eine SD-Karte oder einen USB-Stick zu bringen, was ich mit anderen Images in der Vergangenheit schon hinbekommen habe. Vielleicht kann ja jemand anders was dazu sagen, ob ich diesmal einfach nur zu unfähig war oder ob es mit diesem Image wirklich nicht geht. Für das Firmware-Update muss von CD gebootet werden, der eigentliche Update-Prozess läuft unter FreeDOS. Nach einer Warnung, dass Daten verloren werden könnten, lief das Update bei mir relativ schnell durch, von meiner alten Firmware-Version aus ohne Datenverlust. Evtl. ist ein Update von älteren Firmware-Versionen aber tatsächlich destruktiv. Den TRIM-Modus musste ich anschließend mit dem Trim Enabler erneut einschalten. Im Heise-Forum wird von leichten Problem mit fstrim unter Linux berichtet.

Wirtschaftsinformatik

In der heutigen Welt geht ja bekanntermaßen nichts mehr ohne Computer. Da sich beklagenswerterweise jedoch nur wenige für deren Inneres interessieren, kümmern sich Experten um sie. Experten, für deren Ausbildung ich zuständig bin.

Es gibt so bestimmte Sachen, die einfach dazu gehören, wenn man ein Fach studiert, das etwas mit Informatik zu tun hat. Wenn man sich als Wirtschaftsinformatiker nicht den zweifelhaften Ruf erarbeiten will, dass man zwar Wirtschaft und Informatik kann, aber leider beides nur halb, dann ist es um so wichtiger, dass auch die „harten“ Fächer der Informatik nicht nur ein bisschen, sondern richtig beherrscht werden. Unter „reinen“ Informatikern wird immer wieder über das Niveau der sogenannten „Bindestrich-Informatiker“ diskutiert, mal mehr und mal weniger sachlich. Es ist also ganz wichtig, dass Wirtschaftsinformatiker nicht mit gefährlichem Halbwissen glänzen, damit nicht irgendwann diejenigen mit einer schlechten Meinung über das Fach Recht bekommen.

Doch was soll ein Wirtschaftsinformatiker überhaupt können? In Wirtschaftsunternehmen gibt es IT-Abteilungen und Fachabteilungen. Zu letzteren zählen alle, die nicht IT sind. Leider sprechen die Mitarbeiter an diesen beiden Fronten oftmals ganz unterschiedliche Sprachen. Mitarbeiter in den Fachabteilungen haben oftmals nur wenig bis gar keine Ahnung von Informatik – wie bereits oben diskutiert ein beklagenswerter Zustand – während Informatiker in ihrem Studium nicht unbedingt etwas über die Anwendungsfelder lernen. Hier kommen die Wirtschaftsinformatiker ins Spiel. Ein Wirtschaftsinformatiker soll in Unternehmen Mittlerpositionen zwischen der IT-Abteilung und den Fachabteilungen übernehmen. Das klappt aber nur, wenn er die Sprache von Informatikern und Mitarbeitern der Fachabteilungen spricht, also von beidem Ahnung hat und eben nicht nur halb.

Die Klausur

Howard Aiken
Howard Aiken

Ich baue in meinen Klausuren ganz gerne mal Scherzfragen ein. Diese sind eigentlich als kleines Punktegeschenk gedacht und normalerweise so absurd, dass sie auch ein Laie, zumindest aber jeder, der meine Vorlesung besucht hat, erkennen kann. Diese sind normalerweise in einem Block von Multiple-Choice-Fragen untergebracht, bei denen eine Reihe von Aussagen jeweils mit „trifft zu“ oder „trifft nicht zu“ zu beantworten sind. Ein Themenblock, in dem ich solche Spaßfragen untergebracht habe, befasst sich mit dem Mathematiker Howard Aiken. Aiken war ein Computerpionier, der einen der ersten elektronischen Rechner der Welt entwickelt hat, den Mark I. Der Mark I wurde von IBM gebaut und an der Harvard-Universität installiert. Die Systemarchitektur dieses frühen Computers wurde später als Harvard-Architektur bekannt und hat immer noch Einfluss auf das Design aktueller Prozessoren.

Es gibt aber immer wieder Situationen, in denen diese Fragen Studenten so verwirren, dass sie in Zeitdruck und der Nervosität einer Prüfungssituation tatsächlich diese Fragen mit „trifft zu“ ankreuzen, wie zum Beispiel:

Howard Aiken war nicht nur Mathematiker, sondern auch Architekt und am Entwurf von Gebäuden für die Harvard University beteiligt. Sein charakteristischer Stil wurde als Harvard-Architektur bekannt.

Da fühle ich mich dann – wenn auch mit umgekehrten Vorzeichen – ein bisschen wie Ted Mosby, als er in der Serie „How I Met Your Mother“ vor einer Gruppe BWL-Studenten über Architektur salbadert und nicht merkt, dass er im falschen Raum ist…

Das Bild von Howard Aiken ist direkt aus Wikimedia eingebunden, ein Klick öffnet die Originaldatei. Der Ausschnitt aus How I Met Your Mother ist direkt aus YouTube eingebunden.