Mini-Datenbanken, Teil 2: gCatalog und xmbase-grok

Aus LinuxUser 09/2000

Mini-Datenbanken, Teil 2: gCatalog und xmbase-grok

Felder und Bäume

In dieser Folge der Mini-Datenbanken-Serie stellen wir Ihnen zwei Programme vor: xmbase-grok und gCatalog. Ersteres ist ein vollständiges Datenbankprogramm, mit dem man nahezu alle Arten nicht-relationaler Daten verwalten kann. GCatalog hingegen befindet sich noch in einer frühen Entwicklungsphase. Dieses Programm wird es einmal ermöglichen, Datensätze in einer Baumstruktur zu sortieren und zu jedem Datensatz ein Bild abzulegen.

Das Programm xmbase-grok, kurz Grok, wird von seinem Programmierer als “einfaches Datenverwaltungsprogramm zur Verwaltung kleiner Datenbanken wie Telefonlisten, Tagebüchern, Aufgabenlisten oder URL-Listen” beschrieben. Das Programm läuft auch auf älteren Rechnern angenehm schnell, ist leicht zu bedienen und dabei sehr mächtig. Informationen über Grok und Hinweise zu neuen Versionen finden Sie unter [1].

Grok speichert die Datensätze in Textdateien, jeder Datensatz bildet eine Zeile in der Datei. Eine erweiterbare Exportfunktion sichert den Datenaustausch mit anderen Programmen.

Grok: Download und Installation

Da Grok mit Hilfe von Motif programmiert wurde und Sie sich wahrscheinlich wie der Autor den Download der 17 MByte großen Free-Motif-Bibliothek ersparen möchten, ist es am einfachsten, Sie laden ein vorkompiliertes Binary aus dem Internet. Zur Installation ist dann noch etwas Handarbeit erforderlich.

Alle notwendigen Dateien finden Sie auf dem Grok-FTP-Server [2]. Davon laden Sie xmbase-grok-1.4.3.linuxbin.gz und xmbase-grok-1.4.3.tar.gz herunter. Mit dem Befehl

gunzip xmbase-grok-1.4.3.linuxbin.gz

entpacken Sie das Programm xmbase-grok-1.4.3.linuxbin, das Sie in Grok umbenennen und mit dem Befehl chmod a+x grok ausführbar machen sollten. Nun verschieben Sie es als root z.B. nach /usr/local/bin, so dass es allen Benutzerinnen zugänglich ist.

Aus dem Paket xmbase-grok-1.4.3.tar.gz benötigen Sie jetzt noch die Beispieldateien, das Handbuch und die Hilfedatei. Sie entpacken das Archiv mit dem Befehl

tar -xvzf xmbase-grok-1.4.3.tar.gz

und kopieren alle Dateien aus xmbase-grok-1.4.3/grokdir/ in ein neu anzulegendes Verzeichnis .grok in Ihrem Home-Verzeichnis. Dieses enthält alle Datenbanken und Formulardateien.

Die Datei grok.hlp bildet eine Ausnahme und wandert nach /usr/local/lib. Tabelle 1 zeigt, welche Dateien aus dem Grok-Paket in welches Verzeichnis gehören.

Zum Abschluss der Installation sollten Sie sich das hervorragende englischsprachige grok-Handbuch ausdrucken, das Sie in der Datei Manual.ps finden.

Tabelle 1: Die Dateien von Grok und ihr Aufbewahrungsort.

Datei Verzeichnis Inhalt
Grok /usr/local/bin Das Datenbankprogramm selbst.
grok.hlp /usr/local/lib Die Hilfedatei zu Grok.
Manual.ps /usr/local/lib Das Grok-Handbuch.
  /.grok Das Verzeichnis für die Datenbank- und Formulardateien.

Der erste Programmstart

Wenn Sie Grok ohne Parameter in der Kommandozeile aufrufen, erscheint das Hauptfenster mit einem leeren Datenblatt (Abbildung 1).

Abbildung 1: Das Hauptfenster von Grok.

Abbildung 1: Das Hauptfenster von Grok.

Möchten Sie beim Start gleich auch eine Datenbank öffnen, geben Sie Grok deren Namen mit auf den Weg. Rufen Sie Grok beispielsweise mit dem Befehl grok biblio auf, wird die mitgelieferte Literaturdatenbank geöffnet (Abbildung 2).

Es gibt noch mehr Kommandozeilenparameter, die Sie in Tabelle 2 zusammen gefasst finden.

Tabelle 2: Die wichtigsten Kommandozeilenparameter von Grok.

Parameter Bedeutung
-h Listet eine kurze Meldung mit den verfügbaren Parametern und einen Hilfetext auf.
-v Gibt die Version von Grok aus.
-t Führt eine Abfrage aus, ohne die grafische Oberfläche von Grok zu öffnen. Das Format für den Programmaufruf sieht so aus: grok -t Datenbank Abfrage.
-T Funktioniert wie -t, unterdrückt jedoch die Kopfzeile der Ausgabe.
Abbildung 2: Die mitgelieferte Literaturdatenbank.

Abbildung 2: Die mitgelieferte Literaturdatenbank.

Das Grok-Hauptfenster ist viergeteilt: Im oberen Teil finden Sie ein Textfeld zur Eingabe von Suchbegriffen, darunter eine Tabelle mit allen Datensätzen der Datenbank. Im unteren Teil finden Sie die Formulardarstellung des aktuellen Datensatzes und Schaltflächen zur Navigation in der Datenbank (Abbildung 3).

Abbildung 3: Die Schaltflächen zur Datensatznavigation.

Abbildung 3: Die Schaltflächen zur Datensatznavigation.

Grok enthält eine Reihe von Beispieldatenbanken: Unter anderem gibt es eine Literaturdatenbank, eine Länderdatenbank, die alle Länder der Erde mit ihren Hauptstädten enthält, ein Tagebuch, eine Wetterdatenbank und die allseits beliebte CD-Datenbank.

Um eine davon zu öffnen, wählen Sie Database aus dem Menü und klicken auf den Namen der gewünschten Datenbank.

Das Menü Database zeigt alle Datenbankdateien im Verzeichnis ~/.grok an. Sie sollten auch Ihre selbst erstellten Datenbanken dort ablegen, damit Grok sie findet und ins Menü aufnimmt.

Bedienung

Grok lässt sich vollständig mit der Maus bedienen. Mit Hilfe der Schaltflächen am unteren Rand des Hauptfensters können Sie sich in der Datenbank bewegen (Abbildung 3). Wenn Sie auf einen Datensatz in der Tabelle im oberen Teil des Grok-Hauptfensters klicken, wird dieser Datensatz im Formular im unteren Teil angezeigt. Innerhalb der Eingabemaske können Sie mit der Tabulator-Taste von Feld zu Feld springen.

Gesucht, gefunden

Grok bietet verschiedene Möglichkeiten, eine Datenbank zu durchsuchen: Sie können sofort an der Kommandozeile eine Datenbankabfrage starten. Mit dem Befehl

grok -t biblio rürup

öffnet Grok die Datenbank biblio (im Verzeichnis ~/.grok) und gibt alle Datensätze, die den Suchbegriff rürup enthalten, auf der Standardausgabe aus, ohne die grafische Oberfläche des Programms zu starten. Sie können auch umfangreiche Abfragen über die Kommandozeile ausführen. Die Ergebnisse erscheinen immer auf der Standardausgabe.

Auf diese Weise können Sie Grok dazu verwenden, innerhalb eines Skripts eine Datenbank abzufragen und das Ergebnis der Abfrage in eine Datei zu schreiben. Unterhalb der Tabelle im Hauptfenster befindet sich eine Zeile mit den Buchstaben des Alphabets. Wenn Sie auf einen dieser Buchstaben klicken, zeigt Grok in der Tabelle nur noch die Datensätze an, deren erstes Feld mit dem ausgewählten Buchstaben beginnt. Groß- und Kleinschreibung wird nicht unterschieden. Eine andere Methode, dies zu bewerkstelligen, finden Sie im Menüpunkt File | Preferences, wenn Sie die Option Letter search checks all words aktivieren. Als dritte Möglichkeit, eine Datenbank zu durchsuchen, geben Sie einen Suchbegriff ins Feld Search: im Grok-Hauptfenster ein. Grok zeigt in der Tabelle alle Datensätze an, die diesen Begriff enthalten. Groß- und Kleinschreibung wird auch hier nicht unterschieden. Wenn Sie wieder alle Datensätze in der Tabelle anzeigen lassen möchten, wählen Sie Query/All aus dem Menü.

Um Datensätze abzufragen, die mehr als einem Kriterium entsprechen, können Sie Ausdrücke verwenden. Damit formulieren Sie eine oder mehrere Bedingungen, die ein Datensatz erfüllen muss, um in die Trefferliste aufgenommen zu werden. Um einen Eindruck vom Arbeiten mit Ausdrücken zu bekommen, sollten Sie File | Preferences aus dem Menü wählen und dort die Option Show query search expressions aktivieren.

Öffnen Sie nun die in Grok enthaltene Datei countries, und wählen Sie Query/Population under 1 million aus dem Menü. Im Textfeld Search erscheint nun der Ausdruck, (_3<\<>1000000). Der gesamte Ausdruck steht in runden Klammern, weil es sich um einen numerischen Ausdruck handelt. _3 steht für das dritte Feld der Datenbank, Population, das Zeichen \ bedeutet “kleiner als”. Die Abfrage wird also alle die Datensätze anzeigen, in denen der Wert im Feld Population kleiner als 1000000 ist.

In den Kapiteln Searches and Queries und Expression Grammar des Grok-Handbuchs finden Sie Einzelheiten zur Formulierung von Abfragen und Suchen.

Export

Wie schon die Abfragemöglichkeiten, so ist auch der Datenexport vielfältig konfigurierbar. Grok bietet für jede Datenbank einen HTML-Exportfilter, der alle Datensätze übersichtlich in einer HTML-Datei zusammen fasst (Abbildung 4). Dazu wählen Sie File/Export... aus dem Menü und entscheiden sich für eine der angebotenen “eingebauten” Exportvorlagen.

Wenn Sie Ihre Daten in ein anderes Format exportieren möchten, müssen Sie eine neue Vorlage, ein Template schreiben. Darin können Sie definieren, wie Grok die Ausgabe formatieren soll und welche Datensätze in der Ausgabedatei enthalten sein sollen. Auch an dieser Stelle sei auf das hervorragende Handbuch verwiesen, dort wird in einem eigenen Kapitel, Template Exports, alles Wissenswerte zum Datenexport erklärt.

Abbildung 4: Aus Grok exportierte Literaturdatenbank in kfm.

Abbildung 4: Aus Grok exportierte Literaturdatenbank in kfm.

Eigene Datenbanken definieren

Grok-Datenbanken bestehen aus mindestens zwei Dateien: die mit der Endung .db speichert die Datensätze, und bei der mit der Endung .gf handelt es sich um die Formulardatei.

Um eine neue Datenbank anzulegen, erzeugen Sie zunächst mit dem Befehl touch im ~/.grok-Verzeichnis eine Datei zum Speichern der Datensätze:

touch meinedatenbank.db

Anschließend wählen Sie den Menüpunkt File | Form Editor | Create new form from scratch an, und der Formulareditor von Grok erscheint (Abbildung 5).

Abbildung 5: Der Formulareditor von Grok.

Abbildung 5: Der Formulareditor von Grok.

Erschrecken Sie nicht ob der Vielfalt der Felder und Knöpfe; wichtig ist zunächst das obere Viertel. Ins Feld Form Name geben Sie einen Namen für das Eingabeformular ein. Sie brauchen dabei die Endung .gf nicht mit anzuführen. Referenced database füllen Sie mit dem Namen der soeben erzeugten Datensatzdatei. Im Allgemeinen haben Datensatz- und Formulardatei den gleichen Namen, sie unterscheiden sich nur in der Endung. Wenn Sie keinen Pfad zu den Dateien angegeben haben, werden sie automatisch im ~/.grok-Verzeichnis gespeichert.

Im Feld dbase field delim können Sie das Zeichen festlegen, das Grok als Trennzeichen zwischen den Feldern verwenden soll. Standard ist hier der Doppelpunkt. Wenn Sie nicht möchten, dass Benutzerinnen die Daten in der Datenbank verändern, wählen Sie die Option Read Only. Bei Comment können Sie das Formular kurz beschreiben.

Unter diesen Eingabefeldern finden Sie eine Reihe von Schaltflächen, mit denen Sie verschiedene Teile des Formulars bearbeiten können. Ein Klick auf Preview zeigt Ihnen das Formular so, wie es später im Hauptfenster von Grok zu sehen sein wird. Def Help öffnet ein Fenster, in das Sie einen Hilfetext zum Formular eingeben können. Dieser erscheint später, wenn die Benutzerin Ihrer Datenbank Help/Current Database aus dem Grok-Menü wählt.

Mit einem Mausklick auf Done verlassen Sie den Formulareditor, das “Formblatt” wird gespeichert und steht sofort für die Dateneingabe zur Verfügung. Wollen Sie die Formularbearbeitung beenden, ohne die Änderungen zu speichern, klicken Sie auf Cancel. Wenn Sie mit den Angaben im oberen Teil des Formulars fertig sind, können Sie beginnen, die einzelnen Felder der Datenbank zu definieren. Um ein neues Feld anzulegen, klicken Sie auf Add. Die Felder im unteren Teil des Formulareditors werden jetzt aktiviert. Zunächst müssen Sie den Feldtyp auswählen. Tabelle 3 gibt einen Überblick über die verfügbaren Typen. Anschließend legen Sie mit Internal field name den Namen des Felds fest. Für einfache Datenbanken sind jetzt noch Angaben im Textfeld Label text für die Beschriftung des Eingabefelds und Max input length für seine maximale Länge nötig. Im Textfeld Summary column müssen Sie eintragen, in welcher Tabellenspalte das Feld auftauchen soll. Mit Width in summary geben Sie schließlich die Breite des Felds in der Zusammenfassung an. In den anderen Formulareditorfeldern sind keine Einträge erforderlich. Wenn Sie hier mehr wissen möchten, bietet sich die Grok-Dokumentation als Referenz an.

Tabelle 3: Feldtypen

Input In ein Feld vom Typ Input können Sie Text und Zahlen eingeben.
Time Der Felddatentyp Time dient zur Verwaltung von Datums- und Zeitwerten.
Note Ein Note ist ein mehrzeiliges Eingabefeld. Sie können hier längere Texte eingeben.
Choice Dieser Felddatentyp erlaubt das Speichern einer Auswahl aus mehreren Möglichkeiten. Mehrere dieser Elemente beziehen sich auf das selbe Datenfeld. Grok sorgt dafür, dass stehts nur ein Choice ausgewählt werden kann.
Label Ein Label dient zur Ausgabe eines einzeiligen Texts. Es ist nicht an ein Feld in der Datenbank gebunden.
Print Felder vom Typ Print dienen zur Ausgabe des Inhalts eines Datenfelds. Sie können hier keine Daten eingeben.
Flag Mit Feldern vom Typ Flag können Sie die Begriffe wahr und falsch darstellen.
Button Mit Buttons lösen Sie Aktionen aus, zum Beispiel den Start eines Skripts.
Chart Mit Hilfe von Charts können Sie Werte grafisch ausgeben. Ein Beispiel für die Verwendung von Charts sehen Sie in Groks Beispieldatenbank weather.

Nach und nach definieren Sie jetzt die Felder Ihrer Datenbank. Wenn Sie einen Blick auf das Aussehen des Formulars werfen möchten, klicken Sie auf Preview. Um die Felder der Datenbank auf der Oberfläche des Formulars zu platzieren, wechseln Sie ins Form Editor Canvas. Dieses Fenster zeigt den Inhalt des Formulars an. Felder sind dunkelblau, mit einem schwarzen Rand und einer Trennlinie in der Mitte dargestellt (Abbildung 6). Sie können ein Feld bewegen, indem Sie mit der linken Maustaste hinein klicken und es dann mit gedrücktem Mausbutton verschieben. Wenn Sie eine der Ecken mit der linken Maustaste greifen, verändern Sie die Größe des Felds.

Abbildung 6: Die Vorschau des Formulareditors.

Abbildung 6: Die Vorschau des Formulareditors.

Sind Sie mit Ihren Felddefinitionen zufrieden, klicken Sie auf Done. Das Formular wird gespeichert, das Hauptfenster von Grok mit dem soeben neu definierten Formblatt erscheint, und Sie können sofort mit der Dateneingabe beginnen.

Einfach ein Baum

GCatalog unterscheidet sich von anderen Datenbankprogrammen dadurch, dass es keine Listen- und Tabellenansicht kennt, sondern die Daten in einer Baumstruktur sortiert. Wir stellen das Programm an dieser Stelle kurz vor, um das Konzept dahinter zu erläutern. Für die tägliche Arbeit ist GCatalog momentan noch nicht geeignet.

Abbildung 7: Das Hauptfenster von <code srcset=

gCatalog.” width=”300″ height=”255″ /> Abbildung 7: Das Hauptfenster von gCatalog.

Download und Installation von gCatalog sind schnell erledigt. Sie besorgen sich von [3] die Version 0.2.3, packen das Archiv mit dem Befehl

tar -xvzf gCatalog-0.2.3.tar.gz

aus, wechseln ins neu entstandene Verzeichnis gCatalog-0.2.3 und starten die Übersetzung mit dem Befehl

make

GCatalog benötigt zum Übersetzen die GNOME-Bibliotheken und das Paket imlib. Wenn der Kompiliervorgang beendet ist, geben Sie als Root

make install

ein, und fortan lässt sich das Programm durch Eingabe von gCatalog in einer Shell starten.

Das gCatalog-Hauptfenster ist dreigeteilt (Abbildung 7). Am oberen Rand finden Sie wie gewohnt Menü- und Werkzeugleiste, links unten sehen Sie eine Baumansicht der Datensätze, unten rechts die Datensätze selbst. GCatalog kann beliebig viele Dateien gleichzeitig geöffnet halten, über die Karteireiter wechseln Sie zwischen den Dateien hin und her.

Die Daten werden in der Baumstruktur nach Rubriken, Unterrubriken und Einträgen oder Items sortiert. Um eine neue Rubrik anzulegen, wählen Sie Bearbeiten/Operations/New Category. Im jetzt erscheinenden Dialog geben Sie eine Bezeichnung für die Rubrik ein. Unterrubriken erstellen Sie auf die gleiche Weise. In jeder Rubrik oder Unterrubrik können Sie beliebig viele Datensätze, in gCatalogitems genannt, ablegen. Sie wählen Bearbeiten/Operations/New Item und tragen eine Überschrift für den Datensatz ein. Um seine Beschreibung zu ändern, wählen Sie Bearbeiten/Change Description aus dem Menü und geben einen neuen Text ein. Zu jeder Rubrik und jedem Datensatz können Sie eine Grafik ablegen. Die Grafik ändern Sie mit Hilfe des Menübefehls Bearbeiten/Change Image, ein Dateiauswahldialog erscheint, in dem Sie die gewünschte Datei wählen können. Leider wird das Bild in der gegenwärtigen gCatalog-Version beim nächsten Öffnen der Datenbank nicht mehr angezeigt.

Was bleibt?

GCatalog hinterlässt einen zwiespältigen Eindruck. Zum Einen gibt es gute Ansätze, wie die Idee, Daten strukturiert abzulegen, und die Möglichkeit, zu jedem Datensatz ein Bild zu speichern. Auf der anderen Seite fehlt momentan noch zu viel: Es ist nicht möglich, Datensätze zu löschen oder die Rubriken oder Datensätze zu sortieren. Ebenso fehlt eine Funktion zum Durchsuchen der Datenbank. Das Programm “vergisst” zudem den Namen der Grafikdatei, die mit einem Datensatz verbunden ist.

Grok hingegen ist ein so mächtiges Programm zur Verwaltung von Daten, dass auch dieser Artikel nur einen kleiner Einblick in seine Fähigkeiten geben konnte. Mit Grok lassen sich beinahe alle Arten nicht-relationaler Datenbanken realisieren. Mit Hilfe des Formulareditors sind eigene Anforderungen leicht zu realisieren; durch die Möglichkeit, Exportfilter zu schreiben, ist der Datenaustausch mit anderen Programmen sicher gestellt.

Besonders gut gefällt mir, dass Grok mit einem Handbuch geliefert wird, das alle Aspekte des Programms ausführlich beschreibt, so dass bei Problemen kaum eine Frage offen bleibt. Wer sich nicht an dem vielleicht etwas “altmodischen” Aussehen von Motif stört, findet in Grok ein stabiles Datenbankprogramm für den täglichen Gebrauch.

Mini-Datenbanken: Was war, was kommt noch?

In LinuxUser 8/00 ging es um QuickList, eine kleine Datenbank, die Datensätze in Tabellenform anzeigt.

Heft 10/00 wird Ihnen Gaby vorstellen, eine Datenbank aus Belgien, die einfache Relationen erlaubt und über eine Skriptsprache erweiterbar ist.

Glossar

Motif

Eine Bibliothek zur Programmierung grafischer Programmoberflächen. Bis vor Kurzem war Motif nur gegen Nutzungsgebühren verwendbar, für freie Programme ist es aber mittlerweile kostenlos.

Binary

Ein kompiliertes (und daher in dieser Form nicht mehr für Menschen lesbares) ausführbares Programm.

~

Mit diesem Zeichen, der Tilde, wird das Home-Verzeichnis der Benutzerin abgekürzt.

Standardausgabe

Der Begriff aus alten Computerzeiten beschreibt das Gerät, etwa einen Bildschirm oder einen Drucker, auf dem ein Programm seine Daten gewöhnlich ausgibt.

HTML

Hypertext Markup Language”, die Seitenbeschreibungssprache des World Wide Web.

Pfad

Der Weg zu einer Datei im Dateibaum, also eine Auflistung aller Verzeichnisse, über die man gehen muss, um zur Datei zu kommen.

relational

Relationale Datenbanken bestehen aus mehreren miteinander verknüpften Tabellen.

Infos

[1] Die Grok-Homepage: http://www.bitrot.de/grok.html

[2] Der FTP-Server von Grok: ftp://ftp.fu-berlin.de/pub/unix/graphics/grok/

[3] Die gCatalog-Homepage: http://gCatalog.sourceforge.net/

Der Autor

Frank Wieduwilt studierte Geschichte und verdient sich seine Brötchen zur Zeit u.a. durch Computernachhilfe. Er lebt zusammen mit seiner Frau Sabine in Berlin.

LinuxUser 09/2000 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben