prev up next


Aufgabe 7.2 (30 Punkte)

In der MySQL-Datenbank auf dbs ist eine Datenbank croak enthalten, die wiederum einzig die Tabelle nachrichten enthält. Sie nimmt ebenfalls Kurznachrichten mit Benutzernamen und Zeitstempel auf.

Erweitern Sie Ihr Programm um die Möglichkeit, die Kurznachrichten in Ihrer lokalen Datenbank mit der Datenbank auf dbs zu synchronisieren. Das bedeutet, dass Sie einerseits alle lokalen Nachrichten, die Sie seit der letzten Synchronisation in Ihr Programm eingegeben haben, in die Datenbank auf dbs einfügen und dass Sie andererseits alle Nachrichten, die seit der letzten Synchronisation von allen Nutzern in die Datenbank auf dbs eingefügt wurden, in Ihre lokale Datenbank kopieren. Achten Sie dabei darauf, die korrekten Zeitstempel der Nachrichten zu übertragen. Die in die globale Datenbank auf dbs überführten Nachrichten sollten nach der Synchronisation aus der lokalen Datenbank gelöscht werden. Die Daten, die aus der globalen in die lokale Datenbank kopiert wurden, müssen nicht dauerhaft gespeichert werden.

Achten Sie wieder auf eine geeignete Fehlerbehandlung und ausreichende Kommentierung Ihrer Quellen.

Was passiert, wenn Sie einen Benuzternamen in die globale Datenbank einfügen möchten, der nicht mit dem Benutzernamen des Datenbank-Logins übereinstimmt?

Musterlösung vom 15.06.2009:

Programm siehe Aufgabe 7.1.

Auf der Tabelle Nachrichten ist ein Trigger definiert, der bei jedem Tupel, was eingefügt werden soll, das Attribut 'Name' auf den Benuzternamen des Datenbankbenutzers setzt. Dadurch wird verhindert, Eintragungen unter falschem Benutzernamen zu tätigen.


prev up next