Assistenten allerorten

Viele Umsteiger von proprietären Datenbanken auf freie Produkte wie PostgreSQL und MySQL vermissen Verwaltungswerkzeuge und Hilfsmittel zum Erstellen von Abfragen, Berichten sowie Formularen. Das freie Rekall will diese Lücke füllen.

In Pocket speichern vorlesen Druckansicht 45 Kommentare lesen
Lesezeit: 9 Min.
Von
  • Julius Stiebert
Inhaltsverzeichnis

Rekall ist ein Datenbankmanagementsystem für Linux und Windows, ähnlich Microsofts Access. Im Unterschied dazu enthält es weder eine eigene Datenbank noch beschränkt es sich auf ein Betriebssystem. Seit Ende 2003 stehen große Teile des Programms unter der GPL.

Ursprünglich entwickelte Thekompany die Software mit dem Plan, sie in KOffice zu integrieren. Seit Version 2.2-Beta steht der Code nun unter einer Doppellizenz. Das Hauptprogramm ist unter der GPL benutzbar, Thekompany vertreibt aber weiterhin Versionen mit einer kommerziellen Lizenz.

Ein solches Programm sollte zwei Nutzergruppen bedienen. Zum einen die, die Daten bearbeiten wollen, ohne sich mit SQL zu befassen. Zum anderen sollte es Entwicklern Werkzeuge bieten, mit denen sie einfach Abfragen entwerfen und Formulare sowie Reports erstellen können, ohne sie durch Assistenten einzuschränken.

Noch ist Version 2.2 im Betastadium. Interessierte müssen bislang das Paket selbst übersetzen und dafür viel Zeit mitbringen. Ein 1,2-GHz-Athlon mit 1 GByte RAM brauchte für die Beta-2 inklusive Verpacken als RPM anderthalb Stunden. Beim Übersetzen müssen die Header-Dateien des anzusprechenden Datenbanksystems installiert sein, beispielsweise in Form der devel-Pakete. Andernfalls kompiliert Rekall die nötigen Treiber nicht und stellt folglich keine Verbindung zum Server her. Unter Linux/Unix sind zudem KDE3 oder Qt3 samt Headern erforderlich.

Neben den mitgelieferten Treibern für XBase, MySQL und PostgreSQL gibt es kommerzielle Plug-ins für DB2, ODBC sowie Oracle. Ist der passende Treiber eingerichtet, lässt sich die Verbindung zum Server einfach herstellen. Ein Assistent fragt Daten wie die Art des Datenbanksystems oder den Benutzernamen ab und wählt schließlich die gewünschte Datenbank aus. Enthält sie schon Tabellen, erwartet man, dass Rekall diese anzeigt. Dies war aber nicht der Fall. Erst nach einer Änderung der Konfigurationsparameter funktionierte es.

Neue Tabellen lassen sich einfach per Maske anlegen. Neben Namen und Typ der Felder definiert der Benutzer hier den Primary Key und vergibt eine Beschreibung. Eine Unterstützung für die Large Objects aus PostgreSQL fehlt allerdings, während Rekall MySQLs Texttypen kennt. Für jedes Feld lassen sich Länge und Typ einstellen und festlegen, ob NULL-Werte erlaubt sind. Außerdem kann man Verknüpfungen (Links) mit anderen Tabellen herstellen, um so Redundanzen zu vermeiden. Diese bilden jedoch keinen Ersatz für Fremdschlüssel, sondern ermöglichen eher VIEW-ähnliche Funktionen. Zwar erlaubt Rekall, ein Feld mit dem Attribut „Foreign Key“ zu versehen, beim Speichern dieser Definition verwandelt es den Eintrag jedoch stillschweigend in „Integer“. Gelegentlich blendet Rekall kleine Hilfetexte ein, sobald eine Option markiert ist.

Beim Arbeiten mit Tabellen stehen zwei Varianten zur Verfügung: Design- und Datenansicht. Erstere ist für Änderungen am Tabellenlayout zuständig. Sind dort alle nötigen Felder mit den passenden Eigenschaften angelegt, wechselt man in die Datenansicht und füllt die Felder aus. Letztlich ist die Pflege über die Datenansicht allerdings umständlich und unübersichtlich. Aus diesem Grund bietet Rekall Formulare, die nur einen Datensatz gleichzeitig zum Bearbeiten oder Löschen anzeigen. Neue Einträge lassen sich ebenfalls in diesen Formularen anlegen. Formulare entstehen schnell und bequem durch Zusammenklicken per Assistent: Ein paar Fragen beantwortet - und fertig. Wer etwas mehr Kontrolle liebt, erstellt die Formulare ohne Assistenten.

Als Preis für den größeren Einfluss ist mehr Zeit aufzuwenden: In drei Dialogboxen muss der Entwickler zahlreiche Werte festlegen. Nach diesen Schritten weiß der Formulardesigner über die Datenquelle sowie die grundlegende Struktur des Formulars Bescheid und öffnet sich mit einem leeren Eingabebereich. Darin platziert der Nutzer Elemente nach Belieben, deren Verhalten er ausgiebig konfigurieren kann. Frei nach dem Motto „Automatisierung ist gut, Kontrolle ist besser“, kann sich die Erstellung eines Formulars so leicht zur Tortur entwickeln.

Reicht ein einfaches Formular zur Datenpflege, empfiehlt sich daher der Assistent. Genügt er nicht mehr, muss man im Designmodus selbst Hand anlegen. Dank der vielfältigen Elemente, die Rekall hier anbietet, gibt es bei der Erstellung komplexer Formulare kaum Grenzen. Wem die vorhandenen Komponenten nicht ausreichen, der darf eigene erstellen. Diese stehen für alle Formulare und Reports zur Verfügung.

Datenbanken und Benutzer kann Rekall nicht anlegen, Abfragen lassen sich hingegen interaktiv ohne detaillierte SQL-Kenntnisse zusammenklicken. Im Query-Bereich öffnet man das Dialogfenster für eine neue Abfrage und kann per Drag & Drop loslegen. Nach der Auswahl einer Datenbank erscheint die Liste verfügbarer Tabellen. Die Oberfläche dieses Bereichs ähnelt der von Access. Im oberen Teil des Fensters zeigt Rekall die Felder der ausgewählten Tabellen. Die für eine Abfrage benötigten lassen sich in den dafür vorgesehenen Abschnitt des Fensters ziehen. Hier kann man ebenfalls Filter- oder Sortierkriterien einstellen. Per Drag & Drop entstehen im oberen Bereich Verbindungen zwischen den Tabellen. Rekall stellt sie als Linie zwischen den Feldern dar und setzt sie in der Query als Join um (s. Aufmacher). Spezielle Attribute, beispielsweise Bedingungen in WHERE-Klauseln, lassen sich überdies direkt eingeben. SQL-Kennern fällt es sicher leichter, sich im Abfragedialog zurechtzufinden. Nach kurzer Einarbeitung sollten auch SQL-Laien die gewünschten Daten aus den Tabellen ermitteln können.

Im unteren Bereich des Fensters erscheint der kreierte SQL-Code, was beim Erlernen der Abfragesprache hilft. Eine fertige Abfrage kann Rekall zur weiteren Verwendung und gegebenenfalls Änderung speichern. Außerdem stehen gespeicherte Abfragen in anderen Programmteilen zur Verfügung: Unter anderem kann man sie direkt in einem Formular ausführen, um so einen Datensatz zu finden.

Für Reports wählt der Anwender wie bei Formularen zwischen einem Assistenten und einem Designmodus. Sie können ihre Daten direkt aus Tabellen oder aus Abfragen beziehen. Letzteres ist die einzige Möglichkeit, Informationen aus mehreren Tabellen zusammenzuführen. Rekall erlaubt es, Reports in unterschiedlichen Formaten zu erstellen, um sie auf verschiedenen Papierformaten auszudrucken. Läuft das Programm unter KDE, nutzt es dessen Drucksystem und kann so direkt Postscript- oder PDF-Dateien erstellen. Ebenso wie bei den Formularen führt der Assistent schnell zum Ziel. Sobald aber der Bericht individuelle Anforderungen erfüllen muss, geht es nur mit dem Designer. Wegen der umfangreichen Einstellungen erfordert dieser Weg wieder mehr Zeit.

Abfragen, Formulare und Reports sichert Rekall je nach Einstellung in Dateien oder direkt in der Datenbank. Für Letzteres erstellt es eine eigene Tabelle innerhalb der genutzten Datenbank. Dies hat den Vorteil, dass die gespeicherten Funktionen verwendbar sind, wenn Rekall remote auf die Datenbank zugreift. Tabellen, Formulare, ausgewählte Daten et cetera sichert das Werkzeug bei Bedarf in XML-Dateien, aus denen es sie auch wieder herstellen kann.

Durch Makros oder Python-Skripte lässt sich das Tool erweitern und Arbeit erleichtern. Erstere sind der einfachere Weg zur Automatisierung wiederkehrender Arbeitsabläufe. Der Makro-Editor stellt alle verfügbaren Funktionen in einer Liste dar. Ein fertiges Makro kann man speichern und beispielsweise durch einen Funktionsknopf aus einem Formular starten.

Python-Programmierern stehen umfangreichere Funktionen zur Verfügung. Sie können zur Erstellung von Erweiterungen auf alle installierten Python-Bibliotheken zugreifen und Fehler per integriertem Debugger aufspüren. Die fertigen Skripte sind zum einen in Formulare und Report einbettbar, wo sie durch festgelegte Ereignisse starten. Zum anderen lassen sie sich als Module sichern, die durch andere Skripte wie eine Python-Bibliothek verwendet werden. Wer diese Sprache beherrscht, bekommt so ein mächtiges Werkzeug an die Hand.

Rekall ist ein taugliches Datenbankmanagementsystem, dem man anmerkt, dass es sich erst um Version 2.2 handelt. Obwohl sich diese Release noch in der Entwicklung befindet, lief sie im Test stabil. Über kurz oder lang könnte aus Rekall ein freier Access-Ersatz entstehen. Schon jetzt ist es eine ernst zu nehmende Alternative, sofern jemand eine Access-ähnliche Applikation unter Linux benötigt. Unter Windows hingegen ist Access zurzeit noch das Programm der Wahl.

Positiv fällt auf, dass Rekall den Anwender nicht mit einer überladenen Oberfläche erschlägt. Ferner beherrscht es nicht nur die grundlegenden Funktionen, sondern geht mit dem Python-Skripting darüber hinaus. Die Werkzeuge schaffen den Spagat zwischen Effektivität und komfortabler Arbeit. Der Entwickler kommt schnell zum Ziel, mit etwas mehr Zeit kann er jedoch individuelle Lösungen erstellen. Zusätzlich unterstützt ihn eine gute, englische Dokumentation. Durch die neue Lizenz ist zu erwarten, dass sich in Kürze weitere Entwickler an dem Projekt beteiligen.

Julius Stiebert
ist freier Journalist.

Mehr Infos

iX-WERTUNG

[+] Programm unter der GPL
[+] zahlreiche Funktionen
[+] eigene Erweiterungen möglich
[-] Benutzerführung komplett in Englisch
[-] langwierige Installation

(ck)