Aufgießen, umrühren – fertig. Lange vermissten Umsteiger von Microsofts Büropaket auf Star Office oder Open Office eine Instant-Datenbank à la Access. Mit der Open-Office-Version 2 integriert das Büropaket nun erstmals eine solche Komponente, die in Minuten einsatzbereit ist und die Lücke füllen könnte.
Einen Datenbankserver installieren, konfigurieren, dann Client-Software zum Laufen bringen – das erscheint oft als viel zu hoher Aufwand für die Datenablage einer einfachen Büroanwendung. Mangels Alternative greift mancher für Brot-und-Butter-Lösungen deshalb nach wie vor auf Microsoft Access zurück. Mit Star Office beziehungsweise Open Office 2 könnte diese Notlösung jedoch bald der Vergangenheit angehören.
Mit der neuen Office-Komponente Base lassen sich Datenbanken nämlich schnell und bequem anlegen, mit Leben füllen und modifizieren. So gelingt die Datenverwaltung intuitiv und in vertretbarer Zeit auch ohne proprietäre Software. Zwei besondere Pluspunkte sind darüber hinaus zu bedenken: die nahtlose Integration in die vielfach verwendete Office-Suite sowie die Möglichkeit, neben der Base-eigenen HSQL-Engine auch auf beliebige andere Datenbankserver wie MySQL aufzusetzen.
Die Kombination aus stabilem Unterbau und intuitiver Bedienoberfläche könnte viele, bisher noch unentschlossene Nutzer dazu bewegen, auf Base-gestützte Lösungen umzusteigen oder den Einstieg ins Thema Datenbanken überhaupt erst zu wagen. Gestandene MySQL-Nutzer hingegen dürfen sich über Arbeitserleichterungen bei der Lösung von Routineaufgaben und beim raschen Ausprobieren neuer Strukturen freuen.
Neuer Küchenchef
Wie jede neue Software hat freilich auch Base ihre Ecken und Kanten, nicht alle Wünsche erfüllt bereits der erste Anlauf. Der folgende Überblick erhellt die gegenwärtigen Möglichkeiten und Grenzen der Office-Datenbank. Als Grundlage der Untersuchungen dient ein Suse-Linux-10.1-System mit einer von Novell zusammengestellten Open-Office-Variante, Version 2.0.2. Als Datenbankserver ist der in Open Suse enthaltene MySQL-Daemon in der Version 5.0.18 im Einsatz.
Kücheneinrichtung
Die Features von Open Office Base seien an einem Beispiel aus der IT-Administration demonstriert, einer Inventarisierungsanwendung: Sie soll die technischen Daten einer Anzahl PCs verwalten und zur Vorbereitung von Hardware-Entscheidungen sichten. Eine MySQL-Datenbank stellt die Strukturen bereit und nimmt die Daten auf, für die Base Editiermöglichkeiten bietet und deren Präsentation es unterstützt. An Stelle von MySQL wäre übrigens auch die eingebaute HSQLDB verwendbar. Abbildung 1 zeigt das Strukturmodell der Beispiel-Datenbank.

Abbildung 1: Modell der Beispiel-Datenbank für die Inventarisierung von PCs mit Hilfe der neuen Office-Komponente Base.
Die Grundtabellen »pc«, »hd« und »bs« enthalten die Daten der PCs, der Festplatten und der darauf installierten Betriebssysteme. »vendor« ist eine Tabelle mit Daten von Herstellern beziehungsweise Distributoren. Die Hilfstabelle »bs_on_hd« bildet die Möglichkeiten ab, sowohl ein Betriebssystem auf verschiedenen Festplatten als auch mehrere Betriebssysteme auf derselben Festplatte zu installieren. Für die Implementierung des Modells auf dem MySQL-Server benutzt Open Office sein Base-Modul.
Nachdem er auf dem Server die Datenbank »pcbase« und das Konto »pcadmin« angelegt sowie die erforderlichen Berechtigungen erteilt hat, erstellt der Benutzer eine Datenbankverbindung in Open Office über »Datei | Neu | Datenbank« oder über das K-Menü mit »Büroprogramme | Datenbank«. Im Datenbank-Assistenten von Open Office wählt er den Punkt drei, also »Verbindung zu einer bestehenden Datenbank herstellen«, und im darunter stehenden Listenfeld den Eintrag »MySQL«.
JDBC ist unter Linux die Verbindungart der Wahl, also behält der nächste Dialog (siehe Abbildung 2) die Voreinstellung bei. Ein drittes Dialogfenster nimmt schließlich den Datenbank- und den Rechnernamen entgegegen. Misslingt der Test des JDBC-Treibers, fehlen vielleicht die Pakete »java« und »mysql-connector-java« in der Linux-Installation, was sich schnell beheben lässt.

Abbildung 2: Der JDBC-Treiber stellt die Verbindung zwischen Open Office und der MySQL-Datenbank her.
Nach Eingabe von Benutzername, Passwort und einigen bestätigenden Mausklicks kann die Arbeit mit der Datenbank beginnen. Bevor der Datenbank-Assistent seine Arbeit abschließt, ist noch ein Dateiname anzugeben, unter dem er die Informationen über diesen Datenbankzugang auf dem lokalen Rechner ablegt. Diese Datei enthält später nicht die eigentlichen Tabellen – die residieren in der MySQL-Datenbank -, sondern zusätzliche Daten wie etwa Abfragen, Formulare und Berichte.
Grundzutaten
Basistabellen wie »pc« und »hd« lassen sich auf zweierlei Weise anlegen: mit einem Editor über »Tabelle in der Entwurfsansicht erstellen« oder mittels eines Assistenten. Der Assistent enthält eine Reihe häufig vorkommender Tabellentypen für geschäftliche und private Anwendungen, die der Benutzer nach eigenen Wünschen modifizieren kann. In Projekten, bei denen die Templates im Wesentlichen passen, spart der Assistent Zeit. Außerdem bekommen Einsteiger durch die Vorgaben eine erste Vorstellung von zweckmäßig zu wählenden Werten und Anregungen für eigene Layouts. Sonst hat – wie im Beispiel – der Benutzer freie Hand bei der Gestaltung mit dem Editor.
Ähnlich wie bei Access füllt er zeilenweise die Felder der neu anzulegenden Tabelle mit Namen, Datentyp und optional einem erläuternden Kommentar. In Abhängigkeit vom Datentyp lassen sich zusätzlich drei bis fünf Parameter wie Länge oder Defaultwert festlegen. Das Listenfeld für den Datentyp ist etwas klein geraten und damit schwer zu bedienen, zumal die Datentypen nicht alphabetisch geordnet sind. Auch unterstützt Base nicht alle MySQL-Datentypen und es fehlt die Möglichkeit, Attribute wie »AUTO_INCREMENT« anzugeben.
Küchenhilfe
Einen Primärschlüssel definiert der Benutzer, indem er mit der rechten Maustaste links neben dem gewünschten Feldnamen auf das graue Rechteck klickt und im Kontextmenü den entsprechenden Eintrag wählt. Intern erhält dieses Feld dadurch das Attribut »NOT NULL« und die Tabellendefinition eine entsprechende »PRIMARY KEY«-Klausel. Letztere wird gelöscht, wenn der Bediener die Eigenschaft »Primärschlüssel« per Mausklick wieder abwählt oder ein anderes Feld als Primärschlüssel festlegt. Das »NOT NULL«-Attribut hingegen bleibt erhalten und wäre gegebenenfalls von Hand zu entfernen.
Base verlangt beim Anlegen einer Tabelle zwingend die Festlegung eines Primärschlüssels und erzeugt ihn notfalls selbst, indem es eine zusätzliche »ID«-Spalte mit den entsprechenden Eigenschaften hinzufügt. Jedoch beschwert sich der Tabelleneditor hinterher nicht mehr, wenn jemand den Primärschlüssel entfernt und keinen neuen festlegt.
Das Abspeichern der Tabellendefinition legt die Tabelle im MyISAM-Format in der MySQL-Datenbank an. Spezialitäten wie die Verwendung des Inno-DB-Formats, Indizes, Fremdschlüssel und referenzielle Integrität lassen sich nur nachträglich und von Hand einfügen. Für diese Arbeiten eignen sich die bekannten MySQL-Werkzeuge oder – falls der Benutzer im Rahmen der Applikation bleiben möchte – das SQL-Editor-Fenster von Base, das über das Menü »Extras | SQL« zu erreichen ist.
Die meisten im Alltag vorkommenden Strukturänderungen führt der Anwender aber unkompliziert im Tabelleneditor aus, auch wenn die Tabelle bereits mit Daten gefüllt ist. Vorsicht dagegen ist geboten beim Löschen von Spalten mit der [Entf]-Taste – hier erfolgt nämlich keine Rückfrage, sodass bei Fehlbedienung die dort gespeicherten Daten unwiderruflich verloren sind.
Butter bei die Fische
Um Daten in die angelegten Tabellen einzugeben oder daraus zu löschen beziehungsweise gespeicherte zu ändern, bedarf es keiner aufwändigen »INSERT-,« »DELETE-« und »UPDATE-«Statements. Dies alles lässt sich komfortabel über Datenblätter erledigen (Abbildung 3). Hier gibt es sogar eine Rückfrage vor dem Löschen von Datensätzen.

Abbildung 3: Die Datenbank muss nicht unbedingt mit SQL-Befehlen beschickt werden, sondern lässt sich auch über ein solches Datenblatt füllen.
Weitere Möglichkeiten der Dateneingabe sind das Kopieren ganzer Tabellen auch aus anderen MySQL-Datenbanken, das Einlesen von Fremdformaten wie CSV und dBase sowie der Export aus einer bestehenden Access-Datenbank über ODBC. Da es sich bei der darunter liegenden Datenbank um MySQL handelt, das für unzählige Applikationen als Backend dient, wäre im vorliegenden Fall auch denkbar, dass ein automatisches Inventarisierungssystem die Datenbank füllt und aktualisiert.
Etwas komfortabler als die direkte Eingabe in Tabellen ist die Datenerfassung in Formularen. Ein Formular lässt sich in Base am schnellsten mit dem Formular-Assistenten anlegen. In den Dialogen des Assistenten werden die üblichen Informationen abgefragt:
- anzuzeigende Tabellenfelder,
- optional ein Subformular für eine verknüpfte
Tabelle, - Anordnung der Eingabefelder,
- Dateneingabe-Optionen,
- Formular-Layout,
- Name des Formulars.
Unter seinem Namen erscheint das Formular nach dem Speichern in der Objektliste des Base-Fensters. Ein Doppelklick öffnet es dort zur Dateneingabe oder durch Rechtsklick zur Änderung des Layouts.
Für die anspruchsvollere Formulargestaltung steht ein Formulareditor, genannt Entwurfsansicht, zur Verfügung. In der Bedienung ist dieser so kompliziert und rätselhaft wie sein großes Vorbild, manchmal noch etwas undurchsichtiger – aber nach einigem Probier- und Einarbeitungsaufwand ist er auch fast genauso leistungsfähig. Hat der Benutzer erst einmal herausgefunden, welche Funktion sich hinter welchem bunten Icon versteckt, hat er fast unbegrenzte Möglichkeiten, um das Aussehen und Verhalten der einzelnen Formularelemente einzustellen.
Mundgerecht serviert
Als große Hilfe erweist sich dabei der Formular-Navigator (fünftes Icon links unten und Dialog rechts in Abbildung 4), der jedes Steuerelement des Formulars akribisch auflistet und es anwählbar macht. Das ist für flottes Arbeiten auch dringend erforderlich, da der Formular-Generator des Assistenten Bezeichnungs- und Textfelder nach einem undurchsichtigen System mal gruppiert, mal nicht, und der Zugang zum Einzelobjekt der Gruppe nur über ein Kontextmenü oder über Extra-Icons in der Symbolleiste möglich ist.

Abbildung 4: Für Formulare gibt es einen mächtigen, aber nicht immer leicht durchschaubaren Formulareditor.
Für das einzelne Steuerelement, zum Beispiel ein Eingabefeld, lassen sich im Eigenschaften-Dialog (drittes Icon links unten und Dialog links in Abbildung 4) jede Menge Einstellungen vornehmen: Im Beispiel kann das Feld »datgaruntil« zur Anzeige des Garantie-Ablaufdatums eines PC neben der Datenquelle nicht weniger als 24 allgemeine Parameter und bis zu 15 Ereignisprozeduren (Makros) annehmen. Ein ähnlicher Dialog existiert für die allgemeinen Formulareigenschaften.
Der Einsteiger ist auf jeden Fall bestens beraten, wenn er das gewünschte Formular zunächst vom Assistenten vorproduzieren lässt und den Editor höchstens für die Nachbearbeitung verwendet. Ein Tipp für die Benutzung des fertigen Formulars zur Dateneingabe: Aktiviert man über das Menü »Ansicht | Symbolleisten« die Symbolleiste »Formular-Navigation« und deaktiviert die hier nicht benötigten »Formular Entwurf«- und »Formular«-Steuerelemente, dann erschließt sich eine Reihe komfortabler Navigations-, Sortier- und Filtermöglichkeiten.
Wohl die größte Stärke von Base ist der Abfrage-Editor. Zwar gibt es auch zur Erstellung von Abfragen einen Assistenten, der kann aber lediglich Daten aus einer einzigen Tabelle verarbeiten. Der Abfrage-Editor hingegen gestattet in einem ähnlichen Look&Feel wie MS Query und die entsprechende Access-Komponente auch das intuitive Zusammenklicken von Ad-hoc-Abfragen und deren lokale Speicherung in der Base-Datei.
Möchte sich beispielsweise ein Admin jederzeit den Überblick verschaffen, auf welchen Festplatten seines Inventars Suse Linux in welcher Version installiert ist, ob diese Festplatten in PCs eingebaut sind und wenn ja, in welche, dann ruft er den Abfrage-Editor über »Abfrage in der Entwurfsansicht erstellen« auf. Die involvierten Tabellen (in diesem Fall alle fünf) befördert er jeweils per Doppelklick in den Design-Bereich.
Drag&Drop ist leider nicht möglich, ebenso wenig Mehrfachmarkierungen – Letztere auch nicht für das Übertragen von Feldnamen aus dem Design- in den Kriterienbereich des Abfrage-Editors. Doch viele andere Bedienmöglichkeiten, die von Access her vertraut sind, stehen hier zur Verfügung.
Nachgewürzt
Die Beziehungen zwischen den einzelnen Tabellen sind schnell per Drag&Drop hergestellt; die Verknüpfung erfolgt über die entsprechenden IDs, die die Primär- und Fremdschlüsselbeziehungen repräsentieren. Ein Doppelklick auf die Verbindungslinie zwischen zwei Tabellenfeldern ruft den Dialog »Verbundeigenschaften« auf, der die Art der Beziehung festlegt. Allerdings ist es nicht möglich, über diesen Dialog auch Eigenschaften der referenziellen Integrität einzustellen, obwohl die MySQL-Datenbank diese Dinge anbietet.
Ebenso ist keine automatische Erkennung von Tabellenbeziehungen implementiert. Zwar verfügt Base über einen Beziehungs-Editor, der solche Voreinstellungen ermöglichen würde, doch der funktioniert ausschließlich für die eigene HSQL-Engine, nicht aber für andere Datenbanken, die JDBC einbindet.
Dafür gibt es jedoch eine Reihe weiterer Einstellmöglichkeiten, die der Abfrage-Entwickler erwartet: Vergleiche, Sortierung, Gruppierung nach Merkmalen, Funktionen wie Summe, Mittelwert und so weiter, außerdem die Parametrisierung der Abfrage, also die Festlegung von Vergleichswerten, die der Benutzer erst zur Laufzeit der Abfrage eingibt. Neben den komfortablen Sortier- und Filterfunktionen, die schon in der Datenblatt- oder in der Formularansicht von Tabellen gegeben sind, ist so die ganze Palette von Abfragemöglichkeiten nutzbar, um genau jene Datenauswahl zu treffen, die der Benutzer benötigt.
Das Suchergebnis macht schließlich entweder die Vorschaufunktion des Abfrage-Editors sichtbar (auch schon während der Entwicklungsphase) oder – alternativ dazu und nach dem Speichern der Abfragedefinition – ein Doppelklick auf den Abfragenamen im Base-Fenster (siehe Abbildung 6).
Für die Erzeugung von Views kommt die gleiche Technik zum Einsatz. Der Unterschied zur Abfrage besteht darin, dass Base die View nicht lokal, sondern auf dem Datenbankserver speichert.
Schade nur, dass sich ausschließlich »SELECT-«Abfragen mit dem Editor anlegen lassen. Für Anfüge-, Aktualisierungs- und Löschabfragen ist der etwas kompliziertere Weg über SQL zu beschreiten. Ein Kompromiss besteht darin, sich mit den intuitiven Mitteln des Abfrage-Editors wenigstens den »SELECT-«Kern der Abfrage zusammenzuklicken und alles weitere von Hand hinzuzukodieren.
Appetitlich angerichtet
Zur gefälligen Aufbereitung gefilterter Daten dienen Berichte. Base verfügt über einen eigenen Assistenten, um Reports zu erstellen. Gegenüber dem gleichnamigen Access-Modul sind dessen Möglichkeiten jedoch stark beschränkt. Berichte lassen sich in Base lediglich auf der Grundlage eines einzigen Datenobjekts anfertigen. Wer Daten aus mehreren Tabellen, Views oder Abfragen zusammenstellt, muss vorher eine Abfrage definieren, die alles Benötigte einsammelt. Auch sonst bleiben dem Benutzer nur begrenzte Gestaltungsmöglichkeiten (Abbildung 7):

Abbildung 7: So sieht ein mit Base automatisch generierter Bericht aus – die Gestaltungsmöglichkeiten sind an dieser Stelle allerdings ziemlich eingeschränkt.
- Auswahl der anzuzeigenden Felder,
- Beschriftungen der Rubriken,
- Gruppierungsmerkmale,
- Sortiermerkmale,
- einige Layout-Konzepte.
So schnell und elegant ein solcher Bericht fertig gestellt ist, so wenige Möglichkeiten bietet er allerdings für die Nachbearbeitung.
Dies rührt daher, dass der Bericht von Base als Writer-Dokument angelegt und abgespeichert wird, mit all den Einschränkungen, die daraus resultieren. Schon das Einfügen eines vergessenen Feldes oder die nachträgliche Veränderung von Gruppierung, Sortierung oder Feldpositionen ist schlicht nicht machbar, da die Interna der Berichtsstruktur nicht verfügbar sind. Nicht mal eine Zoomfunktion gibt es in der Normalansicht; hierfür ist die Seitenansicht zuständig. Es besteht also noch ein großer Arbeitsbedarf für die Base-Entwickler, um zum State of the Art heutiger Reportgeneratoren aufzuschließen.
Fazit
Insgesamt bietet die Base-Komponente von Open Office einen recht durchwachsenen Eindruck. Zahlreichen Möglichkeiten der intuitiven Datenverwaltung, die teilweise das Vorbild Access sogar übertreffen, steht eine Reihe massiver Defizite gegenüber, die dem frühen Entwicklungsstand geschuldet sind, aber in einigen Bereichen dem Benutzer die Arbeit erschweren oder sie gar unmöglich machen. Für kleinere Projekte sollte jedoch durchaus schon mal ein Umstieg ins Auge gefasst werden, besonders wegen der guten Integration des Moduls in Open Office. (jcb)
|
Infos |
|---|
|
[1] Bernhard Röhrig, “Daten-Bastelstube”: Linux-Magazin 04/01, S. 32 [2] Günter Born, ” OpenOffice.org 2/StarOffice 8 für Linux und Windows”, 2., überarbeitete und aktualisierte Auflage: Millin, Lohmar, 2006, ISBN 3-938626-04-6 [3] Michael Kofler, “MySQL – Einführung, Programmierung, Referenz”, 3. Auflage: Addison-Wesley, 2005, ISBN 3-8273-2253-7. |
|
Der Autor |
|---|
|
Dr. Bernhard Röhrig verfasste mehrere Bücher über Linux/Unix und Datenbanken, er betreut Entwicklungsprojekte und gibt seine Erfahrungen als IT-Trainer im gesamten Bundesgebiet weiter. |







