Datenbank-Frontends

Aus LinuxUser 12/2004

Datenbank-Frontends

Datenjongleure

Auf der Landkarte der Linux-Applikationen gibt es nicht viele weiße Flecke – aber einen findet man im Datenbank-Sektor: Im Quadranten, in dem sich Einsteigertauglichkeit und Funktionsvielfalt schneiden, fehlt eine freie Alternative. Benutzerfreundliche, grafische Clients versuchen die Lücke zu schließen.

Auf Datenbankservern spielt Linux dank MySQL [1], PostgreSQL [2] oder Oracle [3] eine wichtige Rolle. Diese Datenbanken, die professionellen Ansprüchen genügen, fühlen sich allerdings am wohlsten, wenn sie ein Administrator betreut und ein erfahrener Anwendern benutzt. Gerade Windows-Umsteiger vermissen deshalb ein Produkt wie Paradox, Access oder FileMaker, das sich auch von einem Anfänger bequem bedienen lässt. Dabei sollen keine tiefgehenden Kenntnisse in SQL – der verbreitetsten Abfragesprache für Datenbanken – nötig sein. Stattdessen möchte sich der Benutzer seine Formulare für Abfragen oder Berichte mit Hilfe einer grafischen Oberfläche erzeugen.

Diese Lücke versuchen unter Linux verschiede Clients für ausgewachsene SQL-Datenbanken zu schließen. Drei davon stellt dieser Artikel vor. Mit Kexi, Knoda und Rekall wurden Programme ausgewählt, die momentan aktiv entwickelt werden. Allesamt versprechen sie, dem Benutzer die Arbeit mit Datenbanken zu erleichtern. Alle benutzen QT als Bibliothek für die grafische Oberfläche und sind gut in KDE integriert.

Der Versuchsaufbau

Die Testkandidaten traten unter Suse 9.0 und Mandrake 10 an. Nach der Übersetzung aus den Quelltexten und der Installation mussten die Clients versuchsweise Kontakt zu Datenbankservern auf derselben Maschine und im lokalen Netz aufnehmen. Anschließend wurden Tabellen angelegt und bearbeitet sowie Abfragen, Formulare und Berichte generiert. Bei der Beurteilung stand eine möglichst einfache Bedienung im Vordergrund.

Eine Zusammenfassung der wichtigsten Eigenschaften der vorgestellten Programme finden Sie in Tabelle 1 am Ende dieses Artikels.

KNoda

Knoda [4] stammt wie die dazugehörenden Bibliotheken hk_classes von Horst Knorr. Es benötigt in der aktuellen Version 0.7.2test2 mindestens KDE 3.1. Der Client greift auf MySQL- und PostgreSQL-Server zu und kann auch mit Datenbanken im SQLite-Format [5] umgehen, die in lokalen Dateien gespeichert werden.

Zur Installation entpacken Sie zuerst die Bibliotheken hk_classes mit dem Befehl tar -xjvf hk_classes-0.7.2test2.tar.bz2, wechseln dann in das entstandene Verzeichnis hk_classes-0.7.2test2 und geben dort nacheinander die Befehle configure und make ein, um die Quelltexte zu übersetzen. Anschließend installieren Sie die Bibliotheken dann als Root mit dem Befehl make install. Das Programm Knoda übersetzen und installieren Sie aus dem Quelltextarchiv knoda-0.7.2test2.tar.bz2 auf die gleiche Weise.

Ohne zusätzliche Optionen wird das Programm in einem eigenen Verzeichnis außerhalb der KDE-Hierarchie installiert. Dieses Verzeichnis muss mit in die Directory-Liste aufgenommen werden, die in der Umgebungsvariablen KDEDIRS gespeichert ist, weil KNoda nur in diesen Pfaden nach seinen Grafiken und Icons sucht. Eine einfache Möglichkeit, diese Einstellung vor jedem Start zu setzen, wäre ein Mini-Skript mit folgendem Inhalt:

#!/bin/sh
export KDEDIRS=/usr/local/kde:/opt/kde3
/usr/local/kde/bin/knoda &

Ist diese kleine Hürde genommen lässt sich KNoda starten, indem man in einem Terminalfenster knoda.sh

tippt. Als erstes fragt das Programm nach dem Datenbanktreiber, den es verwenden soll, dann nach Server und Benutzernamen (Abbildung 1). Danach finden Sie sich im Hauptfenster von Knoda wieder (Abbildung 2).

Abbildung 1: Anmelden am Datenbankserver mit Knoda.

Abbildung 1: Anmelden am Datenbankserver mit Knoda.

Abbildung 2: Das Hauptfenster ist die Schaltzentrale von Knoda.

Abbildung 2: Das Hauptfenster ist die Schaltzentrale von Knoda.

In einer Pull-Down-Liste in der Werkzeugleiste sind alle Datenbanken auf dem gewählten Server aufgelistet. Links im Hauptfenster findet sich eine Baumansicht der Datenbankobjekte Tabellen, Formulare, Abfragen, Views und Berichte. Ein Doppelklick auf ein Element in der Liste öffnet einen Dialog zum Neuanlegen eines solchen Elements.

Der Editor zum Anlegen von Tabellen ist wie das ganze Programm sehr sorgfältig gestaltet und leicht zu bedienen (Abbildung 3).

Abbildung 3: Der Tabellendeditor von Knoda ist sehr benutzerfreundlich gestaltet.

Abbildung 3: Der Tabellendeditor von Knoda ist sehr benutzerfreundlich gestaltet.

Auch der Formulardesigner ist einfach zu benutzen, wenn man schon einmal mit einem solchen Programm gearbeitet hat. Als Grundlage von Formularen dienen Tabellen, Abfragen oder Views. Abfragen und Views lassen sich ebenfalls mit einem übersichtlichen Werkzeug zusammenstellen, ohne dass ein einziger SQL-Befehl einzugeben ist. Die Optionen zur Gestaltung der einzelnen Forumlarelemente sind sinnvoll angeordnet und leicht zu finden. Auch Umsteiger von Datenbankprogrammen aus der Windows-Welt finden sich hier schnell zurecht. Das gleiche gilt für die Erstellung von Berichten.

Abbildung 4: Eingabeformulare sind im Formulardesigner schnell erstellt.

Abbildung 4: Eingabeformulare sind im Formulardesigner schnell erstellt.

Formulare lassen sich durch Skripte in Python in der Funktionalität erweitern. Für den Import von Daten aus anderen Programmen nutzt Knoda das CSV-Format, das nahezu alle Tabellenkalkulationen und Datenbankprogramme lesen und schreiben.

Knoda macht einen sehr guten Eindruck. Die Programmoberfläche ist übersichtlich gestaltet, die Funktionen befinden sich genau dort, wo man sie erwartet. In der aktuellen Version 0.7.2test2 funktioniert auch der Zugriff auf SQLite-Datenbanken problemlos, so dass Sie zum Betrieb von KNoda keinen Datenbankserver benötigen. Knoda bringt ein hervorragendes Tutorial mit, das bei der Einarbeitung in die Programmbedienung hilft.

Rekall

Rekall wurde ursprünglich von der Firma TheKompany [6] produziert und vertrieben. Seit Anfang 2004 steht das Programm unter der GPL und wird von einer großen Entwicklergemeinde weiter entwickelt [7]. TheKompany bietet immer noch kostenpflichtigen Support für den Einsatz von Rekall, zusätzliche Datenbanktreiber für Mammoth PostgreSQL, DB2 und ODBC und eine Runtime- Umgebung für Rekall an. Das Programm ist auch in einer Windows-Version erhältlich, was den Einsatz in heterogenen Umgebungen ermöglicht. Von TheKompany gibt zusätzlich noch tkcRekall, eine Version von Rekall, die auf dem Linux-Handheld Zaurus läuft [8] und vollständig zur Desktop-Version kompatibel ist. Wir haben Ihnen Rekall kurz nach Erscheinen der ersten stabilen Version in [9] ausführlich vorgestellt, in der aktuellen Version 2.2.1 hat sich wenig an der Bedienung geändert.

Die Installation von Rekall gestaltet sich erfreulich einfach. Sie benötigen drei Quelltext-Archive, die Sie auf unserer Heft-CD und auf der Projekthomepage finden: xbase-2.0.0.tgz, xbsql-0.11 und rekall-2.2.1.tar.gz. Die Bibliotheken Xbase-2.0.0.tgz und xbsql-0.11.tgz benötigt Rekall für den Zugriff auf Daten im xbase-Format. Xbsql erfordert zum Übersetzen noch die readline-Bibliothek nebst Devel-Paket.

Zur Installation übersetzen und installieren Sie zunächst xbase-2.0.0.tgz, dann xbsql-0.11.tgz und zum Schluss Rekall selbst.

Rekall kann Datenbanken auf entfernten Servern nicht anlegen, sondern nur bearbeiten. Die Datenbank muss also vorher eingerichtet werden. Wie das auf einem PostgreSQL-Server klappt, erklärt der Kasten 1. Datenbanken im xbase-Format legt Rekall ohne externe Hilfe an.

Kasten 1: Eine Datenbank in PostgreSQL anlegen

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 lappe mit dem Passwort murmel gibt, der PostgreSQL-Datenbanken anlegen darf. Sie erzeugen diesen Datenbankbenutzer, indem Sie als User postgres in einer Konsole den Befehl createuser -P lappe und als Passwort murmel eingeben.

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

Nach dem Programmstart fragt Rekall die Verbindungsdaten zum Server ab und stellt alle Server in einer Liste im Programmfenster dar (Abbildung 5). Die Bezeichnung Server ist in Rekall doppelt belegt. Zum einen meinen die Entwickler damit einen Datenbank-Server wie MySQL oder PostgreSQL, zum anderen fasst Rekall darunter intern eine Reihe von Datenbankobjekten unter einem Namen zusammen.

Abbildung 5: Rekall nimmt zu verschiedenen Servern gleichzeitig Kontakt auf.

Abbildung 5: Rekall nimmt zu verschiedenen Servern gleichzeitig Kontakt auf.

Das Hauptfenster von Rekall zeigt links eine Reihe von Objekt-Klassen wie Server, Tabellen, Abfragen, Formulare und Berichte. Rechts daneben werden alle Instanzen der links ausgewählten Klasse gelistet. Für die Fensterorganisation stehen zwei Modi zur Verfügung: SDI oder MDI.

Der übersichtliche Tabelleneditor von Rekall lässt sich problemos bedienen. Das Programm bietet stets nur die Feldtypen an, die die jeweilige Datenbank unterstützt. Daher ist die Zahl der möglichen Typen bei xbase-Datenbanken sehr viel kleiner als etwa bei PostgreSQL (Abbildung 6).

Abbildung 6: Der Tabelleneditor von Rekall ist einfach zu bedienen.

Abbildung 6: Der Tabelleneditor von Rekall ist einfach zu bedienen.

Abfragen lassen sich genauso einfach erstellen. Im Abfrageeditor wählen Sie die gewünschten Tabellen aus einer Liste und verknüpfen die Schlüsselfelder durch Ziehen mit der Maus (Abbildung 7). Die Bedingungen und Felder für die Abfrage wählen Sie aus Listen aus. Abfragen lassen sich speichern und als Grundlage von Formularen verwenden.

Abbildung 7: Abfragen erstellen Sie in Rekall per Drag and Drop.

Abbildung 7: Abfragen erstellen Sie in Rekall per Drag and Drop.

Das Erstellen von Formularen ist in Rekall umständlich und unübersichtlich gelöst. Die Eigenschaften der einzelnen Formularelemente müssen in riesigen Baumansichten eingestellt werden. Der Assistent zum Formularbau hilft da etwas weiter: Mit ein paar Mausklicks erhalten Sie ein brauchbares Gerüst für Verbesserungen (Abbildung 8).

Abbildung 8: Der Formularassistent sorgt für brauchbare Formulare.

Abbildung 8: Der Formularassistent sorgt für brauchbare Formulare.

Eine große Stärke von Rekall liegt in den Import- und Exportfunktionen. Mit Hilfe von Copiers, die in der deutschen Übersetzung Kopieren genannt werden, konvertieren Sie dialoggesteuert Datenbanken oder Teile daraus ins CSV– oder ein XML-Format. Genauso sicher liest Rekall Daten, die in diesen Formaten vorliegen. Wie KNoda lässt sich auch Rekall durch Makros und Skripte in Python erweitern.

Rekall eignet sich sehr gut zum Erstellen von Datenbankanwendungen für PostgreSQL- und MySQL-Datenbankserver. Es stört einzig der unübersichtliche Formulareditor – hier bieten sowohl KNoda als auch Kexi deutlich mehr Komfort. Zusammen mit der bei TheKompany erhältlichen Laufzeitumbgebung lassen sich mit Rekall Anwendungen erstellen, die auch an Kunden weitergereicht werden können, ohne dass diese das Programm installieren müssen. Die Unterstützung des xbase-Formates erlaubt die Weiterbenutzung alter Datenbestände. Die ausführliche englischsprachige Online-Hilfe ist bei Problemen nützlich.

Kexi

Kexi [10] soll einmal die Datenbankkomponente von KOffice [11] werden. Zur Zeit liegt das Programm erst in einer sehr frühen Version 0.1beta4 vor und ist in weiten Teilen noch nicht benutzbar. Dank der Zusammenarbeit der Kexi-Entwickler mit der Firma OpenOffice Polska [12] gibt es auch ein Binary für Windows.

Zur Installation benötigen Sie neben dem Quelltext des Programms, den Sie auf unserer Heft-CD oder der Homepage des Programms finden, die kdelibs Version 3.2 oder neuer und die dazu gehörenden Devel-Pakete. Für den Zugriff auf Datenbankserver benötitig Kexi außerdem die Devel-Pakete von Postgres, MySQL oder SQLite.

Sind diese Voraussetzungen erfüllt und die entsprechenden Pakete installiert, entpacken Sie den Quelltext des Programms mit dem Befehl tar -xjvf kexi-01beta4.tar.bz2, wechseln in das neu entstandene Verzeichnis kexi-01beta4 und geben nacheinander die Befehle configure, make und (als Root) make install ein. Läuft alles glatt, geben Sie die Root-Rechte wieder ab und starten das Programm durch Eingabe von kexi & in einer Terminalemulation. Kexi unterstützt zur Zeit in der grafischen Oberfläche nur das Anlegen einer SQLite-Datenbank. Um auf PostgreSQL- oder MySQL-Datenbankserver zuzugreifen, rufen Sie das Programm mit einigen Kommandozeilenparametern auf (Kasten 2).

Kasten 2: Kommandozeilenparameter zum Datenbankzugriff für Kexi

In der aktuellen Version ermöglivht Kexi den Zugriff auf die Datenbankserver MySQL und PostgreSQL, eine Unterstützung von Firebird ist geplant. Zur Zeit erlaubt das Programm nur dem Datenbankbenutzer root, eine Datenbank anzulegen.

Um beispielsweise eine Datenbank im MySQL-Format anzulegen, rufen Sie das Programm auf der Kommandozeile mit der Option -createdb auf und geben über den Parameter -dbdriver den Typ des Datenbankservers mit. Um die Datenbank kontakte anzulegen, geben Sie also folgenden Befehl ein: kexi -dbdriver mysql -user root -createdb kontakte, für den Zugriff auf einen Postgresql-Server sieht der Befehl so aus: kexi -dbdriver postgresql -user root -createdb kontakte. Die neu erstellte Datenbank öffnen Sie dann mit dem Befehl kexi -dbdriver mysql -user root kontakte. Wenn Sie Kexi mit dem Parameter --help aufrufen, erläutert es weitere Kommandozeilenparameter, die auch in [13] erklärt sind.

Nach dem Start fragt Kexi, ob es eine bestehende Datenbank öffnen oder eine neue einrichten soll. Wenn Sie die Option New project stored in a file wählen, legt Kexi eine SQLite-Datenbank an. Diese enthält alle Tabellen, Abfragen, Formulare und Berichte und lässt sich problemlos weitergeben. Die Option New project stored on a database server funktioniert unter der grafischen Oberfläche noch nicht.

Im nächsten Schritt vergeben Sie einen Namen für das Projekt und landen im Hauptfenster des Programms (Abbildung 9).

Abbildung 9: Das Programmfenster von Kexi.

Abbildung 9: Das Programmfenster von Kexi.

Das Programmfenster enthält links eine Liste mit den Objekten einer Datenbank wie Tabellen, Abfragen und Formulare. In der Mitte finden Sie eine Liste zugehöriger Instanzen, rechts eine mit den Eigenschaften der Instanz.

Das Erstellen von Tabellen geht schnell von der Hand, der Tabelleneditor ist übersichtlich gestaltet und einfach zu bedienen. Zur Zeit ist es allerdings nicht möglich, die Struktur von bestehenden Tabellen zu verändern (Abbildung 10).

Abbildung 10: Das Design von Tabellen in Kexi ist übersichtlich gelöst.

Abbildung 10: Das Design von Tabellen in Kexi ist übersichtlich gelöst.

Als große Baustelle präsentiert sich derzeit noch der Formulareditor von Kexi. Das Platzieren von Formularelementen wie Textfeldern, Schaltflächen und Listen führte häufig zum Absturz des Programms. Der Formulareditor ist aber grundsätzlich gut konzipiert und übersichtlich gestaltet. Die Eigenschaften der Formularelemete lassens ich leicht über das Kontextmenü und das Eigenschaftsfenster erreichen (Abbildung 11).

Abbildung 11: Der Formulareditor von Kexi kennt die wichtigten Elemente zum Erstellen von Eingabemasken.

Abbildung 11: Der Formulareditor von Kexi kennt die wichtigten Elemente zum Erstellen von Eingabemasken.

Abfragen stellen Sie über einen grafischen Editor leicht zusammen. Die Kriterien dazu wählen Sie aus einer Liste. Berichte kann das Programm noch nicht ausgeben, auch das Scripting funktioniert noch nicht. Die Entwickler planen dafür sowohl Pyhton als auch JavaScript anzubieten.

Kexi ist zur Zeit für die tägliche Arbeit noch nicht zu gebrauchen: Zu viele Dinge funtktionieren noch nicht, wie sie sollen und verursachen Verdruss durch häufige Abstürze. Wenn das Programm einmal fertig ist, verspricht es ein leicht zu bedienender Datenbank-Client zu werden, der sich zudem perfekt in KDE integriert.

Fazit

Eine wirklich einfach zu bedienende Datenbankanwendung, die wie etwa Filemaker ohne Server auskommt, sucht man unter Linux immer noch vergebens. Kexi ist auf einem guten Weg dorthin – noch ist das Programm allerdings kaum benutzbar. Rekall verfügt über einen großen Funktionsumfang und läuft sehr stabil, nur ist der Formulareditor fast nicht zu bedienen. Als Pluspunkte von Rekall fallen die Stabilität und die guten Import- und Exportmöglichkeiten auf. Den besten Eindruck hinterließ KNoda. Das Programm bietet eine sorgfältig gestaltete Oberfläche, eine sehr gute Online-Hilfe und einen Funktionsumfang, der auch bei größeren Projekten überzeugt.

Tabelle 1: Datenbank-Frontends in der Übersicht

  Kexi KNoda Rekall
Version 0.1Beta4 0.7.2test2 2.2.1
Homepage http://www.kexi-project.org http://www.knoda.org http://www.rekallrevealed.org
Lizenz GPL GPL GPL
Sprache der Oberfläche Deutsch Deutsch Deutsch

Installation

Quellen-tar.gz/tar.bz2 x x x
rpm Mandrake 10, Debian, Slackware 10 Suse 9.1
Zusätzlich benötigte Bibliotheken kdelibs, QT, mysql, postgresql, sqlite hk_classes, QT, kdelibs, mysql, postgresql, sqlite, python xbase, xbsql, QT, mysql, postgresql, python

Unterstützte Datenbanksysteme

MySQL x x x
Postgresql x x x
SQLite x x
xbase x

Designwerkzeuge

Formulareditor x x x
Abfrageeditor x x x
Grafisches Erstellen von Verknüpfungen x x
Editor für Berichte x x

Skriptsprachen

Python -(1) + +
JavaScript -(1)

Datenaustausch

Import CSV CSV
Export CSV CSV/XML

Anwenderunterstützung

Online-Hilfe + +
Handbuch +
(1): Geplant

Glossar

SQL

Structured Query Language, eine weitgehend standardisierte Abfragesprache für Datenbanken.

CSV

Comma Separated Values. Ein Datenformat, bei dem die einzelnen Felder in einer Datenbank durch ein bestimmtes Zeichen, etwa ein Komma oder ein Semikolon getrennt sind.

xbase

Ein noch aus der DOS-Zeit stammendes Datenbankformat, das besonders unter Windows immer noch recht verbreitet ist.

SDI

Single Document Interface. Bei dieser Art von Programmoberfläche wird jedes zum Programm gehörende Fenster für sich geöffnet.

MDI

Multiple Document Interface. Hier gibt es ein Programmfenster als Rahmen für alle anderen Fenster, die nur innerhalb des Hauptfensters geöffnet und bewegt werden können.

LinuxUser 12/2004 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