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.
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).
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) | – |



