Immer wieder gibt es Daten, die man gerne unterwegs dabei haben möchte. Das Konvertieren von Daten zwischen dem PDA und dem Desktop-System ist jedoch oft mit Fehlern verbunden. Portabase ist eine Datenbank, die auf dem Sharp Zaurus wie auf dem Desktop läuft.
Portabase ist eine einfache Datenbankanwendung, die ohne Server auskommt und für kleine und mittlere Datenbestände ohne Relationen geeignet ist. Ursprünglich für den Sharp Zaurus entwickelt, läuft das Programm mittlerweile auch auf dem Linux Desktop.
Wir testeten die aktuelle Version 1.6 auf einem Zaurus mit Original Sharp ROM, auf einem Notebook mit dem aktuellen Knoppix und unter Mandrake 9.0 auf einem Desktop-Rechner.
Installation
Die Installation auf dem Zaurus ist einfach: Sie besorgen sich das Paket portabase_1.6.arm.ipk von der Portabase-Homepage [1] oder unserer Heft-CD und installieren es mit dem Softwareinstallationsprogramm des Zaurus oder mit Qtopia-Desktop. Nach der Installation finden Sie das Symbol zum Starten des Programms im Anwendungen-Tab von Qtopia.
Benutzerinnen von debian sind ebenfalls fein raus: Auf der Programmhomepage und der Heft-CD gibt es ein fertig geschnürtes Paket, portabase_1.6-1.i386.deb, das Sie mit apt-get oder dpkg einspielen. Möglicherweise müssen Sie noch die Bibliothek beecrypt nachinstallieren, die Sie unter [2] finden. Sie starten das Programm durch eingabe von portabase& in einem Terminalfenster. Abbildung 1 zeigt einen Programmfehler, der unter Knoppix 3.2 auftrat: Die Beschriftung in der Menüzeile ist nicht zu sehen, die Menüs lassen sich aber trotzdem aktivieren und die einzelnen Menüpunkte sind sichtbar.
Wer eine andere Distribution benutzt, muss Portabase aus den Quellen übersetzen. Wie das geht, haben wir in Kasten 1 am Beispiel von Mandrake 9.0 beschrieben.
Und selbst dann, wenn Sie eine Portabase-Datenbank an eine Kollegin oder Freundin weiterreichen möchten, die kein Linux benutzt, müssen Sie nicht verzagen: Auf der Programmhomepage finden Sie ein Installationsprogramm, das Portabase unter Windows installiert.
Kasten 1: Portabase out of debian
Die Installation von Portabase aus den Quellen ist ein wenig aufwändig, da der Autor kein configure-Skript mitliefert und Metakit, eine vom Programm benötigte Bibliothek, einen zusätzlichen Patch benötigt. Neben Portabase und Metakit benötigen Sie noch die Bibliothek Beecrypt[3].
Sie entpacken zunächst die Datei metakit-2.4.8-38.tar.gz mit dem Befehl tar -xzvf metakit-2.4.8-38.tar.gz und dann das Portabase-Quelltextarchiv portabase-1.6.tar.gz in Ihrem Home-Verzeichnis. Im Homeverzeichnis geben Sie den Befehl patch -p0 --input=portabase/metakit-2.4.8.patch ein, um die Metakit-Bibliothek zu verändern, wechseln mit cd metakit-2.4.8/builds/ in das Metakit-Verzeichnis, starten durch Eingabe von ../unix/configure das configure-Skript, das die Makefiles für den Compiler erzeugt und übersetzen die Bibliothek mit dem Befehl make. Ein make install, eingegeben als root, installiert Metakit.
Die Installation der Bibliothek beecrypt-2.1.0 ist dagegen ein Spaziergang: Sie entpacken das Quelltextarchiv mit dem Befehl tar -xzvf beecrypt-2.1.0.tar.gz, wechseln in das Verzeichnis beecrypt-2.1.0 und geben nacheinander die Befehle ./configure, make und wieder als rootmake install ein.
Zu guter Letzt kommt Portabase selbst an die Reihe. Damit das Programm übersetzt werden kann, müssen die Umgebungsvariablen QTDIR und QMAKESPEC gesetzt sein, was Sie durch die Befehle export QTDIR=/usr/lib/qt3/ und export QMAKESPEC=/usr/lib/qt3/mkspecs/linux-g++/ erledigen. Falls Sie eine andere Distribution als Mandrake verwenden, müssen Sie den Pfad zu QT möglicherweise anpassen. Nachdem Sie in das Portabase-Quelltextverzeichnis gewechselt sind, erzeugen Sie durch Eingabe von /usr/lib/qt3/bin/qmake portabase_desktop.pro die Makefiles und starten mit make die Übersetzung. Ein abschließendes make install als root installiert das Programm, sie starten es durch Eingabe von portabase& in einem Terminalfenster (Abbildung 1).
Datenbanken anlegen
Die Desktop- und die PDA-Version sind im Aussehen und in der Bedienung identisch. Die Screenshots zeigen die PDA-Version.
Nach dem Start fordert das Programm zum Öffnen oder Neuanlegen einer Datenbank auf. Um eine neue Datenbank anzulegen, tippen Sie auf den Button New in der Menüzeile und geben den Namen der neuen Datenbank ein. Jetzt öffnet sich der Columns Editor, in dem Sie die einzelnen Datenfelder der Datenbank definieren (Abbildung 2).
Um ein Feld anzulegen, wählen Sie Add aus der Buttonleiste am unteren Bildschirmrand. In das Feld Name tragen Sie den Namen des Feldes ein, aus der Liste Type wählen Sie den Feldtyp. Einen Überblick über die in Portabase möglichen Feldtypen gibt Tabelle 1. Unter Default haben Sie die Möglichkeit, einen Standardwert für das Feld festzulegen. Ein besonderer Feldtyp ist Enum. Hier hinterlegen Sie eine Liste mit möglichen Einträgen für das Datenfeld. Wenn noch keine Aufzählung für die aktuelle Datenbank definiert ist, lädt Portabase bei Auswahl des Typs Enum den Enum Editor (Abbildung 3).
Der Enum-Editor funktioniert wie der Columns Editor, wenn Sie die Aufzählung fertig gestellt haben, tippen Sie auf OK und Sie landen wieder bei der Felddefinition. Im Nachhinein ändern Sie die Zusammenstellung der Listen, indem Sie File/Edit Enums aus dem Menü wählen.
Tippen auf OK speichert die Felddefinition. Im Columns Editor Ändern Sie über die Tasten Up und Down in der Buttonleiste die Reihenfolge der Felder in der Eingabemaske. Tippen auf Edit öffnet die Felddefinition zum Bearbeiten. Sie haben dann die Möglichkeit, den Feldnamen und den Standardwert zu ändern, den Feldtyp können Sie nachträglich nicht mehr wechseln. Auswahl von Delete schließlich löscht das ausgewählte Feld samt Inhalt.
Wenn Sie mit dem Aufbau der Datenbank zufrieden sind, tippen Sie auf OK, der Columns Editor wird geschlossen und Sie befinden sich in der Datensatzansicht.
Tabelle 1: Feldtypen
| Feldtyp | Beschreibung |
|---|---|
| String | Text, Länge beliebig ohne Zeilenumbrüche |
| Integer | Ganzzahlen, Wertebereich von -2147483648 bis 214748364 |
| Decimal | Dezimalzahlen, Wertebereich von 1.17549*10-38bis 13.40282*1038 |
| Boolean | Ja/Nein-Werte |
| Note | Längere Texte mit Zeilenumbrüchen |
| Date | Datum. Portabase verwendet das Datumsformat, das Sie in den Einstellungen von Qtopia angegeben haben. |
| Time | Uhrzeit |
| Enum | Aufzählungen. Sie haben die Möglichkeit, für jede Datenbank Listen mit Werten zum Auswählen zu erstellen. |
Daten bearbeiten
In der Datenblattansicht sehen Sie die Datensätze in Listenform. Am unteren Fensterrand befinden sich eine Reihe von Buttons, die durchnummeriert sind. Portabas zeigt die Datensätze stets seitenweise an, wie viele Sätze pro Seite zu sehen sind, stellen Sie in dem Feld links unten im Fenster ein.
Einen neuen Datensatz legen Sie an, indem Sie auf den Button New mit dem leeren Blatt Papier in der Buttonleiste klicken. Es öffnet sich ein Fenster, in dem der Datensatz in Datenblattform zu sehen ist (Abbildung 4).
Die Felder sind mit den ausgewählten Standardwerten vorbelegt, mit der [TAB]-Taste springen Sie von Feld zu Feld. Haben Sie alle Daten eingegeben, schließen Sie den Dialog mit OK. Um die Daten in der Datei zu sichern, tippen Sie auf den Save-Button in der Werkzeugleiste. Portabase speichert Änderungen an den Daten nicht automatisch.
Ansichtssache
Damit Sie nicht den Überblick über die Daten verlieren, bietet das Programm die Möglichkeit, nur ausgewählte Felder anzuzeigen. Um eine Ansicht, View, zu definieren wählen Sie View/New aus dem Menü, der View Editor wird angezeigt (Abbildung 5).
Sie wählen die Spalten aus, die angezeigt werden. Mit den Tasten Up und Down legen Sie die Reihenfolge der Felder in der Ansicht fest.
Datensätze filterfein
Im Gegensatz zu einem View, der bestimmte Spalten der Datenbanktabelle anzeigt, wählen Sie in einem Filter die Datensätze aus, die dargestellt werden sollen. Ein Filter enthält nur die Datensätze, die einer oder mehreren Bedingungen entsprechen.
Portabase kennt zwei Arten von Filtern: Quick-Filter enthalten nur eine Bedingung, normale Filter enthalten beliebig viele Bedingungen. Einen Quick-Filter legen Sie an, indem Sie Filter/Quick aus dem Menü wählen. Es erscheint ein Dialog, in dem Sie die Filterbedingung zusammen stellen (Abbildung 6).

Abbildung 6: Quickfilter
Aus der Liste im oberen Teil des Dialogs wählen Sie das Feld, auf das sich der Filter erstreckt oder Any Text Column falls Sie alle Felder filtern. Die Filterbedingung entnehmen Sie der Liste in der Mitte links, ein Häkchen vor Case Sensitive bewirkt, dass beim Vergleich des Feldinhaltes mit der Filterbedingung Groß- und Kleinschreibung Beachtung findet. Das Textfeld schießlich nimmt die Filterbedingung auf. Ein Tipp auf OK wendet den Filter an, jetzt sind nur noch die Datensätze zu sehen, die der Filterbedingung entsprechen.
Filter, die Sie immer wieder verwenden möchten, speichern Sie dauerhaft in der Datenbank, indem Sie Filter/Add aus dem Menü wählen. Jetzt vergeben Sie einen Namen für den Filter und fügen wie im Columns Editor Bedingungen hinzu (Abbildung 7).
Die einzelnen Filterbedingungen bearbeiten Sie im gleichen Dialog, der auch für die Quick-Filter zuständig ist.
Wenn Sie den Filter durch Tippen auf OK gespeichert haben, finden Sie ihn zur weiteren Verwendung im Filtermenü. Filter und Ansichten lassen sich kombinieren.
Ordnung ist das halbe Leben
Wenn die Datensätze nach der Eingabe wild durcheinander in der Datenbank stehen, ist es an der Zeit, Ordnung in die Reihenfolge der Daten zu bringen. Ume die Daten nach einem Feld in der aktuellen Ansicht zu sortieren, tippen Sie einfach auf den Kopf der Spalte. Beim ersten Tippen werden die Datensätze alphabetisch aufsteigend, beim zweiten Tippen absteigend angeordnet. Auch Sortierungen nach mehreren Feldern sind möglich. Sie wählen Sort/New aus dem Menü, vergeben einen Namen für die Sortierung und bestimmen die Felder nach denen die Datensätze geordnet werden sollen (Abbildung 8).
Daten rein und raus
Portabase liest und schreibt Daten im CSV– und in einem eigenen XML-Format. Das XML-Format ist auf [4] beschrieben. Die Daten im CSV-Format müssen in UTF-8 kodiert sein, jede Zeile enthält einen Datensatz, Zeichenketten sollen in doppelten Anführungszeichen eingeschlossen sein.
Sie importieren Datensätze stets in eine existierende Portabase-Datei, die die gleiche Struktur aufweisen muss wie die zu importierenden Daten. Zum Importieren wählen Sie File/Import aus dem Menü und bestimmen im folgenden Dateiauswahldialog die Datei, die die einzufügenden Daten enthält.
Der Import aus CSV funktioniert im Allgemeinen gut. Leider interpretiert das Programm zuweilen Zeichenketten als Datum und stellt diese dann als Datum dar. Der Import einer Datei mit über 1200 Datensätzen im CSV-Format funktionierte ansonsten problemlos, das Programm hat auf dem Zaurus mit Datenbanken in dieser Größe keine Probleme und läßt sich weiterhin flüssig bedienen.
Zum Konvertieren von Datenbanken müssen Sie die grafische Oberfläche von Portabase nicht starten. In einem Terminalfenster veranlassen Sie das Programm mit dem Befehl portabase fromcsv buecher.csv buecher.pob die CSV-Datei buecher.csv in die Portabase-Datei buecher.pob einzulesen. Das Konvertieren von XML in eine Portabase-Datenbank geschieht mit dem Befehl fromxml, mit den Befehlen toxml und tocsv wandeln Sie Portabase-Daten nach XML bzw. CSV. Eine genaue Übersicht über die Konvertierungsmöglichkeiten auf der Kommandozeile erhalten Sie, wenn Sie das Programm durch Eingabe von portabase -h aufrufen.
Portabase macht einen guten Eindruck. Bis auf den optischen Fehler unter Knoppix lief das Programm auch bei größeren Datenmengen absturzfrei und zügig. Bei Problemen hilft die sehr gute englischsprachige Online-Hilfe weiter. Auf weitere Entwicklungen darf man also gespannt sein.
Glossar
-
Patch
-
Englisch für “Flicken”. Ein Patch enthält Änderungen an einer Datei, die das Programm patch in die Originaldatei einfügt.
-
Makefiles
-
Ein Makefile enthält Anweisungen für den Compiler zum Übersetzen des Programmquelltextes und für die Installation des fertigen Programmes.
-
CSV
-
Character oder Comma Seperated Values. CSV-Dateien sind Datenbankdateien im Textformat. Jede Zeile enthält einen Datensatz, die Datenfelder sind durch ein bestimmtes Zeichen, meistens ein Komma oder den Tabulator voneinander getrennt.
-
UTF
-
UTF ist ein Unicode-Zeichensatz, der einen größeren Zeichenvorrat enthält als der bisher übliche ANSI-Zeichensatz, der nur 256 Zeichen zuließ.











