Datenbanken mit Rekall

Aus LinuxUser 03/2002

Datenbanken mit Rekall

Daten-Organisierer

Wer schielt da neidisch auf MS Access? Mit Rekall lassen sich PostgreSQL- und MySQL-Datenbanken einfach verwalten.

Daten, die von SQL-Servern und xbase-Dateien bereitgehalten werden, darzustellen und zu bearbeiten – wer zu diesem Zweck auf ein GUI-Programm zurückgreifen will, landet recht schnell beim Datenbank-Frontend Rekall der Firma theKompany [1]. Mit seiner Hilfe erstellen Sie Formulare und Berichte und fragen Daten ab, ohne SQL beherrschen zu müssen. Alle Funktionen sind über eine grafische Schnittstelle erreichbar. Rekall ist unabhängig von der verwendeteten Datenbank und daher sehr flexibel.

Das für SuSE, Caldera, Mandrake, Red Hat und Slackware erhältliche, zu Redaktionsschluss in der Version 1.0 erschienene Programm ist allerdings nicht frei und kostet 69,95 US-Dollar in der Download-Version bzw. 79,95 US-Dollar auf CD. Für den Preis erhalten Sie das Programm, den Quelltext und alle Updates. Sie dürfen den Sourcecode für Ihre Zwecke bearbeiten, aber nicht an andere weitergeben. Eine kostenlose Demo-Version gibt es auf [2]. Diese ist funktional nicht eingeschränkt, läuft aber immer nur 30 Minuten am Stück.

Vorarbeit

Für den Test auf einem Mandrake-8.0-System benutzten wir die Vorabversion 0.7, die uns der Hersteller zur Verfügung stellte, und überprüften die Aussagen kurzfristig anhand der 1.0-Demo-Version – sowohl Aussehen als auch Bedienung haben sich nicht verändert. Im Gegensatz zur in Heft 02/2002 vorgestellten Version 0.6 benötigt das Programm jetzt keine KDE-Bibliotheken mehr.

Um Rekall zu verwenden, brauchen Sie neben dem Paket rekall die korelibs (ebenfalls von theKompany) sowie die Bibliotheken xbase 2.0 für den Zugriff auf xbase-Datenbanken und xbsql 0.7, die es Rekall ermöglicht, mit SQL-Befehlen auf xbase-Daten zuzugreifen.

Selbstverständlich können Sie mit Rekall auch “richtige” Datenbanken manipulieren – Rekall unterstützt PostgreSQL und MySQL. Einen dieser Datenbank-Server müssen Sie dazu lokal installiert haben, sonst meldet der Paketmanager beim Installieren einen Fehler. Wenn Sie auf einen entfernten SQL-Server zugreifen möchten, spricht jedoch nichts dagegen, diese Fehlermeldung mit Paketmanager-Optionen zu umgehen. Auskennen müssen Sie sich mit PostgreSQL bzw. MySQL recht wenig, um mit Rekall – einmal mit rekall & gestartet – zu arbeiten: Das Anlegen von Datenbankbenutzern und das Verteilen der Rechte an den Datenbanken übernimmt Rekall nicht. Sobald es aber um SQL-Abfragen geht, steht das Programm Gewehr bei Fuß.

Datenbanken anlegen

Um das anfangs leere Rekall-Hauptfenster zu füllen, legen Sie als erstes mit File / New Database oder dem Button mit dem leeren Blatt in der Werkzeugleiste eine neue Datenbank an. Daraufhin fordert Sie ein Dateiauswahldialog auf, eine Datei für Rekalls Angaben zur Datenbank festzulegen. Deren Name sollte auf .kdb für “KDataBase” enden. Im selben Verzeichnis wie die .kdb-Datei werden später auch Eingabemasken und Abfragen, bei xbase-basierenden Datenbanken auch die Tabellen abgelegt. Ferner erzeugt Rekall dort die Dateien __RekallDesign.dbf, __RekallObjects.dbf und __RekallObjekts.dbt, die die Formular- und Berichtsdefinitionen speichern.

Das Hauptfenster füllt sich mit einer Reihe von Karteireitern, über die Sie die einzelnen Bestandteile der gerade geöffneten Datenbank erreichen (Abbildung 1).

Abbildung 1: Datenbank anlegen

Abbildung 1: Datenbank anlegen

In Rekall werden alle Datenbanken als Server bezeichnet, egal, ob es sich dabei um ein Datenbank-Management-System (DBMS) wie PostgreSQL oder eine xbase-Datenbank handelt. Ein solcher “Server” beschreibt eine Sammlung von Tabellen, Formularen, Abfragen und Berichten.

Um nicht zu sehr ins Theoretische abzugleiten, entwickeln wir im Folgenden eine xbase-Beispieldatenbank, damit Sie sich nicht mit der Konfiguration eines Datenbankservers herumschlagen müssen. Wie Sie die Beispieldatenbank von der Heft-CD nutzen, ist in Kasten 2 erklärt. Einen guten Einstieg in PostgreSQL gibt [3], eine Beschreibung von MySQL finden Sie in [4]. Kasten 1 erläutert, wie Sie eine Datenbank in PostgreSQL anlegen und von Rekall aus darauf zugreifen. In unserem Beispiel entwickeln wir eine Datenbank zum Speichern von Zeitschriftenartikeln. Neben dem Namen des Autors sollen der Titel, die Zeitschrift, in der der Artikel erschienen ist, die Ausgabe, das Erscheinungsjahr und die Seite gespeichert werden. Ein weiteres Feld Bemerkungen ermöglicht es, eine kurze Zusammenfassung des Artikels festzuhalten. Sie können unser Beispiel auch mit der in Heft 02/2002 kurz beschriebenen Version 0.6 nachvollziehen.

Kasten 1: Eine Datenbank in PostgreSQL

Nach der PostgreSQL-Installation starten Sie den Datenbank-Server als User postgres mit dem Befehl

postmaster -i -D /var/lib/pgsql/data &

Das Verzeichnis /var/lib/pgsql/data müssen Sie möglicherweise vorher noch anlegen. Im Beispiel gehen wir davon aus, dass es auf dem System einen Benutzer buecher mit dem Passwort Literatur gibt, der PostgreSQL-Datenbanken anlegen darf. Sie erzeugen diesen Datenbankuser, indem Sie als User postgres in einer Konsole den Befehl createuser -P buecher und als Passwort Literatur eingeben.

Anschließend melden Sie sich in einer Konsole mit su buecher als buecher an und legen mit dem Befehl createdb artikel die leere Zeitschriftendatenbank im Standardverzeichnis von PostgreSQL an.

Auf die soeben erstellte Datenbank greifen Sie von Rekall aus zu, indem Sie in den Reiter Servers des Hauptfensters folgende Daten eingeben: den Namen der neuerzeugten Datenbank, artikel im Server-Feld, pgsql als Type, localhost bei Host und zeitschriften als Name der Database. Als User geben Sie buecher und als PasswortLiteratur an. Jetzt können Sie in Rekall Tabellen, Formulare und Berichte für die PostgreSQL-Datenbank anlegen.

Kasten 2: Das Beispiel auf der Heft-CD nutzen

Entpacken Sie das Beispiel-Archiv von der Heft-CD mit dem Befehl tar -xzvf rekall-beispiel.tgz. Im neu erzeugten Unterverzeichnis Datenbanken finden Sie nun die Beispieldateien. Dieses Verzeichnis hat bei Ihnen sicherlich nicht den absoluten Pfad /home/frank/Datenbanken wie beim Autor. Daher sollten Sie die Datei artikel.kdb in einem Texteditor Ihrer Wahl (z. B. Kate) öffnen und in der ersten Zeile

server=zeitschriften|xbase||/home/frank/Datenbanken||||||No

den Pfad /home/frank/Datenbanken durch den absoluten Pfad zu Ihrem Beispieldatenverzeichnis ersetzen.

Um die Datenbank in Rekall zu öffnen, wählen Sie File / Open Database aus dem Menü und hangeln sich im Dateiauswahldialog zur soeben installierten Datei artikel.kdb durch.

Wir beginnen die Datenbankeinrichtung damit, in der Karteikarte Servers einen neuen Server anzulegen. Dazu klicken Sie auf New. Geben Sie ins Feld Server einen Namen für den Server ein, im Beispiel heißt er zeitschriften. In der Liste Type wählen Sie xbase für eine xbase-kompatible Datenbank. Das Feld Database legt das Verzeichnis fest, das die Tabellen und Formulare aufnehmen soll (Abbildung 1).

Tabellen

Die Daten der Datenbank werden in Tabellen gespeichert. Um redundante, also mehrfach in einer Datenbank abgelegte Information zu vermeiden, verteilen wir die Artikeldaten auf vier Tabellen. Ein Beispiel für potentiell redundante Daten ist der Autorenname: Er könnte mehrfach in der Artikeldatenbank erscheinen, wenn mehrere Artikel ein und denselben Verfasser haben. Anstatt den Namen nun mehrmals in die Tabelle artikel einzugeben, lagern wir die Autorennamen in eine eigene Tabelle, Autoren aus. Für jeden Autor gibt es in der Tabelle Autoren genau einen Datensatz. Mit Hilfe einer Verknüpfung, in Rekall Link genannt, wird der Name des Autors in der Tabelle artikel dargestellt. Diese stellen wir über das Schlüsselfeld autor_id der Tabelle Autoren her, das mit dem Feld autor in der Tabelle artikel verbunden wird. Die Tabelle Autoren nimmt also die Namen der Autoren auf, Zeitschriften die Namen der Zeitschriften. Die Tabelle Themen speichert in einem Oberbegriff, worum der Artikel handelt; in der Tabelle artikel finden die Daten zu den eigentlichen Artikeln Platz. Sie wird so mit den drei anderen Tabellen verknüpft, dass die Daten aus diesen Tabellen an der entsprechenden Stelle in der Artikeltabelle erscheinen.

All diese Tabellen legen Sie im Karteireiter Tables des Hauptprogrammfensters an. Er zeigt alle Tabellen der gerade geöffneten Datenbank in einer Baumansicht, die zur Zeit natürlich noch leer ist. Sie wählen daher den Server zeitschriften und klicken doppelt auf Create new table. Nachdem Sie der anzulegenden Tabelle einen Namen verpasst haben, öffnet sich ein Tabelleneditor per Klick auf artikel (Abbildung 2).

Abbildung 2: Der Tabelleneditor

Abbildung 2: Der Tabelleneditor

Er ermöglicht das übersichtliche Bearbeiten der Tabellenstruktur. In die Tabelle im mittleren Teil des Fensters geben Sie die Definition der einzelnen Felder ein. Dabei füllen Sie die Spalte Name mit dem Namen des Datenfeldes, wählen aus der Liste Type den Datentyp und geben in der Spalte Description eine kurze Beschreibung ein. Ein Feld jeder Tabelle muss vom Typ Primary Key, Primärschlüssel, sein. Dieser dient dazu, einen Datensatz eindeutig zu identifizieren. Da das xbase-Format einen solchen Feldtyp nicht kennt, greift Rekall hier zu einem Trick: Als Schlüssel wird die Startzeit des xbase-Treibers im Unix-Zeit-Stil verbunden mit einem Index für jeden neu erzeugten Datensatz verwendet, sodass jeder Datensatz einen einzigartigen Schlüssel bekommt. Den Primär-Key speichert Rekall übrigens in einem Textfeld von 22 Zeichen Länge.

In Tabelle 1 finden Sie die Felddefinitionen der Tabelle artikel unserer Beispieldatenbank. Bitte beachten Sie, dass Feldnamen in xbase-Dateien nur 10 Zeichen lang sein dürfen. Die Felder zeitschrif, thema und autor, die die Schlüssel der Fremdtabellen aufnehmen, sind vom Typ String und haben eine Länge von 22 Zeichen. Wenn Sie die Felder definiert haben, speichern Sie die Tabelle durch Klicken auf das Diskettensymbol in der Werkzeugleiste oder durch Wahl von File / Save Document aus dem Menü.

Der Aufbau der Tabellen für Themen, Autoren und Zeitschriften ist in den Tabellen 2 bis 4 gezeigt.

Tabelle 1: Die Felder der Beispieltabelle <C>artikel<C>

Feldname Feldtyp Feldlänge
artikel_id Primary Key
thema Text 22
autor Text 22
titel Text 120
zeitschrif Text 22
ausgabe Text 2
jahr Text 4
seite integer
bemerk Text 256

Tabelle 2: Der Tabellenaufbau von <C>thema<C>

Feldname Feldtyp Feldlänge
them_id Primary Key
Thema Text 70

Tabelle 3: Die Felder der Tabelle <C>autoren<C>

Feldname Feldtyp Feldlänge
autor_id Primary Key
autor Text 70

Tabelle 4: Der Aufbau der Beispieltabelle <C>zeitschriften<C>

Feldname Feldtyp Feldlänge
zeit_id Primary Key
zeitschrif Text 70

Um den Inhalt der mit der Tabelle artikel verknüpften Tabellen anzuzeigen, bietet Rekall die Möglichkeit, Links zu setzen. Soll etwa der Inhalt des Feldes zeitschrif aus der Tabelle zeitschriften in der Tabelle artikel angezeigt werden, wählen Sie im Tabelleneditor das Feld in der Tabelle artikel, in dem die verknüpfte Information angezeigt werden soll (hier zeitschrif) und klicken im Eigenschaftenfeld auf die Schaltfläche neben der Eigenschaft Link. Es erscheint ein Dialog, in dem Sie die Tabelle wählen, die das gewünschte Feld enthält. Bei Linked Field geben Sie ein, welches Feld die Verknüpfung herstellen soll. Im Normalfall ist das der Primärschlüssel der verknüpften Tabelle. Display Expression nimmt das Feld auf, dessen Inhalt dargestellt werden soll (Abbildung 3).

Abbildung 3: Ein Link zu einer anderen Tabelle

Abbildung 3: Ein Link zu einer anderen Tabelle

Dateneingabe

Diese ganze Arbeit der Tabellenerstellung war natürlich kein Selbstzweck – über View / Data View aus dem Menü des Tabelleneditors oder den Tabellen-Knopf in der Werkzeugleiste gilt es jetzt, Daten einzugeben. (Diese können auch aus ASCII-Dateien stammen – um sie zu importieren benötigen Sie aber den weiter unten besprochenen Copier.) In der Datenansicht sehen Sie alle Datensätze in einer tabellarischen Darstellung. Mit [Tab] wechseln Sie von Feld zu Feld, neue Datensätze werden nach der Eingabe sofort auf Übereinstimmung mit der Tabellendefinition überprüft und gespeichert. Verknüpfte Felder stellt Rekall als Auswahlliste dar, aus der Sie den Feldinhalt des verknüpften Feldes bequem auswählen. Die Breite der Tabellenspalten lassen sich verändern, so dass die Feldinhalte gut zu sehen sind (Abbildung 4).

Abbildung 4: Daten in der Tabellenansicht

Abbildung 4: Daten in der Tabellenansicht

Auch das Sortieren von Datensätzen ist unproblematisch: Klicken Sie einfach auf den Kopf der Spalte, nach der die Daten geordnet werden sollen. Neben der Feldbezeichnung erscheint ein Pfeil. Zeigt er nach oben, sortiert Rekall aufsteigend alphabetisch; ein weiterer Klick lässt den Pfeil nach unten zeigen, womit die Datensätze absteigend sortiert wären.

Bei größeren Tabellen wird die Datenbearbeitung in einer Tabelle schnell unbequem, so dass wir uns im nächsten Abschnitt der Gestaltung von Eingabemasken zuwenden.

Eingabemasken

Eine Eingabemaske, auch Form genannt, stellt die Daten einer oder mehrerer Tabellen übersichtlich dar, wobei immer nur ein Datensatz zur Zeit angezeigt wird. Man erstellt sie über den Karteireiter Forms im Hauptfenster, markiert den entsprechenden Server und klickt doppelt auf Create new form.

Zum Festlegen der Eigenschaften eines Formulars und seiner Elemente dienen Dialoge, die alle den gleichen, tabellarischen Aufbau haben. Links stehen die Eigenschaften (etwa Höhe und Breite des Forms oder die zugrundeliegende Tabelle), rechts die Werte. Um einen Eintrag zu bearbeiten, doppelklicken Sie die gewünschte Eigenschaft und editieren daraufhin den zugehörigen Wert.

Der erste Dialog bittet Sie, die Eigenschaften der Maske festzulegen. Die beiden wichtigsten Optionen sind Form caption, die Titelzeile des Forms, und Top-level block type: Hier bestimmen Sie, ob der Maske eine Tabelle (table), eine Abfrage (query) oder ein Menü (null) zugrunde liegt. Den Top-Level-Typ Menü wählen Sie, wenn Sie ein Formular erstellen, das ausschließlich Buttons zum Öffnen von anderen Formularen enthält. Entscheiden Sie sich für eine Tabelle, um den Inhalt der Tabelle artikel darzustellen (Abbildung 5). Ein Klick auf OK schließt das Fenster und macht Platz für den Query-Dialog, in dem Sie die Datenquelle für das Formular wählen.

Abbildung 5: Formulareigenschaften

Abbildung 5: Formulareigenschaften

Die wichtigsten Angaben sind hier Server name (für das Beispiel der Artikeldatenbank wählen Sie zeitschriften) und Table name, im Beispiel artikel. Das Feld Unique key wird automatisch mit dem Primärschlüssel der Tabelle gefüllt (Abbildung 6).

Abbildung 6: Datenquelle für das Formular festlegen

Abbildung 6: Datenquelle für das Formular festlegen

Nun fehlen noch Angaben zum Aussehen des Forms, die Sie im Block-Dialog eingeben: Höhe (Height), Breite (Width) und die Hintergrundfarbe (Background colour).

Endlich haben wir es in den Formulardesigner geschafft, mit dessen Hilfe Sie das Darstellungsfenster für die Daten gestalten. Die einzelnen Formularteile, Textfelder, Bezeichnungsfelder und Auswahllisten platzieren und bearbeiten Sie mit der Maus. Die Ecken eines markierten Feldes kennzeichnet Rekall blau (Abbildung 7).

Abbildung 7: Der Formulardesigner…

Abbildung 7: Der Formulardesigner…

Neue Textfelder erstellen Sie, indem Sie mit der rechten Maustaste auf den Hintergrund des Formulars klicken und New / Field aus dem Kontextmenü wählen. Sofort erscheint ein Dialog, in dem Sie das Aussehen des Eingabefeldes bestimmen. Am wichtigsten ist hier die Option Control name: Damit wählen Sie das Feld der Tabelle aus, das angezeigt werden soll. Die Eigenschaft Display Expression bestimmt, welcher Feldinhalt ausgegeben werden soll. Wenn Sie den Dialog mit OK schließen, erscheint das Textfeld auf der Arbeitsfläche des Dialogeditors. Die Größe des Feldes lässt sich auch nachträglich durch Ziehen an den blauen Quadraten an den Ecken des Textfeldes verändern. Sie erleichtern sich das Positionieren der einzelnen Elemente, wenn Sie die Form-Elemente am Raster ausrichten. Dazu klicken Sie auf das Symbol mit dem Raster und dem roten Häkchen in der Werkzeugleiste.

Nach und nach fügen Sie nun Textfelder für die Datenfelder und Auswahllisten für die Daten aus verknüpften Tabellen in das Formular ein. Die Beschriftung der Felder erfolgt mit Labels, die Sie über das Kontextmenü mit dem Befehl New / Label einfügen. Zum Speichern Ihrer Arbeit dient der Menüpunkt File / Save Document, während View / Data view in die Datenansicht umschaltet, die das Formular so anzeigt, wie Sie es später benutzen werden (Abbildung 8).

Abbildung 8: … und das fertige Formular

Abbildung 8: … und das fertige Formular

Mit Hilfe der Schaltflächen in der Werkzeugleiste können Sie sich nun von Datensatz zu Datensatz hangeln (Abbildung 9). Um auch ohne deren Hilfe in der Datenbank blättern zu können, ergänzen wir das Formular um Navigationsbuttons.

Abbildung 9: Werkzeugleiste für Formulare

Abbildung 9: Werkzeugleiste für Formulare

Zu diesem Zweck klicken Sie mit der rechten Maustaste auf den Hintergrund des Formulars und wählen New / Button aus dem Kontextmenü. Im Button-Dialog geben Sie den Namen des Knopfs, den Control Name, ein. Rekall kennt vier vordefinierte Namen: First, um zum ersten Datensatz zu gehen, Last, um zum letzten Datensatz zu gelangen und Next bzw. Previous, um einen Datensatz weiter bzw. zurück zu kommen. Das Feld Button text nimmt die Beschriftung des Knopfes auf, z. B. > für einen Next-Button. Schließlich geben Sie ins Feld On Click das Wort #Click ein. Dadurch erreichen Sie, dass das Programm auf einen Mausklick reagiert und eine eingebaute (oder selbstprogrammierte) Python-Funktion aufruft. Die fertigen Navigationsbuttons zeigt Abbildung 10.

Abbildung 10: Navigationsbuttons

Abbildung 10: Navigationsbuttons

Ähnliche Knöpfe lassen sich auch für andere Zwecke verwenden. So können Sie ein Formular entwerfen, das Buttons zum Aufrufen der verschiedenen Formulare des Projekts enthält (Abbildung 11). Im Unterschied zu den Navigationsbuttons enthalten sie als Control Name den Namen des jeweils aufzurufenden Forms und als “On Click“-Ereignis #GoForm. Die Buttons neben den Auswahllisten im Form artikeldaten entstanden auf die gleiche Weise und rufen Formulare auf, in denen der Inhalt der verknüpften Tabellen verändert werden kann.

Abbildung 11: Ein Auswahlmenü

Abbildung 11: Ein Auswahlmenü

Abfragen und ausgeben

Was wäre eine Datenbank ohne Abfragen? Diese dienen dazu, bestimmte Datensätze, die einem oder mehreren Kriterien entsprechen, aus der Datenbank zu ziehen und darzustellen. Rekall verwendet intern SQL-Abfragen, die Sie nicht zu Gesicht bekommen. Sie können eigene Abfragen grafisch mit Hilfe des Abfrageeditors definieren. Einen ersten Eindruck vermittelt Abbildung 12. Sie sehen die Tabellen der Beispieldatenbank, deren Verknüpfungen durch Linien dargestellt sind.

Abbildung 12: Der Abfragedesigner

Abbildung 12: Der Abfragedesigner

Die Ausgabe der Daten auf dem Drucker erfolgt mit Hilfe von Berichten, Reports. Ihre Erstellung gleicht der von Formularen, nur dass in den Feldern eines Berichts keine Datenänderung mehr möglich ist. Sie wählen dazu im Rekall-Hauptfenster den Karteireiter Reports, suchen die Tabelle von dem Server aus, der die passenden Datensätze enthält, und doppelklicken auf create new report.

Rekall erstellt ein leeres Berichtsfenster, das einem Formular sehr ähnelt – mit einem wesentlichen Unterschied: Dünne schwarze Linien teilen den Arbeitsbereich in einen oberen, mittleren und unteren Teil. Kopf- und Fußbereich werden als Kopf- und Fußzeile auf jeder Druckseite ausgegeben; der Berichtsrumpf enthält in der Designansicht den Datensatz.

Als Berichtersteller platzieren Sie also (fast) alle datenausgebenden Elemente im Mittelteil. Felder und Links fügen Sie genauso ein wie im Formulardesigner. Achten Sie darauf, vor und nach den Ausgabeelementen nicht zuviel Platz im Berichtsrumpf zu lassen, das verschwendet nur Platz auf der Druckseite.

Abbildung 13: Ein fertiger Bericht

Abbildung 13: Ein fertiger Bericht

Das Aussehen des fertigen Berichts prüfen Sie mit dem Menüpunkt View / Preview: Als Vorschauprogramm dient KGhostscript (Abbildung 14).

Abbildung 14: Ein Report in der Druckvorschau

Abbildung 14: Ein Report in der Druckvorschau

Export

Gelegentlich kommt jeder in die Verlegenheit, Daten mit anderen Anwendern austauschen zu müssen. Wenn der Kollege oder Freund ein anderes Datenbankprogramm verwendet, gilt es dann, die Daten in ein anderes Format zu bringen. Rekall unterstützt Sie dabei mit dem Copier, einer frei konfigurierbaren Konvertierungsroutine.

Die Daten aus der Tabelle artikel wandeln Sie in ein semikolongetrenntes Textformat um, indem Sie im Rekall-Hauptfenster den Karteireiter Copy auswählen und auf New Copier klicken. Im nun erscheinenden Copy-Dialog legen Sie fest, welche Daten Sie in welches Format umwandeln möchten. Der linke Teil des Dialogs enthält die Quelle des Konvertierungsvorganges: eine Datei (File), eine Datenbanktabelle (Table) oder eine SQL-Anweisung (SQL). Im rechten Teil des Dialogs stellen Sie das Konvertierungsziel ein: Table, File und (zum Speichern der Daten in einer XML-Datei) XML.

Beim Export einer Tabelle wie artikel kommt in der linken Hälfte des Dialogs der Karteireiter Table zum Einsatz (Abbildung 15). Hier wählen Sie den Server zeitschriften und im Pop-Down-Menü rechts daneben die Tabelle artikel. In der Liste unterhalb des Servers erscheinen daraufhin alle Felder der Datenbank. Sie wählen die zu exportierenden Felder, indem Sie den Feldnamen links markieren und auf Add >> klicken. Das Export-Format bestimmen Sie, indem Sie in der rechten Hälfte des Copier-Dialogs den Karteireiter File auswählen. Die Spalten der Tabelle sollen durch Semikola getrennt werden, also suchen Sie aus dem Pop-Down-Menü den Punkt Delimited heraus. Als Delimiter nehmen Sie das Semikolon; die Liste Qualifier enthält Zeichen zur Markierung eines Textinhaltes: Bei der Einstellung in Abbildung 15 werden alle Textstrings in Hochkommata gesetzt. Das Feld File/Error füllen Sie mit dem Namen der Ausgabedatei.

Den Export in dieses File starten Sie, indem Sie in der Werkzeugleiste auf das zweite Symbol von links (die beiden Quadrate mit dem Pfeil) klicken. Mit File / Save aus dem Menü erhalten Sie die gewählten Konvertierungsinformationen für spätere Export-Aktionen. Diese finden Sie später hinter dem Karteireiter Copy im Rekall-Hauptfenster.

Abbildung 15: Export in eine ASCII-Datei mit Semikola als Trennzeichen

Abbildung 15: Export in eine ASCII-Datei mit Semikola als Trennzeichen

Um Daten in eine XML-Datei umzuwandeln, wählen Sie im rechten Teil des Copier-Dialogs den Karteireiter XML. Ins Feld Main document tag schreiben Sie den Namen des Root-Elements der XML-Datei (im Beispiel ist das datenbank). Das Feld Row element tag nimmt das Tag zur Einleitung eines Datensatzes auf, wir haben ihm den Namen datensatz verpasst. Die einzelnen Elemente des Datensatzes übernehmen Sie durch Klicken auf Set from table. Sobald Sie einen Namen für die XML-Export-Datei vergeben haben, konvertieren Sie die Daten durch Klicken auf das “Execute Copy“-Symbol mit den zwei Quadraten in der Werkzeugleiste. Einen Ausschnitt der aus der Tabelle artikel erzeugten XML-Datei zeigt Abbildung 17.

Abbildung 16: Eine Tabelle nach XML exportieren

Abbildung 16: Eine Tabelle nach XML exportieren

Abbildung 17: Ausschnitt aus der exportierten XML-Datei

Abbildung 17: Ausschnitt aus der exportierten XML-Datei

Fazit

Rekall ist ein hervorragendes Programm zum Arbeiten mit Datenbanken. Wenn Sie keine Lust oder Zeit haben, sich in SQL einzuarbeiten, können Sie damit einfache Datenbanken auf den gängigsten Open-Source-DBMS realisieren. Die Möglichkeit, das xbase-Datenformat zu verwenden, erlaubt es sogar, Datenbanken ohne Einsatz eines Servers zu entwickeln.

Für Fortgeschrittene besteht die – in diesem Artikel nicht angesprochene – Möglichkeit, das Programm mit Python-Skripten zu erweitern: Hier hilft ein Blick in die englischsprachige Online-Hilfe weiter.

Die grafischen Hilfsmittel Formular-, Berichts- und Abfragedesigner verkürzen die Entwicklungszeit und machen es möglich, schnell zu einer gut aussehenden und funktionierenden Anwendung zu kommen. Voraussetzung für die Weitergabe einer Rekall-Datenbank ist allerdings, dass auch auf dem Rechner, auf dem die Datenbank laufen soll, Rekall installiert ist.

Leider fehlte uns die Zeit, Rekall 1.0 einem längeren Stabilitätstest zu unterziehen, sodass wir zu diesem Punkt bei Redaktionsschluss keine Aussage treffen konnten. Die Vorgängerversionen 0.6 und 0.7 neigten zu gelegentlichen Abstürzen.

Für die nahe Zukunft angekündigt ist eine gegen Qt 3.0.x gelinkte Ausgabe des Programms als auch eine auf KDE basierenden “Light”-Version mit leicht eingeschränktem Funktionsumfang, die beispielsweise keine verschachtelten Formulare unterstützt. Es bleibt also spannend…

Glossar

SQL

“Structured Query Language”, eine weitgehend genormte Abfragesprache für Datenbanken.

Quelltext

Eine Sammlung von Anweisungen in einer Programmiersprache, die (bei kompilierten Sprachen) mit Hilfe eines Compilers übersetzt werden müssen, ehe das Betriebssystem sie ausführen kann.

xbase

Bezeichnung für das dbase-Datenbankformat, das besonders in der DOS- und Windows-Welt immer noch weit verbreitet ist.

Unix-Zeit

In einem Unix-System wird die Zeit berechnet, indem die Sekunden seit dem ersten Januar 1970 gezählt werden.

Python

Eine plattformübergreifende Skriptsprache (vgl. http://www.python.org/), die nach der britischen Komikertruppe Monty Python benannt ist.

Infos

[1] http://www.thekompany.com/

[2] ftp://ftp.rygannon.com/pub/RekallDemo/

[3] Andreas Bauer: “Daten fest im Griff”, LinuxUser 12/2001, S. 68 ff.

[4] Wolfgang Kruck: “Datenchaos”, Linux-Magazin 01/2000, S. 130 ff., http://www.linux-magazin.de/ausgabe/2000/01/MySQL/mysql.html

LinuxUser 03/2002 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