Mini-Datenbanken, Teil 1: Quicklist

Aus LinuxUser 08/2000

Mini-Datenbanken, Teil 1: Quicklist

Flotte Listen

Wer in Verbindung mit Linux das Wort “Datenbanken” hört, denkt unwillkürlich an serverbasierte Systeme wie PostgreSQL, MySQL [1] oder Interbase [2]. Es ist unbestritten, dass diese Programme für die Verwaltung tausender Adressen oder für Internetshops ihre Berechtigung haben. Für Diejenigen, die nur ein paar Zeitschriftenartikel oder ihre Kochrezeptsammlung verwalten wollen, sind sie jedoch hoffnungslos überdimensioniert.

Wir möchten Ihnen in dieser und den beiden folgenden Ausgaben Datenbankprogramme vorstellen, die klein, kompakt und möglichst einfach zu bedienen sind. Diese Programme haben gemeinsam, dass sie ohne aufwendige Serverkonfiguration in Betrieb zu nehmen sind.

Neben der Installation zeigen wir an Beispielen, wofür sich die Kandidaten besonders eignen. Wir gehen auf Besonderheiten bei der Bedienung ein und prüfen, inwieweit ein Datenaustausch mit anderen Programmen möglich ist.

Wie viele andere Berufsgruppen pflegen auch die Datenbanker eine eigene “Fachsprache”. Ganz ohne sie kommen wir auch bei Minidatenbanken nicht aus. In Tabelle 1 finden Sie daher Erklärungen für Begriffe, die im Folgenden häufiger auftauchen.

Tabelle 1: Kleines Lexikon der Datenbankbegriffe

Feld Kleinste Informationseinheit einer Datenbank. Ein Feld enthält genau einen Wert, z. B. einen Nachnamen innerhalb einer Adressverwaltung.
Datensatz In einem Datensatz sind alle zusammengehörenden Felder zusammengefasst, beispielsweise alle Angaben zu einer Adresse.
Tabelle Eine Tabelle wiederum fasst Datensätze zusammen. Eine Zeile einer Tabelle entspricht einem Datensatz, eine Tabellenzelle einem Feld.
Datenbank Eine Datenbank ist eine Sammlung beliebig strukturierter Daten, sie kann aus einer oder mehreren Tabellen bestehen. QuickList unterstützt nur eine Tabelle pro Datenbank.
Bericht Die formatierte Ausgabe aller oder bestimmter Datensätze einer Datenbank nennt man Bericht.
Abfrage Eine Abfrage enthält die Untermenge der Datensätze und Felder einer Datenbank, die bestimmte Kriterien erfüllt.
Filter Ein Filter umfasst den Teil der Datensätze, der bestimmten Kriterien entspricht. In einem Filter befinden sich stets vollständige Datensätze.
Formular Ein Formular ist ein Bildschirmbereich, in dem jeweils ein Datensatz dargestellt wird.

QuickList

Den Anfang dieser Artikelreihe macht das Programm QuickList. Seine Entwickler verstehen es als Werkzeug, das ohne überflüssigen Ballast einfach nur beliebige Daten verwaltet. Nach ihren Aussagen soll QuickList einmal eine Datenbank ähnlich dem Datenbankmodul von RagTime für den Mac oder dem Datenbankteil von Works für Windows werden.

QuickList stellt die Datensätze in einer Tabelle dar, eine Formularansicht ist für zukünftige Versionen geplant. Neben der Beschränkung auf die wirklich wichtige Funktionalität (Das Motto der Entwickler lautet: “Kein SQL, keine Relationen!”), sind geringe Größe und hohe Ausführungsgeschwindigkeit wichtige Entwicklungsziele. Auch auf einem 486er soll QuickList noch ausreichend schnell laufen, in Ermangelung eines solchen Rechners bleibe ich die Bestätigung allerdings schuldig.

Quicklist: Download und Installation

QuickList 0.8.6 finden Sie auf der Heft-CD im Verzeichnis LinuxUser/quicklist/.

Alternativ gibt es die jeweils neueste Version auf der QuickList-Homepage [3]. Neben dem Quelltext benötigen Sie noch GTK in einer Version ab 1.2.0. (Die aktuelle Version 1.2.8 finden Sie ebenfalls auf der Heft-CD; GTK sollte aber bereits installiert sein.) Entpacken sie die Datei quicklist-0.8.6.tar.gz in einem Verzeichnis, in dem Sie Lese- und Schreibrechte haben, mit

tar xvzf quicklist-0.8.6.tar.gz

Außer tar können Sie zum Auspacken natürlich auch ein Programm wie ark oder guitar benutzen. Anschließend wechseln Sie in das neue Verzeichnis quicklist-0.8.6.

Dank autoconf und automake sind Übersetzung und Einrichtung schnell erledigt. Sie geben dazu an der Konsole nacheinander die Befehle

./configure
make

und als root

make install

ein.

Jetzt können Sie mit dem Befehl exit die root-Rechte wieder abgeben und Ihre Minidatenbank durch Eingabe von quicklist auf einer Kommandozeile starten.

Der erste Start

Nach erfolgreicher Übersetzung und Installation begrüßt QuickList Sie mit einem Dialog, in dem Sie auswählen können, ob Sie eine neue Datei anlegen, eine bestehende öffnen oder eine Datenbank importieren möchten (Abbildung 1).

Abbildung 1: Der Begrüßungsbildschirm von QuickList.

Abbildung 1: Der Begrüßungsbildschirm von QuickList.

Da anfangs noch keine QuickList-Tabelle existiert, klicken Sie auf New List, um eine neue Tabelle zu definieren. Es erscheint ein Dialog, in dem Sie nacheinander die Eigenschaften der einzelnen Felder der Datenbanktabelle festlegen. Ich möchte am Beispiel einer Datenbank für Zeitschriftenartikel zeigen, wie eine neue Tabelle erstellt wird.

Zunächst gilt es festzulegen, welche Informationen gespeichert werden sollen. Neben dem Namen des Verfassers sind das der Titel des Artikels, die Zeitschrift, in der der Artikel stand, die Ausgabe und die Seitenzahl. Hilfreich ist ein Feld “Sachgebiet”, um die Daten später auch nach Themen ordnen zu können.

Nacheinander definieren Sie jetzt die einzelnen Felder: Ins Textfeld Column Name geben Sie den Feldnamen ein, der später als Spaltenüberschrift in der Tabelle stehen soll.

In der zweiten Zeile wählen Sie den Feldtyp. Hier bestimmen Sie, ob Sie Text, Zahlen (Numeric), ein Datum (Date) oder die Uhrzeit (Time) speichern möchten. Für jedes Feld können Sie in der dritten Zeile des Dialogs festlegen, wie die jeweiligen Daten in der Tabelle ausgerichtet werden sollen: linksbündig (Left), zentriert (Center) oder rechtsbündig (Right).

Um die Felddefinition zu übernehmen, klicken Sie auf OK. In Abbildung 2 sehen Sie die Beschreibung für das Feld “Autor”, in Tabelle 2 ist die vollständige Definition der Beispieldatenbank angegeben. Die komplette Vorlage für die Literaturdatenbank finden Sie unter [4].

Tabelle 2: Die Felder der Beispieldatenbank

Feldname Feldtyp Ausrichtung
Sachgebiet Text Left
Autor Text Left
Titel Text Left
Zeitschrift Text Left
Ausgabe Text Left
Seite Numeric Left
Bemerkungen Text Left
Abbildung 2: Dialog zum Einstellen der Feldeigenschaften.

Abbildung 2: Dialog zum Einstellen der Feldeigenschaften.

Bedienung

Wenn Sie alle Felder definiert haben, klicken Sie auf Done, und das Hauptfenster von QuickList erscheint (Abbildung 3).

Abbildung 3: Das Hauptfenster von QuickList.

Abbildung 3: Das Hauptfenster von QuickList.

Im oberen Teil befindet sich die Menüleiste, im unteren Teil eine Tabelle, die die Datensätze enthält. Die von anderen Programmen gewohnte Werkzeugleiste suchen Sie allerdings vergebens.

Quicklist stellt die Datensätze der Datenbank in einer übersichtlichen Tabelle dar. Diese Form hat den Vorteil, dass sie immer mehrere Datensätze auf einmal im Blick haben können. Eine Formulardarstellung ist für zukünftige Versionen geplant.

Bewegen können Sie sich in der Tabelle mit den Pfeiltasten und der Tabulatortaste: Pfeil oben und Pfeil unten schieben den Cursor erwartungsgemäß eine Zeile nach oben bzw. nach unten, Tab setzt den Cursor eine Tabellenzelle nach rechts, [Umschalt+Tab] ([Shift+Tab]) eine Zelle nach links.

Um einen neuen Datensatz zu erzeugen, bewegen Sie den Cursor ans Tabellenende: Eine neue, leere Zeile erscheint, und Sie können neue Daten eingeben.

Wollen Sie einen oder mehrere Datensätze löschen, so markieren Sie die unerwünschten Datensätze mit der Maus und wählen Edit/Clear aus dem Menü.

Wenn Sie die Datenbank schnell nach einem Feld (z. B. den Namen der Autoren) sortieren möchten, setzen Sie den Cursor in ein beliebiges Feld der entsprechenden Spalte und wählen den Menüpunkt Sort/Column oder drücken die Tastenkombination [Alt+Y].

QuickList lässt sich vollständig mit der Maus bedienen. Falls Sie das Programm lieber mit Hilfe der Tastatur steuern möchten, zeigt Ihnen Tabelle 3 die nötigen Tastenkombinationen. Wenn Ihnen ein Tastenkürzel nicht gefällt, können sie einem Befehl leicht ein anderes zuweisen: Sie öffnen das Menü, wählen das gewünschte Kommando mit den Pfeiltasten aus und drücken dann die neue Tastenkombination. Ab sofort erreichen Sie den entsprechenden Befehl mit dem von Ihnen festgelegten Kürzel. Genauso ist es möglich, Befehlen, die normalerweise nicht über die Tastatur erreichbar sind, Shortcuts zuzuweisen.

Tabelle 3: Wichtige Tastenkürzel

Aktion Tastenkürzel
Datei öffnen [Alt+O]
Neue Datei anlegen [Alt+N]
Datei schließen [Alt+W]
Datei speichern [Alt+S]
Markierten Text ausschneiden [Alt+X]
Markierten Text in die Zwischenablage kopieren [Alt+C]
Text aus der Zwischenablage einfügen [Alt+V]
Spalte(n) einfügen [Alt+I]
Daten nach aktueller Spalte sortieren [Alt+Y]
Datensätze durchsuchen [Alt+F]
Match [Alt+M]
Cursor eine Tabellenzelle nach rechts bewegen [Tab]
Cursor eine Tabellenzelle nach links bewegen [Umschalt+Tab]
Cursor eine Zeile nach unten bewegen [Pfeil unten]
Cursor eine Zeile nach oben bewegen [Pfeil oben]
Cursor eine Bildschirmseite nach unten bewegen [Bild unten]
Cursor eine Bildschirmseite nach oben bewegen [Bild oben]

Datensätze sortieren

Wenn Sie Ihre Daten nicht nur nach lediglich einem Feld, sondern vielleicht nach Zeitschriften und Themen gleichzeitig sortieren möchten, haben Sie die Möglichkeit, Sorts zu definieren. Diese enthalten eine oder mehrere Regeln, mit denen die Reihenfolge der Datensätze festgelegt wird.

Um das Regelwerk zu definieren, wählen Sie Sort/Add… aus dem Menü; ein Dialog zur Definition von Sorts erscheint (Abbildung 4).

Abbildung 4: Einstellungen für die Sortierung.

Abbildung 4: Einstellungen für die Sortierung.

Im Textfeld Sort Name geben Sie einen Namen ein, unter dem Sie die Sortierkriterien später wieder finden können; in den Listen im mittleren Teil des Dialogs bestimmen Sie, nach welchen Feldern die Datensätze geordnet werden sollen.

Nach welchem Feld als Erstes sortiert wird, bestimmen Sie in der Liste Primary Sort. Wählen Sie Ascending, wenn dies in aufsteigender Reihenfolge (also von A nach Z), Descending, wenn es absteigend geschehen soll.

Das Beispiel in Abbildung 4 zeigt, was Sie eintragen müssen, um die Beispieldatenbank zunächst nach Autoren, dann nach Sachgebieten zu ordnen.

Um die einmal definierten Sortierkriterien auf die Datenbank anzuwenden, wählen Sie Sort/Apply… aus dem Menü und im daraufhin erscheinenden Dialog den Namen des gewünschten Regelsets.

Datensätze filtern

Filter dienen dazu, bestimmte Datensätze, die ein oder auch mehrere Kriterien erfüllen, aus der Datenbank heraus zu filtern und anzuzeigen. Alle anderen Datensätze bleiben vorhanden, werden aber verborgen. Auch Filterdefinitionen können gespeichert und jederzeit wieder aufgerufen werden.

Filter werden immer auf Felder angewendet und können kombiniert werden. So ist es zum Beispiel möglich, sich die Datensätze anzeigen zu lassen, in denen der Autor Meyer zum Thema Java nicht im Linux-Magazin geschrieben hat.

QuickList erlaubt es, Filter mit bis zu sechs Bedingungen zu definieren (Abbildung 5). Tabelle 4 zeigt die möglichen Optionen und erklärt ihre Wirkung.

Filtern lassen sich übrigens nicht nur Tabellenansichten, sondern auch Berichte. Sie können Filter und Sorts auch kombinieren, indem Sie eine Datenbank zunächst filtern und anschließend sortieren.

Abbildung 5: Filter definieren.

Abbildung 5: Filter definieren.

Tabelle 4: Filteroptionen und ihre Wirkung

contains (“enthält”) Filtert die Datensätze heraus, in denen die links aufgeführte Spalte den rechts stehenden Wert enthält.
does not contain (“enthält nicht”) Filtert die Datensätze heraus, in denen in der links aufgeführten Spalte der rechts stehende Wert nicht enthalten ist.
is exactly (“ist genau”) Filtert die Datensätze heraus, in denen der Wert in der links aufgeführten Spalte genau dem rechts stehenden Wert entspricht.
is not (“ist ungleich”) Filtert die Datensätze heraus, in denen der Wert in der links aufgeführten Spalte ungleich dem rechts stehenden Wert ist.
is less than (“ist kleiner als”) Filtert die Datensätze heraus, in denen der Wert in der links aufgeführten Spalte kleiner als der rechts stehende Wert ist. Gilt für numerische Felder.
is more than (“ist größer als”) Filtert die Datensätze heraus, in denen der Wert in der links aufgeführten Spalte kleiner als der rechts stehende Wert ist. Gilt für numerische Felder.
is blank (“ist leer”) Filtert die Datensätze heraus, in denen das gefilterte Feld leer ist.
is not blank (“ist nicht leer”) Filtert die Datensätze heraus, in denen das gefilterte Feld nicht leer ist.

Berichte

Berichte werden benutzt, um Daten aus der Datenbank in übersichtlicher Listenform auf dem Bildschirm oder dem Drucker auszugeben. Sie bestimmen, ob alle Daten oder nur ein Teil aufgeführt und wie sie zusammen gestellt werden sollen.

Um einen Bericht zu definieren, wählen Sie Report/Add… aus dem Menü; ein Dialog wie in Abbildung 6 erscheint.

Abbildung 6: Namen für einen Bericht festlegen.

Abbildung 6: Namen für einen Bericht festlegen.

Ins Textfeld Report Name geben Sie zunächst einen Namen ein, unter dem Sie den Bericht später wieder finden können. Die darin auszugebenden Felder wählen Sie durch Doppelklicken auf den Feldnamen in der linken Liste aus. Sind Sie damit fertig, geben Sie Ihr OK.

Im nun folgenden Dialog können Sie noch einige Feineinstellungen vornehmen (Abbildung 7).

Abbildung 7: Einen Bericht definieren.

Abbildung 7: Einen Bericht definieren.

Steht Ihnen der Sinn nach einer Kopf- bzw. Fußzeile, so geben Sie den entsprechenden Text in den Feldern Print at top of page und Print at bottom of page ein. Die Kopf- und Fußzeilen sind sowohl in der Bildschirm- als auch in der Druckausgabe sichtbar. Aus der Liste Sort rule können Sie gespeicherte Sortierregeln auswählen und die Daten entsprechend aufbereiten lassen. Mit der Liste Filter stehen Ihnen zudem Filtermöglichkeiten offen.

Um die Datensätze im Bericht übersichtlich zu gruppieren, also Datensätze, in denen ein Feld den gleichen Inhalt hat (z. B. alle Artikel eines Verfassers), zusammen zu fassen und von anderen Feldern abzusetzen, markieren Sie das gewünschte Feld und wählen Totals/Group aus dem Menü oder drücken die Tastenkombination [Alt+G].

Ein Klick auf Preview präsentiert Ihnen den Bericht in einer Vorschau (Abbildung 8). Edit the list bringt Sie zurück zum QuickList-Hauptfenster, mit Delete löschen Sie den Bericht. Wählen Sie hingegen Print, wird er auf dem Standarddrucker ausgegeben.

Abbildung 8: Berichtsvorschau.

Abbildung 8: Berichtsvorschau.

Suchen und Finden

Filtern, sortieren und nett aufbereiten ist das Eine, das Suchen in Datenbeständen das Andere. Hier haben Sie zwei Möglichkeiten. Mit dem Befehl Tools/Find wird die Datenbank nach einem Begriff durchsucht, wobei der Cursor bei einem Treffer in die Zeile mit dem passenden Datensatz gesetzt wird. Mit Hilfe von Tools/Match können Sie die Tabellenansicht auf die Datensätze einschränken, die den gesuchten Begriff in einem beliebigen Feld enthalten.

Datenaustausch mit anderen Programmen

Um in QuickList verwaltete Daten auch in anderen Programmen nutzen zu können, müssen Sie die Datensätze konvertieren. Das Programm bietet dazu zwei weit verbreitete Formate an: komma- und tabulatorseparierte Daten. Bei ersterem werden die einzelnen Felder durch Kommata, bei letzterem durch Tabulatoren von einander getrennt.

Nicht nur “große” Datenbanksysteme wie PostgreSQL oder MySQL können solche Dateien einlesen und weiter verarbeiten, sondern z. B. auch die Tabellenkalkulation Gnumeric und das Tabellenkalkulationsmodul von StarOffice.

Wenn Sie den Inhalt Ihrer Datenbank im Internet präsentieren möchten, haben Sie die Möglichkeit, Datensätze direkt aus QuickList heraus in HTML-Dateien auszugeben. Ein Beispiel für eine solche einfache Webseite sehen Sie in Abbildung 9.

Abbildung 9: Beispiel für die HTML-Ausgabe von QuickList.

Abbildung 9: Beispiel für die HTML-Ausgabe von QuickList.

Wollen Sie den umgekehrten Weg gehen und Daten aus anderen Programmen übernehmen, ist auch das kein Problem: QuickList kann Daten mit komma- und tabulatorbegrenzten Felder importieren.

Wozu nehmen?

QuickList eignet sich zur Verwaltung kleinerer, einfach aufgebauter Datenbestände. Neben der in diesem Artikel vorgestellten Artikeldatenbank können Sie z. B. auch Adresslisten, Aufgabenlisten und Fehlerlisten für kleinere Programmierprojekte verwalten [4].

QuickList eignet sich immer dann, wenn die Anzahl der Felder eines Datensatzes nicht allzu groß und der Feldinhalt nicht besonders lang ist. Durch die tabellarische Darstellung verliert man nicht so leicht den Überblick.

Die komfortablen Abfrage- und Filterfunktionen ermöglichen ein einfaches Wiederfinden von Informationen. Dank gut funktionierender Im- und Exportfilter ist ein Datenaustausch mit anderen Programmen – Datenbanken und Tabellenkalkulationen – möglich.

QuickList lässt sich schnell erlernen und dank der Möglichkeit, jedem Befehl eine individuelle Tastenkombination zuzuweisen, auch gut an eigene Gewohnheiten anpassen. Nicht zuletzt läuft das Programm sehr stabil: Obwohl es erst bei Version 0.8.6 angekommen ist, habe ich bisher keine Abstürze erlebt.

Mini-Datenbanken: Was kommt noch?

In Heft 09/2000 lesen Sie: gCatalog und grok – ambitioniert und unvollständig das eine, kompakt und funktionell das zweite.

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

Glossar

SQL

“Structured Query Language”, “strukturierte Abfragesprache”. Eine weitgehend genormte Sprache zum Abfragen und Bearbeiten von Datenbanken.

Relationen

Eine Verknüpfung zwischen zwei Tabellen einer Datenbank.

GTK

Das “Gimp Toolkit” ist eine Bibliothek zur Erstellung grafischer Programmoberflächen. Wie der Name schon sagt, wurde GTK ursprünglich für das Bildverarbeitungsprogramm Gimp geschrieben.

autoconf und automake

Programme, die aus einer Vorlage die zur Programmkompilierung auf einem bestimmten Betriebssystem notwendigen Makefiles erzeugen. Ausführlichere Informationen finden Sie dazu in den LinuxUser-Ausgaben im Linux-Magazin 03 [5] und 04/2000 [6].

HTML

“HyperText Markup Language”, die Seitenbeschreibungssprache des World Wide Web.

Infos

[1] Schnieders, Siegfried: Daten im Griff. Interbase, Linux-Magazin 01/2000, S. 126

[2] Kruck, Wolfgang: Datenchaos. MySQL – Eine Einführung, Linux-Magazin 01/2000, S. 130

[3] Die QuickList-Homepage: http://www.quicklist.org/

[4] Vorlagen für verschiedene QuickList-Datenbanken: http://mitglied.tripod.de/wieduwilt/quicklist/vorlagen.qlf.zip

[5] Schaarschmidt, Michael: Strickmaschine. Linux-Magazin 03/2000, http://www.linux-magazin.de/ausgabe/2000/03/Make/make.html

[6] Konzept, Klaus: Mit VerGNUegen. Linux-Magazin 04/2000, http://www.linux-magazin.de/ausgabe/2000/04/Sourcecode/sourcecode.html

Der Autor

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

LinuxUser 08/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