Dr. Andreas Borchert Sektion Angewandte Informationsverarbeitung 9. Dezember 1999
Ingo Melzer Blatt 7


[c]



Implementierung kleiner Datenbanken unter UNIX II (WS 1999/2000)


Abgabetermin 23. Dezember 1999

Ein Interface für Hashes (40 Punkte)

In der Vorlesung wurde TBI und dessen Modulstruktur vorgestellt. Die Aufgabe dieses Blattes ist die Implementierung des Moduls TBD::Hash, das einen Zugriff auf Hashes über das Tabelleninterface ermöglicht. Dafür sollten Sie sich als erstes das Paket TBI-0.02 bei sich installieren (auspacken) und Ihr neues Packet in dieser Umgebung schreiben, da dann ein einfacheres Testen möglich ist. Die ausgepackten Module TBD::DBI , TBD::Text und TBD::CachingTable bieten zusätzlich eine gute Hilfe, da man hier eine vergleichbare Implementierung sehen kann. Ihre Hashes sollten als Schlüssel immer die durch ifs[*] getrennten Felder und als Werte alle Datensätze der Tabelle enthalten. Zwei einfache Tabellen und deren Inhalt könnte so aussehen:

my %table = (
   "A" => {
      'ifs' => ':',
      'keyfields' => [qw(a)],
      'fields' => [qw(a b c)],
   },
   "B" => {
      'ifs' => '~',
      'keyfields' => [qw(a b)],
      'fields' => [qw(a b c d)],
   },
);
my %contents = (
   "A" => {
      '1' => '1:foo:bar',
      '2' => '2:bar:foo',
      '3' => '3:ulm:koeln',
      '4' => '4:ulm:york',
   },
   "B" => {
      '1~eins' => '1~eins~one~une',
      '1~one' => '1~one~une~eins',
      '2~zwei' => '2~zwei~two~deux',
      '2~two' => '2~two~deux~zwei',
   },
);

In der Hilfe zu TBI finden Sie unter Methods of Table Objects die Methoden, die sie benötigen werden. Der Constructor und ein paar weitere Dinge sind in TBD::Text zu finden.

In einem zweiten Schritt sollten Sie Ihr neues Modul dann mit Hilfe von ExtUtils::MakeMaker und Test testen. Schreiben Sie ein kurzes (unter zehn Zeilen langes) Makefile.PL und ein oder zwei Testmodule. Obige Tabellendefinition eignet sich sehr gut als Grundlage für die Testmodule.

Um die vollen 40 Punkte für dieses Blatt zu erhalten, erstellen Sie als letztes noch eine Dokumentation im POD-Format.


Noch ein paar Tips:



Footnotes

...
Regulärer Ausdruck, der beim Constructor angegeben wird.



Ingo Melzer 12/9/1999