Ob Sammlungen, Kundenkarteien und Adressbücher – wer größere Datenmengen effizient verwalten will, kommt an einer Datenbank nicht vorbei. OpenOffice bietet dazu eine einfache, aber mächtige Anwendung.
Mittlerweile hat sich herumgesprochen, dass OpenOffice [1] eine ernstzunehmende Alternative zu Microsofts Platzhirsch Office bietet. Die freie Suite verbreitet sich stetig weiter, sodass immer mehr Anwender Texte statt mit Word mit OOWriter schreiben und anstelle von Excel OOCalc zur Tabellenkalkulation verwenden. Seit Version 2.0 gehört die Datenbank-Komponente OOBase zur OpenOffice-Familie und macht Microsoft Access das Feld streitig.
Mit OOBase erstellen Sie auf einfache Weise komplexe Datenbanken, in denen Sie Datenbanktabellen untereinander mit Hilfe von Beziehungen verknüpfen. OOBase dient als Anwenderoberfläche für das integrierte Datenbanksystem HSQLDB. Dieser Workshop zeigt, wie Sie mit OOBase Datenbanken erstellen und Tabellen zueinander in Beziehung setzen. Darüber hinaus erfahren Sie, wie sie mithilfe des entsprechenden Assistenten Formulare einrichten und welche Funktionen OpenOffice für das manuelle Erstellen und Bearbeiten von Formularen mitbringt.
Einstieg
OOBase startet mit dem Datenbank-Assistent, der es erlaubt, bestehende Datenbanken zu laden oder neue anzulegen. Wählen Sie in den zwei aufeinanderfolgenden Dialogen die entsprechenden Felder zum Anlegen einer neuen Datenbank und sofortigen Öffnen aus und klicken Sie auf Fertig stellen. Um das im Artikel erläuterte Beispiel nachzuvollziehen, geben Sie der Datenbank im Anschluss den Namen cd-sammlung . Speichern Sie abschließend die Datenbankdatei im gewünschten Verzeichnis ab, worauf sich das OOBase-Programmfenster (Abbildung 1) öffnet.

Abbildung 1: Das OOBase-Fenster dient als Ausgangspunkt für alle datenbankbezogenen Benutzeraktionen.
Die Oberfläche gliedert sich neben der Menü- und Standard-Symbolleiste in mehrere Bereiche, deren Inhalte Sie über die Icons in der linken Spalte Datenbank steuern. Klicken Sie auf eines davon, zeigt der Bereich Aufgaben spezifische Funktionen der Auswahl an. Der Objektbereich darunter enthält je nach ausgewähltem Symbol angelegte Objekte des entsprechenden Typs: etwa Tabellen, Formulare oder Datenbanken.
Generell besteht eine Datenbank aus mindestens einer Tabelle. Beim Einsatz von mehreren davon gilt es, diese sinnvoll miteinander zu verknüpfen, damit sie in einer direkten Beziehung zueinander stehen. Der Fachbegriff dafür lautet Relation beziehungsweise relationale Datenbank.
Für das Beispiel einer CD-Sammlung bedeutet das, dass Sie in einer Tabelle Informationen über CDs sammeln und in einer anderen die der Interpreten verwalten. Eine Beziehung zwischen den beiden Tabellen besteht darin, dass es für eine CD immer einen Interpreten gibt, und dass ein Interpret mindestens eine CD aufgenommen hat. Der durchaus vorstellbare Fall, dass mehrere Interpreten zu einer CD gehören, bleibt in dem vorliegenden Beispiel aus Gründen der Einfachheit außen vor (siehe Kasten “Beziehungsbeispiele”).
Der Bereich Abfragen dient dazu, gezielt Daten aus einer oder mehreren Datenbanktabellen zu holen, beispielsweise um Auswahllisten in Formularen oder Auswertungen (Berichte) zu erstellen. Eine solche Abfrage könnte umgangssprachlich wie folgt lauten: “Zeige mir alle CDs aus dem Jahre 1987”. Für Berichte spielen die Abfragen daher eine sehr wichtige Rolle, denn dieses Abfragebeispiel eignet sich beispielsweise für einen Bericht mit dem Titel Alle CDs aus 1987.
Über Formulare legen Sie Datenmasken zur Dateneingabe an und verwalten sie. Dazu benutzt OOBase die Textverarbeitung OOWriter. In der Grundeinstellung meldet das Büropaket neue Datenbanken so an, dass sie für den Zugriff aus anderen OpenOffice-Anwendungen heraus bereitstehen. Das setzt aber voraus, dass Sie die entsprechende Datenbankdatei nach dem Speichern nicht in ein anderes Verzeichnis verschieben.
Beziehungsbeispiele
Relationale Datenbanken erlauben, komplexe Zusammenhänge zwischen verschiedenen Objekten darzustellen. Ihr hauptsächlicher Nutzen besteht darin, Redundanzen zu vermeiden. Besteht Ihre CD-Sammlung beispielsweise aus 10?000 Alben, wovon die Hälfte zum Genre “Rock” gehört, müssen Sie nicht 5000 Mal das Genre angeben, sondern lediglich einen Zeiger auf die entsprechende Tabelle. Das spart – bei sinnvoller Anwendung und großen Datenbanken – enorm viel Platz und sorgt für deutlich mehr Übersicht. Einen ebenso wichtigen Vorteil bieten relationale Datenbanken bei der Pflege: Möchten Sie, ausgehend von unserem Beispiel, das Genre von “Rock” in “Hardrock” ändern, genügt es, statt 5000 Einträgen einen einzigen umzuschreiben. Bei relationalen Datenbanken unterscheidet man zwischen folgenden Beziehungstypen:
- 1-zu-1, Beispiel: eine CD hat ein Cover
- 1-zu-n, Beispiel: eine CD umfasst mehrere Titel
- n-zu-m, Beispiel: eine CDs kann Titel mehrerer Interpreten enthalten, gleichzeitig kann ein Interpret auf mehreren CDs erscheinen
In OOBase bearbeiten Sie die Beziehungen zwischen den Tabellenfeldern im Fenster Beziehungsentwurf. Dieser Workshop verwaltet die Interpreten und die CDs der Einfachheit halber in einer 1-zu-n-Relation. Ideal wäre eine n-zu-m-Beziehung. Die stellen Sie durch das Einführen einer dritte Tabelle her, die zu den beiden anderen jeweils eine 1-zu-n-Beziehung unterhält.
Dazu benötigt die dritte Tabelle drei Felder: einen Primärschlüssel und zwei Felder vom Typ INTEGER, also Zahlenwert. Anschließend verknüpfen Sie die Primärschlüssel der hier beschriebenen Tabellen mit jeweils einem INTEGER-Feld der dritten Tabelle, was ermöglicht, einer CD mehrere Interpreten zuzuordnen.
Datenbanken erstellen
Datenbanken – und später Formulare – erstellen Sie entweder halbautomatisch mit dem Assistenten oder manuell über die verschiedenen Entwurfsansichten. Der große Vorteil der Assistenten liegt darin, dass sie technische Abhängigkeiten weitgehend automatisch auflösen. Für den Anfang empfiehlt es sich deswegen, diese Helfer zu nutzen. Bei speziellen Anforderungen erreichen sie aber schnell ihre Grenzen. Insbesondere bei Tabellen liefert der OOBase-Assistent nur vorgefertigte Beispiele.
Für die einfachen Tabellen aus diesem Workshop empfiehlt sich daher der Weg über die Tabellen-Entwurfsansicht. Klicken Sie dazu im Bereich Aufgaben auf Tabelle in der Entwurfsansicht erstellen. In die Tabelle tragen Sie die Felder mit Feldtypen und Beschreibung ein. Die Eigenschaften der angelegten Felder passen Sie im unteren Bereich Feldeigenschaften an (Abbildung 2).

Abbildung 2: Die Entwurfsansicht für Tabellen ermöglicht das einfache manuelle Erstellen und Bearbeiten von Tabellenstrukturen.
Die erste Tabelle enthält die Namen der CD-Titel sowie deren Erscheinungsjahr. Übertragen Sie dazu die in der Tabelle CDs vorgegebenen Werte in das Raster der Entwurfsansicht. Die Feldnamen dürfen Sie frei wählen; die Feldtypen müssen Sie aber wie vorgegeben übernehmen: Diese bestimmen, welche Art von Daten das entsprechend Feld aufnimmt, beispielsweise Text oder Ganzzahlen (INTEGER).
CDs
| Feldname | Feldtyp | Feldeigenschaften |
|---|---|---|
id |
Integer (INTEGER) | Auto-Wert = Ja |
cd_titel |
Text (VARCHAR) | Eingabe erforderlich = Ja |
cd_erscheinungsjahr |
Integer (INTEGER) | – |
cd_interpret_id |
Integer (INTEGER) | – |
Eine Übersicht aller zur Verfügung stehenden Feldtypen finden Sie in der OpenOffice-Dokumentation [2]. Die Spalte Feldeigenschaften legt bestimmte Verhaltensweisen fest. Wählen Sie beispielsweise Eingabe erforderlich = Ja, lässt sich der Datensatz später beim Erfassen der Daten nur abspeichern, wenn das entsprechende Feld ausgefüllt ist.
Das Feld id versieht OOBase durch die Angabe von Ja bei Auto-Wert automatisch mit einem Zähler, der bei jedem neuem Datensatz um den Wert 1 ansteigt. Damit eignet sich das Feld als Primärschlüssel, was Sie über eine Rechtsklick auf den Zeilenkopf festlegen. OOBase kennzeichnet das Feld des Primärschlüssels mit einem kleinen Schlüsselsymbol.
Speichern Sie die Tabelle unter den Namen CDs und schließen Sie das Entwurfsfenster. Zur Sicherheit sollten Sie die Datenbank über das OOBase-Programmfenster speichern. Speichern Sie die Eingabe über die Entwurfsansicht, sichert die Anwendung beispielsweise nur die Tabelle, nicht aber die Datenbank. Verfahren Sie beim Anlegen der zweiten Tabelle wie beschrieben, und verwenden Sie hier die Werte aus der Tabelle “Interpreten”.
Interpreten
| Feldname | Feldtyp | Feldeigenschaften |
|---|---|---|
id |
Integer (INTEGER) | Auto-Wert = Ja |
interpret_name |
Text (VARCHAR) | Eingabe erforderlich = Ja |
land |
Text (VARCHAR) | – |
Partnervermittlung
Um beide Tabellen miteinander zu verknüpfen, klicken Sie auf Beziehungsentwurf unter Extras | Beziehungen. Das Fenster öffnet sich dann gemeinsam mit dem Dialog Tabellen hinzufügen. Dort wählen Sie beide Tabellen aus und fügen sie damit der Hauptansicht hinzu. Zum Verknüpfen der Tabellen ziehen Sie mit gedrückter linker Maustaste das Feld id aus der Tabelle Interpreten auf das Feld cd_interpret der Tabelle CDs. Die so entstandene Beziehung (Relation) stellt die Applikation durch eine Linie zwischen den beiden Felder dar (Abbildung 3).

CDs und Interpreten bilden eine einfache 1-zu-n-Beziehung: Ein Interpret kann mehrere CDs aufgenommen haben.” width=”300″ height=”114″ />
CDs und Interpreten bilden eine einfache 1-zu-n-Beziehung: Ein Interpret kann mehrere CDs aufgenommen haben.Denken Sie daran, sowohl die Relation als auch im Anschluss die Datenbank zu speichern. Das Feld cd_interpret in der Tabelle CDs enthält damit ab sofort einen so genannten Fremdschlüssel. Wichtig bei Fremdschlüsseln: Die verknüpften Tabellenfelder müssen den gleichen Feldtyp besitzen. Es ist zum Beispiel nicht möglich, Tabellenfelder vom Feldtyp VARCHAR mit solchen vom Typ INTEGER zu verknüpfen. Ein VARCHAR-Feld enthält eine Zeichenkette beliebiger Länge, die der für Ganzzahlen gedachten Feldtyp nicht speichern kann.
Gut formuliert
Der Weg über Assistenten bietet vor allem deshalb Vorteile, weil das Programm automatisch für alle Tabellenfelder der Datenbank eine entsprechendes Eingabefeld oder Steuerelement erstellt. Anschließend passen Sie die die Optik und Funktionen nach Ihren Bedürfnissen an.
Wechseln Sie ins OOBase-Programmfenster und klicken Sie zunächst unter Datenbank auf Formulare und danach unter Aufgaben auf Formulare unter Verwendung eines Assistenten erstellen, um den Assistenten zu öffnen (Abbildung 4). Im ersten Schritt wählen Sie unter Tabellen und Abfragen den Eintrag Tabelle: Interpreten aus. Von den daraufhin angezeigten Einträgen übertragen Sie die Felder interpret_name und land über die Schaltfläche mit dem einfachen Pfeil in den Bereich Felder im Formular. Das Feld id benötigen Sie nicht, da es mit der Eigenschaft Auto-Wert=”Ja” versehen wurde, dessen Wert OOBase automatisch vergibt.
Im nächsten Schritt fügen Sie nun die zweite Tabelle als Subformular hinzu. Formulare sind in OpenOffice hierarchisch aufgebaut und immer einer Datenbanktabelle zugeordnet. Subformulare, die zu dem jeweiligen übergeordneten Formular gehören, ermöglichen es Ihnen, weitere Tabellen einzubinden. Dabei spielt die Beziehung zwischen den Datensätzen eine wichtige Rolle: OOBase richtet anhand der Beziehung das Formular so ein, dass Sie anschließend darüber beide Tabellen mit Daten befüllen.
Mithilfe des Fremdschlüssels erkennt das Datenbankmodul, welche Interpreten-ID in das entsprechende Feld der Tabelle CDs gehört, und setzt diese automatisch ein. Um das Formular mit dieser Funktion zu versehen, müssen Sie daher die Tabelle CDs als Subformular hinzufügen. Setzen Sie dafür das Häkchen bei Subformular hinzufügen und aktivieren Sie die Checkbox Subformular basiert auf bestehender Beziehung. Markieren Sie im Anschluss den Eintrag CDs und klicken Sie auf Weiter.
Auch für die zweite Tabelle wählen Sie die Felder aus, die das Formular später enthalten soll. Fügen Sie in diesem Fall die Felder cd_titel und cd_erscheinungsjahr hinzu. Das Feld für den Fremdschlüssel brauchen Sie hier nicht hinzuzufügen, da OOBase durch die Relation dieses Feld automatisch mit dem Primärschlüssel des Interpreten füllt.
Im vierten Schritt legen Sie fest, wie OOBase die Formularfelder im ersten Entwurf ausrichtet. Für die Tabelle Interpreten (im übergeordneten Formular) empfiehlt sich die Anordnung In Spalten-Beschriftungen links und für die Tabelle CDs (Subformular) die Anordnung Als Datenblatt. Die nächsten optionalen Schritte überspringen Sie mit einem Klick auf Fertig stellen, womit sich das fertige Formular öffnet (Abbildung 5).

Abbildung 5: Durch die Auswahl von geeigneten Steuerelementen (Eingabefeld, Kombinationsfeld und Datenblatt) ergibt sich eine übersichtliche Ansicht der hinterlegten Daten.
Spalten-Beschriftungen links sorgt dafür, dass der Assistent gewöhnliche Eingabefelder mit zugehörigen Bezeichnern (Label) für alle angegebenen Felder der Tabelle erstellt. Das Subformular bettet die gewählte Option hingegen als Tabelle ins Formular ein. Über das Datenblatt tragen Sie im Anschluss neue CDs zeilenweise ein.
Um das Formular nachträglich zu verändern, öffnen Sie im OOBase-Programmfenster mit der rechten Maustaste das Kontextmenü des Formulars und klicken auf Bearbeiten. Das öffnet es im Entwurfsmodus, in dem Sie die gewünschten Änderungen vornehmen. Als erstes bietet es sich an, die Bezeichnungen der Formularfelder in einen sprechenden Text zu ändern, beispielsweise interpret_name zu Interpret.
Das zugehörige Formularelement besteht aus zwei Teilen: dem Textfeld für die Dateneingabe und einem Label für die Feldbeschriftung. Beide Elemente wurden beim Erstellen automatisch gruppiert, damit sie funktional als eine Einheit wirken. Um an ein einzelnes der beiden Elemente zu kommen, müssen Sie die Gruppierung “betreten”. Dafür verwenden Sie entweder den Kontextmenüeintrag Gruppe | Betreten oder den Formular-Navigator von OpenOffice.
Letzteren rufen Sie über das entsprechende Symbol in der Symbolleiste Formular-Entwurf auf. Er zeigt alle Objekte des Formulars und des Subformulars hierarchisch angeordnet an, sodass Sie einzelne Elemente daraus auswählen, etwa die Eigenschaften des Labels über lblinterpret_name (Abbildung 6).
Mit dem Formular-Navigator fügen Sie bei Bedarf auch weitere Subformulare hinzu, beispielsweise um weitere Datenbanktabellen im Formular zu berücksichtigen. Außerdem ziehen Sie Formular-Steuerelemente mit gedrückter Maustaste im Navigator in das entsprechende Formular, in dem sie gebraucht werden.
Die Feldeigenschaften (Abbildung 7) für Label-Elemente teilen sich in zwei Reiter auf. Allgemein fasst bei allen Steuerelementen Basiseigenschaften wie etwa Name und Hintergrundfarbe zusammen. Die Einstellungen unter Ereignisse benötigen Sie vorwiegend bei der Arbeit mit Makros. Passen Sie unter Allgemein bei Name den Anzeigenamen des Labels an und schließen Sie den Dialog wieder, um die Änderungen zu übernehmen.

Allgemein können Basiseigenschaften angepasst werden.” width=”250″ height=”300″ />
Abbildung 7: Die Basiseigenschaften eines Labels passen Sie unterAllgemein können Basiseigenschaften angepasst werden.Komplexe Steuerelemente
Neben dem Textfeld und dem Datenblatt, die für das vorliegende Formular zum Einsatz kamen, besitzt OpenOffice noch viele weitere Steuerelemente. Interessant davon sind vor allem Kombinations- und Listenfelder, die sich als hilfreich erweisen, um Einträge in bestimmten Feldern einer Datenbanktabelle konsistent zu halten. Für das Feld Land ist ein Kombinationsfeld sinnvoller als ein einfaches Textfeld, da Sie damit bereits vor der Eingabe prüfen, ob der Eintrag schon existiert.
Um ein Kombinationsfeld zum Formular hinzuzufügen wählen Sie das entsprechende Symbol in der Steuerleiste Formular-Steuerelemente aus. Danach ziehen Sie mit gedrückter linker Maustaste ein Kombinationsfeld im Formular auf. Die Größe passen Sie bei Bedarf über den Dialog Position und Größe im Kontextmenü manuell an. Danach legen Sie fest, dass das Feld alle Einträge anzeigt, die in der Datenbanktabelle Interpreten in der Spalte land stehen.
Durch einen Doppelklick öffnen Sie dazu die Eigenschaften des Kombinationsfeldes und wechseln auf den Reiter Daten. Wählen Sie aus der Auswahlliste Datenfeld das Feld land aus. Als Art des Listeninhalts bestimmen Sie Tabelle, und aus Listeninhalt den Eintrag Interpreten. Schließen Sie nun den Dialog und speichern Sie das Formular. Sobald Sie es erneut für die Dateneingabe öffnen, stehen alle bisher eingetragenen Länder im Kombinationsfeld. Fehlt ein Land, geben Sie es neu in das Kombinationsfeld ein.
Ein Listenfeld kommt da zum Einsatz, wo festgelegte Werte ausreichen und keine neuen Eingaben nötig sind – zum Beispiel, falls sie die Länder in einer separaten Datenbanktabelle pflegen, die nicht zwangsläufig mit den anderen Tabellen in Relation stehen. Die Art des Listeninhalts gilt es dann entsprechend anzupassen, sodass Sie die Ländernamen aus der Ländertabelle auswählen, idealerweise durch eine geeignete Datenbankabfrage.
Weitere Steuerelemente sind Währungs- und Datumsfelder. Sie kommenetwa dann zum Einsatz, wenn eine konsistente Schreibweise der Daten in das jeweils verknüpfte Tabellenfeld sinnvoll erscheint. Diese Steuerelemente liegen etwas versteckt in der Symbolleiste Weitere Steuerelemente, die Sie wiederum über die Symbolleiste Formular-Steuerelemente aufrufen. Datumsfelder definieren Sie dabei über den Eigenschaftsdialog zum Beispiel so, dass das Formular nur Eingaben im Format TT.MM.JJ akzeptiert.
Fazit
OpenOffice bietet mit OOBase ein mächtiges Werkzeug für das Erstellen und Verwalten von Datenbanken an. Die klar strukturierte Oberfläche führt auch den unerfahrenen Anwender schnell zu einem Ergebnis. Trotzdem erscheint es ratsam, sich vorweg mit der Modellierung von Datenbanken zu befassen: Sonst kommt es später beim Erstellen der Formulare unter Umständen zu unerwarteten Problemen, weil Sie ein Feld vergessen haben oder es doch besser wäre, das eine oder andere Feld in eine andere Datenbanktabelle auszulagern.
Beim Erstellen von Formularen sieht die Welt ein wenig anders aus: Während hier die Assistenten anfangs sehr hilfreich zur Hand gehen, verursacht das manuelle Nachbearbeiten zum individuellen Anpassen des Formulars mitunter gehörig Aufwand. Hier lässt es sich kaum umgehen, bereits vorab ein wenig zu testen und auszuprobieren, was die einzelnen Steuerelemente leisten.
Glossar
-
HSQLDB
-
HyperSQL Database ist ein freies, in Java programmiertes SQL-Datenbanksystem, das sich nahezu vollständig kompatibel zum Abfragestandard ANSI-92 SQL verhält und einen JDBC-Treiber für die Verbindung mit anderen Datenbanken mitbringt.
-
Primärschlüssel
-
Ein Tabellenfeld, das den entsprechenden Eintrag eindeutig kennzeichnet. Kein weiterer Datensatz darf in diesem Feld den gleichen Wert besitzen. Die automatische Vergabe von Werten erleichtert diese Aufgabe.
-
Fremdschlüssel
-
Ein Feld in einer Tabelle, das mit dem Primärschlüssel einer anderen Tabelle über eine Beziehung verbunden ist, heißt Fremdschlüssel.







