Archiv des LibreOffice- und OpenOffice.org-Wiki

[ÜberSicht] [TitelIndex] [WortIndex] [SeiteFinden

(./) OOo2

OpenOffice.org konnte schon in den Versionen 1.1 externe Datenbanken und Tabellen als DatenQuellen benutzen und für diese als Front-End dienen. In der Version 2 besteht nun die Möglichkeit auf Grundlage der eingebauten HSQL Database Engine mit einer relationalen Datenbank zu arbeiten, die vollständig von OpenOffice.org verwaltet wird. Dazu wurde das Modul Base geschaffen. Dieser Artikel gibt an Hand eines Beispiels eine Einführung zum Herstellen einer solchen DatenBank.

1. Datenbank planen

1.1. Allgemeine Grundsätze

Eine Datenbank besteht aus einer oder mehreren Tabellen, zwischen denen Beziehungen (Relationen) bestehen können. Eine Zeile einer Tabelle heißt „Datensatz“, eine Spalte der Tabelle „Datenfeld“.

Das Planen großer Datenbanken ist eine anspruchsvolle Aufgabe, die sich nicht mit einigen Worten erklären lässt. Deshalb hier nur einige wichtige Grundsätze, die für den privaten Bereich ausreichen sollten:

1.2. Beispiel-Datenbank

Es soll eine Datenbank der europäischen Länder entstehen. Sie soll über Name des Staates, Landessprache, EU-Mitgliedschaft und Flagge informieren.

Tabelle „Länder“

Die Sprache kann hier nicht aufgenommen werden, weil es Länder mit mehreren Sprachen gibt und eine Sprache in mehreren Ländern gesprochen werden kann.1

Es wird daher eine Tabelle „Sprachen“ benötigt. Sie soll das Sprachenkürzel enthalten, wie es auch bei den Dictionary-Dateien benutzt wird, und die Sprachbezeichnung in Langform. Das Kürzel wird der Primärschlüssel.

Nun wird noch eine Tabelle benötigt, die beschreibt, in welchem Land welche Sprache offiziell gesprochen wird. Die Datensätze werden der Einfachheit halber durchnummeriert, wodurch sich dann auch der Primärschlüssel ergibt. Eigentlich müsste ein Zusammengesetzter Primärschlüssel benutzt werden.

Tabelle „Landessprache“

2. Datenbank erzeugen

2.1. Leere Datenbank erstmalig anlegen

Zunächst wird die leere Datenbank erzeugt und angemeldet. „Angemeldet“ heißt, dass sie bei dem jeweiligen Benutzer registriert ist und er sie damit in Dokumenten benutzen kann. Es bedeutet nicht, dass die Datenbank im persönlichen BenutzerVerzeichnis liegt.

Über das Menü Datei → Neu → Datenbank oder über den Schnellstarter oder die SchaltFläche Neu – dabei jeweils den Dokumenttyp Datenbank wählen – wird der DatenbankAssistent geöffnet. Im ersten Schritt wird die Option Neue Datenbank erstellen ausgewählt und der Dialog mit einem Klick auf Weiter bestätigt.

datenbankassistent-1.png

Im zweiten Schritt werden die Optionen Ja, die Datenbank soll angemeldet werden und Die Datenbank zum Bearbeiten öffnen ausgewählt (die Einzelschritte sind besser erklärbar, wenn nicht der Tabellen-Assistent benutzt wird). Der Dialog wird mit einem Klick auf Fertigstellen beendet.

datenbankassistent-2.png

Die leere Datenbank kann nun an einen beliebigen Ort gespeichert werden. Im Beispiel wurde der Dateiname Europa gewählt.

speichernunter.png

Unter diesem Namen kann man später wieder auf die Datenbank zugreifen. Danach befindet man sich im Datenbankdokumentfenster. Die linke Spalte Datenbank zeigt die vier Schaltflächen Tabellen, Abfragen, Formulare und Berichte. Tabellen dient dem Erzeugen und Bearbeiten von Tabellen, Abfragen ermöglicht die Abfrage der Datenbank nach unterschiedlichen Such- und Filterkriterien. Formulare werden zur bequemen Eingabe von Daten erzeugt und Berichte ermöglichen es, Abfrageergebnisse übersichtlich und für den Ausdruck geeignet anzuzeigen.

2.2. Einfache Tabellen erstellen

Links im Bereich Datenbank wird Tabellen ausgewählt. Um die prinzipielle Funktionsweise zu verdeutlichen, wird wieder nicht der Assistent benutzt, sondern im Bereich Aufgaben die Möglichkeit Tabelle in der Entwurfsansicht erstellen… angeklickt.

datenbankdokument.png

In dem sich anschließend öffnenden Dialog werden nun die einzelne Datenfelder definiert. Im Beispiel wird zunächst die Tabelle „Sprachen“ erstellt.

tabellenentwurf.png

Der kleine grüne Pfeil weist auf die gerade aktive Definitionszeile. Dort hat man folgende Eingabemöglichkeiten:

Im unteren Bereich werden die Feldeigenschaften so eingetragen, wie in der Planung vorgesehen (in diesem Beispiel also z.B. Länge: 2). Rechts daneben erscheinen Hilfetexte zu den einzelnen Zeilen der Eigenschaften.

Im KontextMenü des grauen Feldes der ersten Zeile wird die Option Primärschlüssel ausgewählt. In dem Feld erscheint dann ein kleiner gelber Schlüssel.

primaerschluessel.png

Es wird noch der Feldname Lang eingetragen und zum Schluss wird die Tabelle unter dem vorgesehenen Namen Sprachen abgespeichert.

sprachen.png

Diese Tabelle ergibt keine eigene Datei, sondern sie wird innerhalb der Datenbankdatei gespeichert. Das Fenster („Tabellenentwurf“) wird geschlossen.

2.3. Datensätze in der Tabellenansicht eingeben

Mit einem Doppelklick auf den Namen oder der Option Öffnen aus dem Kontextmenü des Namens wird die Tabellenansicht geöffnet.

oeffnen.png

In dem sich öffnenden Dialog kann man die Spalten an den Trennlinien auf eine günstige Breite einstellen. Schwebt die Maus über dem Spaltenkopf, wird der vorher eingegebene Beschriftungstext als ToolTipp gezeigt. Der grüne Stift bzw. der grüne Pfeil markiert den gerade aktiven Datensatz. Die gelbe Sonne zeigt die Zeile für den nächsten Datensatz.

tabellenansicht.png

Jeder Datensatz muss mit der Schaltfläche Aktuellen Datensatz speichern – Disketten-Symbol mit grünem Pfeil, links – in die Datenbank übernommen werden.

2.4. Datensätze durch ein Formular eingeben

Wie oben beschrieben wird auch die Ländertabelle definiert. Die nötigen Feldtypen sind in der Abbildung zu sehen:

laender.png

Da hier ein Bild zum Datensatz gehört (Flagge), kann die Eingabe nicht mit der Tabellenansicht erfolgen, sondern erfordert ein Formular. Dazu wird im Bereich Datenbank zu Formulare gewechselt. Hier ist der Assistent nicht hilfreich, weil er die Feldtypen Ja/Nein und Bild nicht handhaben kann.

formularentwurf.png

2.4.1. Formulardokument entwerfen

Formulardokumente sind eigentlich TextDokumente mit zusätzlichen Eigenschaften. Und so öffnet sich bei der Auswahl Formular in Entwurfsansicht erstellen… ein Textdokument, allerdings im eher ungewohnten Weblayout. Das ist aber sinnvoll, weil Formulardokumente ja am Bildschirm ausgefüllt werden sollen.

formular.png

Die Abbildung zeigt die für Entwürfe prinzipiell vorhandenen Leisten und Fenster. Die SymbolLeisten Formular Entwurf und Formular-Steuerelemente können ggf. über Ansicht → Symbolleisten eingeschaltet werden. Von diesen aus lassen sich mit den entsprechenden Schaltflächen die Symbolleiste Weitere Steuerelemente und das Fenster Formular Navigator öffnen. Die Leisten lassen sich andocken oder an eine Stelle verschieben, wo sie nicht stören.

Statt der Bezeichnung „Steuerelemente“ wird in der Online-Hilfe an den meisten Stellen der Ausdruck „Kontrollfeld“ benutzt, was der englischen Bezeichnung controls entspricht.

Damit man das Formulardokument herstellen kann, muss sich das Dokument im EntwurfsModus befinden, d.h. die Schaltfläche entwurfsmodus.png muss gedrückt sein.

2.4.2. Formular anlegen

Ein Formular kann man von Hand mit dem Punkt Formulare → Neu → Formular im KontextMenü des Formular-Navigator erzeugen.

formularnavigator.png

Damit wird ein Formular mit Namen Standard eingerichtet, das einerseits die Verbindung zur Datenbank herstellt und andererseits als Container für die Kontrollfelder dient. Im Kontextmenü kann man unter Eigenschaften im Register Allgemein den Namen des Formulars ändern und im Register Daten die Verbindung zur Datenbank eintragen und kontrollieren. Bei Art des Inhaltes muss Tabelle ausgewählt werden, denn es soll eine Datenbanktabelle benutzt werden, bei Inhalt wird dann Länder ausgewählt. Die restlichen Voreinstellungen sind passend.2

Das Formular ist im Dokument nicht sichtbar.

2.4.3. Kontrollfelder platzieren

Hier wird nur eine einfache Version gezeigt. Selbstverständlich sind alle sonst bei TextDokumenten möglichen Formatierungen auch hier einsetzbar. Auch die KontrollFelder selbst können mit Gruppierungsrahmen und Beschriftungen sowie Farben und Umrandungen benutzerfreundlicher gestaltet werden. Die Größe und Position von Kontrollfeldern wird wie bei anderen Objekten auch über Format → Objekt → Position und Größe… eingestellt. Damit kann man z.B. die Breite der Textfelder verändern. Auch die Einstellungen für Umlauf und Ausrichtung und Anordnung erfolgen wie bei anderen Objekten.

Mit Ansicht → Datenquellen (F4) wird die Tabellenansicht der Datenbank im Textdokument eingeschaltet. Links im Datenbankexplorer unter Tabellen wird die Datenbanktabelle Länder ausgewählt. Nun hält man Strg- und Umschalt-Taste gedrückt und zieht den Spaltenkopf Code in das Dokument hinein. Während des Ziehens ist das Cursorsymbol Verknüpfung zu sehen. Es entsteht eine Gruppe aus einem Kontrollfeld vom Typ Beschriftung und einem Kontrollfeld vom Typ Textfeld.3

Die beiden Elemente sind im Formular-Navigator unterhalb des Formulars zu sehen. Mit einem Klick kann man ein Element dort auswählen und über den Punkt Eigenschaften aus dem KontextMenü den Eigenschaft-Dialog für Kontrollfelder öffnen. Das Register Allgemein enthält im Wesentlichen die Einstellungen für das Aussehen, das Register Daten die Einstellungen für die Funktion des Kontrollfeldes im Zusammenhang mit der Datenbank. Der Dialog kann geöffnet bleiben und direkt für die weiteren Kontrollfelder benutzt werden.

Durch das Ziehen sind die meisten Einstellungen richtig. Der Default für die Schriftgröße ist mit 8 pt. allerdings recht klein. Mit der Schaltfläche usw.png in der Zeile Schrift des Eigenschaft-Dialogs öffnet sich der übliche Dialog für Zeichen, wo man die Schriftgröße auf 12 pt. stellen kann. Fügt man die Kontrollfelder direkt aus den Leisten hinzu, anstatt sie aus der DatenQuellen-Ansicht in das Dokument zu ziehen, muss man zusätzlich in den Kontrollfeld-Eigenschaften im Register Daten in der Zeile Datenfeld das zugehörige Feld aus der Datenbanktabelle auswählen.

In gleicher Weise werden die anderen Spaltenköpfe als Verknüpfung in das Dokument gezogen (DragAndDrop). Erfreulicherweise entstehen auch die richtigen Kontrollfelder, d.h. ein Markierfeld (Checkbox) für das Ja/Nein-Datenfeld und ein grafisches Kontrollfeld für das Bild. Leider passt sich das grafische Kontrollfeld nicht den Bildgrößen an, die deshalb möglichst bei allen Datensätzen gleich groß sein sollten. Für die Flaggen wurde 4,0cm × 3,0cm gewählt, was etwa 50% der Originalgröße entspricht. Das „fertige“ Formulardokument wird nun abgespeichert. Wieder ergibt sich keine neue Datei, sondern das Dokument wird innerhalb der Datenbank gespeichert.

2.4.4. Formulardokument benutzen

Vom Datenbankdokumentenfenster aus wird das neue Formulardokument über die Auswahl Öffnen im KontextMenü oder mit einem Doppelklick geöffnet. Wenn keine Formular-Navigation am unteren Rand zu sehen ist, wird sie über Ansicht → Symbolleisten geöffnet. Nun können die Daten eingetragen werden:

Mit den Schaltflächen in der Formular-Navigation werden die Datensätze abgespeichert und neue Datensätze angelegt. Darüber hinaus bietet die Leiste Formular-Navigation für das spätere Benutzen der Datenbank vielfältige Sortier- und Filtermöglichkeiten.

2.4.5. Formulardokument als selbstständiges Dokument exportieren

Ein solches FormularDokument kann mit Datei → Kopie Speichern unter… auch als selbstständiges Dokument exportiert werden. Allerdings muss man dann beim erstmaligen Benutzen zunächst in den EntwurfsModus schalten und im Formular-Navigator in den Eigenschaften des Formulars die Verbindung zur DatenQuelle wieder neu eintragen. Dazu gibt es bei den Eigenschaften des Formulars im Register Daten die zusätzliche Zeile Datenquelle, in der man die gewünschte Datenbank, d.h. hier die Datei Europa.odb auswählt.

2.5. Tabelle mit Fremdschlüsseln erzeugen

2.5.1. Tabelle in Rohform anlegen

Die Tabelle „Landessprache“ soll nach der Planung Verweise auf die Tabellen „Sprache“ und „Länder“ enthalten. Dazu wird die Tabelle zunächst so definiert als enthielten die Datenfelder den Ländercode und den Sprachcode direkt. Damit keine Nummer doppelt vorkommt, wird für das Datenfeld Nr, das Primärschlüssel werden soll, in den Feldeigenschaften Auto-Wert auf ja gestellt. Dadurch übernimmt OpenOffice.org selbst das Nummerieren:

landessprache.png

2.5.2. Relationen setzen

Man geht wieder vom Datenbankdokumentenfenster aus. Über Extras → Beziehungen… wird das Fenster Relationenentwurf geöffnet. Falls sich der Dialog Tabelle hinzufügen nicht automatisch geöffnet hat, kann man ihn über das Menü Einfügen oder über das Symbol TabelleHinzufügen.png einschalten. Im Beispiel sind alle drei Tabellen an der Beziehung beteiligt, es werden daher alle drei hinzugefügt und der Dialog danach geschlossen. Die eingefügten Tafeln kann man am grauen Bereich mit der Maus etwas auseinanderziehen.

Um eine Relation (eine „Beziehung“) zu definieren, zieht man vom Datenfeld einer Tabelle zu dem Datenfeld in der anderen Tabelle, das den Verweis enthalten soll. Im Beispiel also von Länder.Code zu Landessprache.Land und von Sprachen.Kurz zu Landessprache.Sprache. Beim Loslassen werden Verbindungslinien mit den Bezeichnung 1 und n eingezeichnet, um jeweils eine sogenannte 1:n-Beziehung darzustellen.

Statt grafisch mit der Maus zu arbeiten, kann man über Einfügen → Neue Relation… oder über das Symbol neueRelation.png auch einen Dialog mit Auswahllisten benutzen. Diesen benötigt man auch, um die Eigenschaften der Relation einzustellen. Man erreicht ihn über einen Doppelklick auf die Verbindungslinie. Um die Datenbank konsistent zu halten, muss man sich überlegen, was mit dem Datensatz geschehen soll, wenn ein Verweis nicht mehr gültig ist, weil ein Eintrag gelöscht oder geändert wurde. Im Beispiel wurde entschieden, dass bei einer Veränderung (Update) die Veränderung übernommen wird und beim Löschen der Feldinhalt auf Null gesetzt wird, was nicht heißt, dass dort die Zahl 0 eingetragen wird, sondern es bedeutet so viel wie undefiniert oder nicht vorhanden.

Zum Schluss kann der Relationenentwurf gespeichert und das Fenster geschlossen werden.

2.5.3. Formularentwurf für Relationen

Jetzt soll ein Formular Landessprache erstellt werden. Dazu wird zuerst ein neues Formulardokument erzeugt.

Damit beim Eintragen von Datensätzen auch wirklich nur Werte benutzt werden, die vorhanden sind, wird ein Kombinationsfeld (Combobox) benutzt, das seine Werte aus der Datenbank selbst erhält. Das funktioniert nicht mit Ziehen aus der Datenquellenansicht. Aber es steht ein Assistent zur Verfügung. Dazu muss in der Leiste Formular-Steuerelemente mit der Schaltfläche AssistentEin.png der Assistent eingeschaltet sein. Zeichnet man nun ein Kombinationsfeld in das Formulardokument, wird der Assistent automatisch gestartet:

  1. Falls man dem Formular noch keine Tabelle zugeordnet hat, muss zunächst die Tabelle festgelegt werden, hier also Landessprache.

  2. Die Daten für das Kombinationsfeld sollen aus der Tabelle Sprachen kommen.

  3. Und zwar dort aus dem Datenbankfeld Kurz (was der Primärschlüssel ist).

  4. Ja, der Wert soll in das Datenbankfeld Sprache übernommen werden.

Im Register Daten der Eigenschaft des Kontrollfelds sind die SQL-Befehle zu sehen, die der Assistent erzeugt hat.

Entsprechend wird das Kombinationsfeld für das Land erzeugt. Für die laufende Nummer wird kein Kontrollfeld benötigt, weil sie automatisch erzeugt wird.

Wenn nun schon einige Sprachen und Länder eingetragen sind, kann mit diesem Formular die Information aufgenommen werden, welche Sprache in welchem Land gesprochen wird.

formularlandessprache.png

Die mit Eingaben aus diesem Formular gefüllte Tabelle könnte ungefähr so aussehen:

tabelle_landessprachen.png

3. Links


KategorieBase KategorieHowto

  1. Um das Beispiel nicht zu kompliziert zu machen, sollen Unterarten einer Sprache nicht gesondert betrachtet werden, d.h. „Deutsch“ in der Schweiz und in Deutschland werden also als gleich behandelt. (1)

  2. Da die Formularerstellung aus dem Datenbankdokument heraus erfolgt, könnte man hier auf diesen Schritt verzichten, weil beim ersten Einfügen eines Kontrollfelds auch das passende Formular erstellt wird. (2)

  3. Man kann die Kontrollfelder auch von Hand einfügen, indem man den Typ aus der Symbolleiste auswählt und dann im Dokument auf die gewünschte Größe aufzieht. (3)


LizenzBedingungen | AnbieterKennzeichnung | DatenschutzErklärung | Stand: 2013-04-28