Datenbanken mit OpenOffice

Aus LinuxUser 06/2006

Datenbanken mit OpenOffice

© sxc.hu

Neue Ordnung

Was unter Windows Microsoft Access leistet, bietet unter Linux OpenOffice Base: ein komfortables grafischen Datenbank-Interface für Tabellen, Formulare und Abfragen.

Mit OpenOffice Base (kurz: OO-Base) entwickelt das OpenOffice-Projekt eine Alternative zu MS Access – eine Herausforderung, denn immerhin steckt in Access jahrelange Entwicklungsarbeit. In letzter Zeit wandten sich die OpenOffice-Entwickler jedoch verstärkt dem Datenbankmodul zu und lieferten auch für die aktuelle Version 2.0.2 etliche Bugfixes.

Apropos aktuell: Um einen kurzen Blick auf OO-Base zu werfen, genügt sicherlich die OpenOffice-Version 1.9; planen Sie aber, die Software produktiv einzusetzen, sollten Sie die neueste OpenOffice-Version 2.0.2 [1] installieren.

Suse-Nutzer laden die Datei von der Web-Seite herunter und entpacken sie zunächst. Führen Sie dann im Download-Verzeichnis mit Root-Rechten den Befehl rpm -Uhv openoffice*.rpm aus, um alle RPM-Pakete auf einmal zu installieren. Die ausführbare Datei soffice.bin finden Sie im Verzeichnis /opt/openoffice.org2.0/program – am besten legen Sie einen Link auf die Datei mit dem Befehl:

ln -s /opt/openoffice.org2.0/program/soffice.bin /usr/bin/OOo

Debianer beziehen die Version 2.0.2 aus dem Sid-Repository, indem sie ihre OpenOffice-Pakete einfach aktualisieren. Auch die neue Ubuntu-Version “Dapper Drake” bringt die aktuelle OpenOffice-Version mit.

Vor dem Backend

Starten Sie OpenOffice und legen Sie eine neue Datenbank an, indem Sie auf das Icon ganz oben links klicken und Datenbank aus dem Drop-Down-Menü wählen. Im Assistenten erstellen Sie eine Neue Datenbank. OO-Base setzt standardmäßig auf HSQLDB, bedient aber als Frontend theoretisch auch andere Datenbanken wie MySQL, Oracle, JDBC oder dBase.

Wollen Sie ein anderes Datenbank-Backend nutzen, stellen Sie an dieser Stelle eine Verbindung zu einer bestehenden Datenbank her. Für das Beispiel gehen Sie jedoch mit Weiter zum nächsten Schritt über, bei dem Sie je ein Kreuzchen setzen, um die Datenbank zu bearbeiten und mit dem Assistenten eine Tabelle zu erstellen.

In unserem Beispiel starten Sie einen privaten Buchverleih unter Freunden. Theoretisch brauchen Sie dazu nur eine einzige Tabelle: Um OO-Base jedoch etwas zu fordern, verknüpfen Sie drei Tabellen miteinander. In die Tabelle BUCH tragen Sie nur Informationen zu Ihren Büchern ein, in der Tabelle AUSLEIH erfassen Sie Namen und Adressen Ihrer Freunde. Die dritte Tabelle führt beide Tabellen zusammen und verzeichnet, wer wann welches Buch entleiht und zurück gibt. Ein Vorteil dieses Datenbank-Designs: In eine einzige Tabelle müssten Sie die Buchtitel und die Personen mehrfach eintragen, nämlich einmal für jeden Ausleihvorgang.

Tabelle auf die Schnelle

Das Interface von OO-Base (Abbildung 1) erinnert in Aussehen und Bedienung stark an Access. Zunächst erstellen Sie die Tabellen. Klicken Sie auf Tabellen, konstruieren Sie eine neue Tabelle unter Verwendung des Assistenten und passen Sie dann die Schablonen an Ihre Bedürfnisse an, das geht meist schneller.

Abbildung 1: Das Interface von OO-Base erinnert stark an die GUI von MS Access. Das ist kein Zufall, soll es doch Umsteigern den Zugang erleichtern.

Abbildung 1: Das Interface von OO-Base erinnert stark an die GUI von MS Access. Das ist kein Zufall, soll es doch Umsteigern den Zugang erleichtern.

Im Bereich Felder wählen klicken Sie auf Privat und suchen dann als Beispiel-Tabelle aus dem Drop-Down-Menü die Tabelle Adresse heraus. Die unter Vorhandene Felder aufgelisteten Felder Adresse, AdressID und Vorname schieben Sie mit Hilfe der doppelten Pfeile auf die rechte Seite hinüber, dann wechseln Sie mit Weiter zum nächsten Schritt. Nun passen Sie die Namen der Spalten und die Variablentypen an: Die AdressID benennen Sie in AID um. In diesem Feld soll später eine fortlaufende Nummer für jeden Eintrag stehen. Wählen Sie als Datentyp Integer [INTEGER] und stellen Sie die Option Autowert auf Ja um, damit sich die AID bei jedem neuen Eintrag um eine Nummer erhöht. Die Länge lassen Sie bei 10 Stellen, damit verwalten Sie theoretisch einige Milliarden Bücher.

Das Feld Vorname soll Name heißen, als Variablentyp geben Sie Text [VARCHAR] an, als Länge sollten 255 Zeichen genügen. OO-Base sichert für diesen Variablentyp nur soviel Speicherplatz wie nötig. Im Feld Adresse ändern Sie den Variablentypen ebenfalls zu Text [VARCHAR] und setzen die Länge auf 255 Zeichen: Damit steht die Tabelle (Abbildung 2).

Abbildung 2: Über ein paar Mausklicks definieren Sie, welche Datentypen Sie den verschiedenen Feldern zuordnen. Für Primärschlüssel bieten sich mehrstellige Ganzzahlen an.

Abbildung 2: Über ein paar Mausklicks definieren Sie, welche Datentypen Sie den verschiedenen Feldern zuordnen. Für Primärschlüssel bieten sich mehrstellige Ganzzahlen an.

Im nächsten Schritt legen Sie einen Primärschlüssel fest, der jeden Datensatz eindeutig identifiziert. Um das Feld AID zum Primärschlüssel zu machen, wählen Sie es über die Option Ein bestehendes Feld wird als Primärschlüssel verwendet aus. Das Kreuzchen bei Autowert ist wichtig, schließlich wollen Sie den Wert mit jedem Eintrag hochzählen, damit er eindeutig bleibt. Im letzten Schritt geben Sie der Tabelle noch den Namen AUSLEIH und klicken dann auf Fertig stellen. Die zwei anderen Tabellen erstellen Sie auf dieselbe Weise. Sie heißen BUCH und STATUS – die Namen, Datentypen und eventuelle Besonderheiten entnehmen Sie den Tabellen “Datentypen: BUCH” und “Datentypen: STATUS“.

Inhalte: BUCH

Name Datentyp Länge Sonstiges
BID Integer [INTEGER] 10 Primärschlüssel, Autowert
Titel Text [VARCHAR] 255
Autor Text [VARCHAR] 255
Jahr Text [VARCHAR] 10

Inhalte: STATUS

Name Datentyp Länge Sonstiges
SID Integer [INTEGER] 10 Primärschlüssel, Autowert
Leihdatum Datum [DATE]
Rueckgabedatum Datum [DATE]
AID Integer [INTEGER] 10 Eingabe erforderlich
BID Integer [INTEGER] 10 Eingabe erforderlich

Den Primärschlüssel in der Tabelle BUCH erhält das Feld BID, zusätzlich aktivieren Sie hier den Autowert. Die Tabelle STATUS verweist auf die beiden anderen Tabellen, den Primärschlüssel erhält das Feld SID zusammen mit einem Autowert. In den Feldern BID und AID sind Eingaben erforderlich, das heißt, dort muss immer ein Wert stehen.

Per Doppelklick schreiben Sie nun Daten in die Tabellen: Personenbezogene Daten gehören in AUSLEIH, Informationen zu Büchern tragen Sie in die Tabelle BUCH ein. In der Tabelle STATUS steht, wer wann welches Buch ausleiht und zurück gibt. Sind die Buch- und Personendaten vollständig (es kommen ja nur gelegentlich neue Personen und Bücher hinzu), aktualisieren Sie vorwiegend die Tabelle STATUS mit den Ein- und Ausgängen der Bücher. Die Werte in den Spalten AID und BID repräsentieren – nach der nun folgenden Verknüpfung – die entsprechenden Datensätze aus den Tabellen BUCH und AUSLEIH. Eine 3 im Feld AID von STATUS refererenziert den Datensatz mit der Nummer 3 in der Tabelle AUSLEIH. Da der Inhalt von STATUS zum Teil auf den Daten aus AUSLEIH und BUCH basiert, tragen Sie Daten in diese Tabelle erst nach der Verknüpfung und zum Schluss ein.

Beziehungsmuster

Um Tabellen miteinander zu verknüpfen, rufen Sie den Menüpunkt Extras | Beziehungen auf und wählen alle drei Tabellen aus dem Dialogfeld. Sie erscheinen als Grafiken vor grauem Hintergrund, auch die Primärschlüssel sieht man.

Die Beziehungen zwischen den Tabellen bauen Sie über den Menüpunkt EinfügenNeue Relation auf. Ein Fenster zeigt jeweils zwei Tabellen an, die Sie verknüpfen. Rechts tragen Sie die Tabelle STATUS ein, links die Tabelle BUCH, als beteiligte Felder wählen Sie jeweils BID aus. Die Prozedur wiederholen Sie für die Tabellen STATUS und AUSLEIH, nur setzen Sie hier die AID-Felder in Beziehung zueinander.

Grafische Linien symbolisieren anschließend die Beziehungen (Abbildung 3), die 1 und das n Verweisen auf die Art der Relation. So tauchte in Buch in der BUCH-Tabelle jeweils nur einmal auf, während es in der STATUS-Tabelle durchaus mehrmals vorkommt, da verschiedene Personen dasselbe Buch ausleihen.

Abbildung 3: Die Tabellen in grafischer Darstellung. Die gelben Schlüssel stehen für Felder mit Primärschlüsseln, die Linien symbolisieren die Beziehungen zwischen den Tabellen.

Abbildung 3: Die Tabellen in grafischer Darstellung. Die gelben Schlüssel stehen für Felder mit Primärschlüsseln, die Linien symbolisieren die Beziehungen zwischen den Tabellen.

Füttern Sie nun die Tabellen mit Beispieldaten: Erst AUSLEIH und BUCH, dann die auf ihnen aufbauende Tabelle STATUS. Beim Eintragen der Werte in die Tabelle STATUS stoßen Sie auf ein Problem: Sie schreiben ja für jedes Buch und jede Person stellvertretend eine Nummer in die Tabelle. Das aber ist mühselig, weil Sie nachsehen müssen, welche Nummern (AID und BID) die Personen und Bücher jeweils tragen – mit Formularen umgehen Sie das Problem.

Formulare

Formulare bereiten die Daten aus Tabellen für Außenstehende gut lesbar auf. Mit ihnen erzeugen Sie zugleich eine intuitive Oberfläche zur Eingabe neuer Daten, denn es ist unpraktisch, diese direkt in Tabellen einzugeben. Zum Design: Das Formular soll jeweils ein Feld für das Leihdatum und das Rückgabedatum enthalten. Darunter wählen Sie aus einem Drop-Down-Menü aus, welches Buch (Titel) Sie an wen (Name) verleihen oder von wem zurück erhalten.

Die beiden Felder Leihdatum und Rueckgabedatum legen Sie mit Hilfe des Assistenten an, der allerdings bei der Aufbereitung verknüpfter Tabellen – wie auch bei anderen Problemen – patzt. Klicken Sie auf Formulare und dann Formular unter Verwendung des Assistenten erstellen. Als Datenquelle wählen Sie Tabelle: STATUS aus, die Felder Leihdatum und Rueckgabedatum verschieben Sie nach Felder im Formular und klicken auf Weiter.

Den Schritt 2. Subformular überspringen Sie, unter Anordnung der Kontrollfelder wählen Sie eine Ansicht für Ihr Formular-Layout aus. Im Bereich 6. Dateneingabe kreuzen Sie nichts an, da Sie ja in das Formular Daten eintragen wollen – auch nachträglich. Bringt zum Beispiel jemand ein Buch zurück, ändern Sie das Datum im Feld Rueckgabedatum. Unter 7. Stile geben Sie dem Formular ein freundlicheres Aussehen, im letzten Schritt benennen Sie es noch und speichern es dann ab.

Klicken Sie nun doppelt auf das Formular, um es zu öffnen und zu prüfen, ob es die Daten korrekt anzeigt (Abbildung 4). Über einen Rechtsklick auf den Namen des Formulars und die Option Bearbeiten gelangen Sie in den Bearbeitungsmodus. Gegebenenfalls holen Sie erstmal über AnsichtSymbolleisten die Werkzeugleisten Formular-Navigator und Formular-Steuerelemente auf die Arbeitsfläche.

Als Steuerelement wählen Sie ein Listenfeld aus und ziehen es mit gedrückter linker Maustaste auf der Arbeitsfläche unterhalb der vorhandenen Felder auf. Ein Assistent fragt ab, woher das Listenfeld seine Daten bezieht. Stellen Sie sicher, dass als Datenquelle die Tabelle STATUS dient, neben Inhalt muss im Assistenten also STATUS stehen. Als Tabelle wählen Sie AUSLEIH und weil im Formularfeld die Namen der Entleiher stehen anschließend das Feld Name. Im nächsten Schritt wählen Sie unter Wertetabelle und unter Listentabelle jeweils das Feld AID. Die gesamte Prozedur wiederholen Sie für das Feld Titel der Tabelle BUCH.

Um anschließend die Felder zu beschriften, wählen Sie das Symbol mit dem Schriftzug An aus der Leiste Formular-Steuerelemente, plazieren Sie es und ändern Sie über einen Doppelklick den Text und seine Farbe. Abschließend speichern Sie das Formular und öffnen es mit einem Doppelklick (Abbildung 5).

Abbildung 4: Mit einem Assistent erstellen Sie die Felder <code srcset=

Leihdatum und Rückgabedatum, an verknüpften Tabellen scheitert der Assistent.” width=”300″ height=”154″ /> Abbildung 4: Mit einem Assistent erstellen Sie die Felder Leihdatum und Rückgabedatum, an verknüpften Tabellen scheitert der Assistent.

Abbildung 5: Die Verknüpfung mit den Feldern der anderen Tabellen <code srcset=

BUCH und AUSLEIH geschieht manuell. Am Schluss aktualisieren Sie die Leihdaten bequem über ein Formular.” width=”300″ height=”164″ /> Abbildung 5: Die Verknüpfung mit den Feldern der anderen Tabellen BUCH und AUSLEIH geschieht manuell. Am Schluss aktualisieren Sie die Leihdaten bequem über ein Formular.

Es zeigt zunächst die eingetragenen Datensätze an. Mit den Pfeiltasten unten links navigieren Sie durch die Datensätze. Einen neuen Datensatz fügen Sie direkt nach dem letzten Datensatz ein. Achten Sie aber darauf, nicht Ihre alten Daten zu überschreiben.

Wollen Sie Bücher oder Personen eintragen, legen Sie dafür am besten ebenfalls neue Formulare an. Das geht einfach über den Assistenten, da sie jeweils nur eine Tabelle benötigen und keine Rücksicht auf Verknüpfungen nehmen müssen.

Fazit

Für den dauerhaften produktiven Einsatz eignet sich OO-Base zwar durchaus, allerdings sollte man dabei auf die recht beschränkten Assistenten verzichten und sich vorher mit der Software beschäftigen. Wählen Sie zum Beispiel das Backend mit Bedacht: Aus HSQL können Sie keine Daten exportieren. Es existieren zudem noch eine Reihe von Bugs in OO-Base, die Ihnen eventuell Ärger machen. Eine gute Planung ist also notwendig. Dennoch: Zusammen mit Knoda gehört das Programm sicherlich zu den viel versprechendsten MS Access-Alternativen.

Glossar

HSQLDB

Eine in Java programmierte relationale Datenbank, die man auch ohne Server betreiben und daher in ein Programm integrieren kann.

LinuxUser 06/2006 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