Base

Kapitel 2
Datenbank erstellen

Dokumentationen zu LibreOffice unter de.libreoffice.org

Copyright
Dieses Dokument unterliegt dem Copyright © 2012. Die Beitragenden sind unten aufgeführt. Sie
dürfen dieses Dokument unter den Bedingungen der GNU General Public License (http://www.gnu.org/licenses/gpl.html), Version 3 oder höher, oder der Creative Commons Attribution License(http://creativecommons.org/licenses/by/3.0/), Version 3.0 oder höher, verändern und/oder weitergeben.
Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt.
Fast alle Hardware- und Softwarebezeichnungen und weitere Stichworte und sonstige Angaben,
die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt.
Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird das
Symbol (R) in diesem Buch nicht verwendet.

Mitwirkende/Autoren
Robert Großkopf

Jost Lange

Michael Niedermair

Jochen Schiffers

Rückmeldung (Feedback)Kommentare oder Vorschläge zu diesem Dokument können Sie in deutscher Sprache an die
Adresse discuss@de.libreoffice.org senden.

Vorsicht

Alles, was an eine Mailingliste geschickt wird, inklusive der E-Mail-Adresse undanderer persönlicher Daten, die die E-Mail enthält, wird öffentlich archiviert und kannnicht gelöscht werden. Also, schreiben Sie mit Bedacht!

Datum der Veröffentlichung und Softwareversion
Veröffentlicht am 1.3.2013. Basierend auf der LibreOffice Version 4.0

Anmerkung für Macintosh Nutzer
Einige Tastenbelegungen (Tastenkürzel) und Menüeinträge unterscheiden sich zwischen derMacintosh Version und denen für Windows- und Linux-Rechnern. Die unten stehende Tabelle gibt
Ihnen einige grundlegende Hinweise dazu. Eine ausführlichere Aufstellung dazu finden Sie in der
Hilfedatei des jeweiligen Moduls.

2

Windows/Linux

entspricht am Mac

EffektMenü-Auswahl Extras →Optionen

LibreOffice → EinstellungenZugriff auf die Programmoptionen

Rechts-Klick

Control+Klick
ControlÖffnen eines Kontextmenüs

Ctrl (Control)oder Strg (Steuerung)⌘ (Command)

Tastenkürzel in Verbindung mit anderen
TastenF5Shift+⌘
F5
Shift ⌘+F5

öffnet den Dokumentnavigator Dialog

F11

⌘+T
T

öffnet den Formatvorlagen Dialog

Datenbank erstellenInhalt
Allgemeines bezüglich der Erstellung einer Datenbank ................................................................. 4
Neue Datenbank als interne Datenbank ......................................................................................... 4
Zugriff auf externe Datenbanken .................................................................................................... 5
MySQL-Datenbanken ................................................................................................................ 6
MySQL-Verbindung direkt mit der Extension ........................................................................ 6
MySQL-Verbindung über JDBC ............................................................................................ 6
MySQL-Verbindung über ODBC ........................................................................................... 7
Verbindung zur MySQL-Datenbank über den Datenbank-Assistenten .................................. 7
dBase-Datenbanken ................................................................................................................ 16
Tabellendokumente ................................................................................................................. 19
Thunderbird Adressbuch ......................................................................................................... 193

Allgemeines bezüglich der Erstellung einer Datenbank
In LibreOffice gibt es das Programmmodul «Base». Dies stellt eine grafische Benutzeroberfläche
für Datenbanken zur Verfügung. Daneben existiert, in LibreOffice eingebunden, die interne Datenbank «HSQLDB». Diese interne Version der HSQLDB-Datenbank kann nur als Datenbank voneinem Nutzer betrieben werden. Die gesamten Daten sind in der *.odb-Datei mit abgespeichert
und diese Datei ist nur für einen Benutzer nicht schreibgeschützt zu öffnen.

Neue Datenbank als interne Datenbank
Sofern nicht von vornherein eine Multiuserdatenbank geplant ist oder erst einmal erste Erfahrungen mit einer Datenbank gesammelt werden sollen, ist die interne Datenbank gut nutzbar. Diese
lässt sich später auch mit ein paar Kniffen noch zur externen HSQLDB umwandeln, auf die dannauch mehrere User gleichzeitig zugreifen können, wenn der HSQLDB-Server läuft. Eine Beschreibung dazu erfolgt im Anhang dieses Handbuches im Kapitel «Datenbankverbindung zu einer externen HSQLDB».
Die Erstellung einer internen Datenbank erfolgt direkt über den Eingangsbildschirm von LO mit
einem Klick auf den Button Datenbank oder über Datei → Neu → Datenbank. Der DatenbankAssistent startet mit dem folgenden Bildschirm:

Das Optionsfeld «Neue Datenbank erstellen» ist für eine neue interne Datenbank angewählt. Die
weiteren Optionen dienen dazu, eine bestehende Datei zu öffnen oder eine Verbindung zu einer
externen Datenbank wie z.B. einem Adressbuch, einer MySQL-Datenbank o.ä. aufzubauen.

4

Datenbank erstellenEine in LibreOffice angemeldete Datenbank kann von den anderen Programmteilen vonLibreOffice als Datenquelle genutzt werden (z. B. Serienbrief). Diese Anmeldung kann aber auchzu einem späteren Zeitraum erfolgen. Deshalb ist an dieser Stelle erst einmal das Optionsfeld«Nein, die Datenbank soll nicht angemeldet werden", ausgewählt.
Bei den Markierfeldern ist lediglich «Die Datenbank zum Bearbeiten öffnen» markiert. Assistenten
zur Erstellung von Tabellen, Abfragen usw. werden in diesem Handbuch nicht genutzt. Ihre Funktion ist in dem Kapitel aus dem «Erste Schritte Handbuch» «Einführung in Base» erklärt.
Die Datenbank wird fertiggestellt, indem direkt noch einem Namen und einem Speicherort gefragt
wird. An der entsprechenden Astelle wird dann die *.odb-Datei erzeugt, die zur Aufnahme vonDaten aus der internen Datenbank, zur Speicherung von Abfragen, Formularen und Berichten
gedacht ist.
Im Gegensatz zu den anderen Programmteilen von LibreOffice wird also die Datei abgespeichert,
bevor der Nutzer überhaupt irgendwelche für ihn sichtbare Eingaben getätigt hat.

Zugriff auf externe Datenbanken
Alle externen Datenbanken müssen zuerst einmal existieren. Angenommen es soll der Zugriff auf
die Datenbank einer eigenen Homepage erfolgen. Dort muss zuerst einmal die Datenbank selbst
mit einem Namen und Zugangsdaten gegründet worden sein, bevor externe Programme darauf
zugreifen können.
Existiert nun diese externe Datenbank, so kann sie, je nach vorhandener Treibersoftware, zur
Erstellung von Tabellen und anschließender Dateneingabe und -abfrage genutzt werden.
Über Datei → Neu → Datenbank wird der Datenbankassistent geöffnet und die Verbindung zu
einer bestehenden Datenbank hergestellt. Die Liste der hier aufgeführten Treiber, die mit Datenbanken verbinden, variiert etwas je nach Betriebssystem und Benutzeroberfläche. Immer dabei
sind aber
Zugriff auf externe Datenbanken

5

•
•
•
•
•
•
•
•
•

dBase
JDBC
MySQL
ODBC
Oracle JDBC
PostgreSQL
Tabellendokument
Text
sowie verschiedene Adressbücher

Je nach gewählter Datenbank variieren nun die Verbindungseinstellungen. Diese können auchgegebenenfalls später noch korrigiert werden, wenn erst einmal die *.odb-Datei erstellt worden ist.
Bei manchen Datenbanktypen können keine neuen Daten eingegeben werden. Sie sind deshalb
nur zum Suchen von Daten geeignet (z.B. Tabellendokument, Adressbücher). Die Beschreibungenin den folgenden Kapiteln beziehen sich ausschließlich auf die Verwendung von LibreOffice Basemit der internen Datenbank HSQLDB. Die meisten Ausführungen lassen sich auf Datenbanken wie
MySQL, PostgreSQL etc. übertragen und entsprechend anwenden.
Hier soll nur kurz an ein paar Beispielen vorgestellt werden, wie der Kontakt zu anderen externen
Datenbanken hergestellt wird.

MySQL-Datenbanken
MySQL-Datenbanken können auf drei verschiedene Weisen mit Base verbunden werden. Die einfachste und schnellste Art ist die direkte Verbindung mit dem ySQL-Connector. Daneben steht
noch dir Verbindung über JDBC und ODBC zur Verfügung.

MySQL-Verbindung direkt mit der Extension
Für die MySQL-Datenbank existieren Erweiterungen zur direkten Verbindung mit Base. Diese
Erweiterungen tragen den Namen MySQL-Connector.
Die mit der 3.3.4 funktionierende Erweiterung («Extension») ist unter
http://extensions.services.openoffice.org/en/project/mysql_connector (Stand: 1/11)
zu finden.
Ab der Version 3.5 gibt es eine für Mac und Ubuntu-Linux getestete neue Version unter:
http://extensions.libreoffice.org/extension-center/mysql-native-connector-for-mac-osx
Eine auch unter anderen Systemen lauffähige Erweiterung für Version nach 3.3.4 steht unter
http://extensions.openoffice.org/en/project/aoo-my-sdbc
zum Download.
Leider gibt es zur Zeit keine funktionierenden MySQL-Connector-Erweiterungen für die Version
4.0.

MySQL-Verbindung über JDBC
Als allgemeiner Zugang zu MySQL ist der Zugang über JDBC oder ODBC zu wählen. Um den
JDBC-Zugang nutzen zu können, wird der mysql-connector-java.jar in der jeweils zur Datenbank
passenden Fassung benötigt. Dieses Java-Archiv wird am besten in das Verzeichnis kopiert, aus
dem auch die aktuelle Java-Version von LibreOffice geladen wird. Als Speicherort bietet sich das
Unterverzeichnis «...Javapfad.../lib/ext/» an. In Linux-Systemen wird dies durch die Softwareverwaltung oft automatisch erledigt.

6

Datenbank erstellenGegebenenfalls kann das Java-Archiv auch separat über Extras → Optionen → Java → ClassPath in den Class-Path aus jeder beliebigen Stelle der Festplatte übernommen werden. Für diese
Option sind dann auch keine Systemverwalterrechte notwendig.

MySQL-Verbindung über ODBCFür eine Verbindung über ODBC muss natürlich erst einmal die entsprechende ODBC-Software
installiert sein. Details dazu werden hier nicht weiter beschrieben.
Nach Installation der entsprechenden Software kann es passieren, dass LO den Dienst verweigert,
weil es die libodbc.so nicht findet. Hier existiert in den meisten Systemen inzwischen die libodbc.so.2 . Auf diese Datei muss ein entsprechender Verweis mit dem Namen libodbc.so in dem
gleichen Verzeichnis abgespeichert werden.
In den für das System notwendigen Dateien odbcinst.ini und odbc.ini müssen Einträge ähnlich den
folgenden existieren:

odbinst.ini[MySQL]
Description = ODBC Driver for MySQLDriver = /usr/lib/libmyodbc5.so
odbc.ini[MySQL-test]
Description = MySQL database test
Driver = MySQL
Server = localhost
Database = test
Port = 3306
Socket =Option = 3
ReadOnly = No
Diese beiden Dateien liegen bei einem Linux-System im Verzeichnis /etc/unixODBC

Verbindung zur MySQL-Datenbank über den Datenbank-Assistenten
Der Zugriff auf eine existierende MySQL-Datenbank erfolgt mit der direkten Verbindung in den folgenden Schritten:

Zugriff auf externe Datenbanken

7Über «Neue Datenbank erstellen» ist nur die Erstellung einer Datenbank im internen HSQLDBFormat möglich. Die Zusammenarbeit mit anderen Datenbanken kann nur erfolgen, wenn die
Datenbank selbst bereits existiert. Dazu muss also «Verbindung zu einer bestehenden Datenbank
herstellen» gewählt werden.

Hier wird aus den, teilweise betriebssystemspezifischen, Datenbanken die MySQL-Variante ausgewählt.

8

Datenbank erstellen

Die direkte Verbindung

Der Kontakt zu MySQL kann über ODBC oder JDBC hergestellt werden, solange kein nativer1
MySQL-Connector als direkte Verbindung installiert ist oder unterstützt wird. Ist die Erweiterung füreine direkte Verbindung installiert, so wird «Direkte Verbindung» standardmäßig voreingestellt.
Die direkte Verbindung ist diejenige, die von der Geschwindigkeit und von der Funktionalität ambesten gewählt werden sollte.

1«nativ» – unverändert, unmodifiziert

Zugriff auf externe Datenbanken

9Der Datenbankname muss bekannt sein. Befindet sich der Server auf dem gleichen Rechner wie
die Benutzeroberfläche, unter der die Datenbank erstellt wird, so kann als Server «localhost»gewählt werden. Ansonsten kann die IP-Adresse (z.B. 192.168.0.1) oder auch je nach Netzwerkstruktur der Rechnername oder gar eine Internetadresse angegeben werden. Es ist also ohne weiteres möglich, mit Base auf die Datenbank zuzugreifen, die vielleicht auf der eigenen Homepage
bei irgendeinem Provider liegt.
Bei der Arbeit mit Base über das Internet sollte sich der Nutzer allerdings darüber bewusst sein,
wie seine Verbindung zu der Datenbank gestaltet ist. Gibt es eine verschlüsselte Verbindung? Wieerfolgt die Passwortübertragung?

10

Datenbank erstellenJede über das Netz erreichbare Datenbank sollte mit einem Benutzernamen und einem Kennwort
geschützt sein. Hier wird direkt getestet, ob die Verbindung klappt.

Dieses Fenster erscheint anschließend bei jedem Start der Datenbankdatei, wenn das erste Mal
auf die MySQL-Datenbank zugegriffen wird.
Der Verbindungstest startet die Authentifizierung mit vorgegebenem Benutzernamen. Nach Passworteingabe erfolgt die Meldung, ob die Verbindung erfolgreich hergestellt werden kann.
Läuft z.B. MySQL zur Zeit nicht, so kommt natürlich an dieser Stelle eine Fehlermeldung.
Zugriff auf externe Datenbanken

11Auch hier wird die Datenbank nicht angemeldet, da sie nur zu ersten Tests aufgebaut wurde. Eine
Anmeldung ist erst notwendig, wenn andere Programme wie z.B. der Writer für einen Serienbrief
auf die Daten zugreifen sollen.
Der Assistent beendet die Verbindungserstellung mit dem Abspeichern der gewünschten Datenbankverbindung. In dieser *.odb-Datei liegen jetzt lediglich diese Verbindungsinformationen, die bei
jedem Datenbankstart ausgelesen werden, so dass auf die Tabellen der MySQL-Datenbank zugegriffen werden kann.

12

Datenbank erstellenAbbildung 1: Ansicht der geöffneten Datenbankdatei mit Tabellenübersicht und in derFußzeile der Benennung des verwendeten Treibers «MySQL (nativ)», des Datenbanknamens «test», des Nutzers der Datenbank «LibreOfficeTester» und des Servers,
auf dem die Datenbank läuft, nämlich «localhost».
Über «Fertigstellen» wird die Base-Datei erstellt und die Ansicht auf die Tabellen der MySQLDatenbank geöffnet. Die Tabellen der Datenbank werden unter dem Namen der Datenbank selbst
aufgeführt.
Beim aktuell lauffähigen Treiber von «aoo-my-sdbc» wird nur die Datenbank «test» angezeigt, fürdie auch die Verbindung bestimmt war. Vorherige Treiber von LO boten auch andere MySQLDatenbanken auf dem gleichen Server zur Auswahl.
Auch mit dem Treiber «aoo-my-sdbc» ist aber ein Zugriff auf die anderen Tabellen z.B. für Abfragen möglich, sofern natürlich der angegebene Datenbanknutzer, im obigen Fall also «LibreOfficeTester», mit seinem Passwort auf die Daten zugreifen kann. Im Gegensatz zu den bisherigen nativen LO-Treibern ist hier allerdings kein schreibender Zugriff auf andere Datenbanken des gleichen
MySQL-Datenbankservers möglich.
Im Unterschied zu der internen Datenbank von Base taucht bei Abfragen entsprechend in MySQL
für die Definition der Tabelle immer auch der Datenbankname auf, hier z.B.
… FROM "test"."Klasse" AS "Klasse" ...
Hier ist es also auf jeden Fall notwendig, der Kombination aus Datenbankname und Tabellenname
mit dem Zusatz «AS» einen alternativen Alias-Namen zuzuweisen. Genaueres siehe dazu in dem
Kapitel «Verwendung eines Alias in Abfragen».
Tabellen können in der Datenbank erstellt und gelöscht werden. Automatisch hochzählende Zahlenfelder («Autowert») funktionieren und lassen sich auch bei der Tabellenerstellung auswählen.
Sie starten bei MySQL mit dem Wert 1.
Zugriff auf externe Datenbanken

13Die ODBC-Verbindung
Die ersten Schritte zur ODBC-Verbindung sind gleich denen zur direkten Verbindung. Wird beim
zweiten Schritt dann die ODBC-Verbindung für MySQL gewählt, dann erscheint das folgende
Fenster des Datenbank-Assistenten:

Die ODBC Datenquelle hat nicht unbedingt den gleichen Namen wie die Datenbank in MySQL
selbst. Hier muss der Name eingetragen werden, der auch in der Datei «odbc.ini» steht. Die einfachste Möglichkeit besteht hier darin, über den Button Durchsuchen den Namen aus der «odbc.ini» direkt auszulesen.

14

Datenbank erstellenBeim Test erscheint der Name aus der «odbc.ini». Auch wenn hier wieder nur mit einer Datenbank
verknüpft wird, können andere Tabellen des MySQL-Servers sehr wohl gelesen werden.
Schritt 4 und 5 laufen wieder identisch zur Direktverbindung ab.

Die JDBC-Verbindung
Auch bei der JDBC-Verbindung sind die ersten Schritte gleich hier unterscheidet sich wieder nur
Schritt 3 von den anderen Schritten des Assistenten:

Zugriff auf externe Datenbanken

15Der Assistent fragt hier die gleichen Informationen ab wie bei der direkten Verbindung. Der Datenbankname ist der, der auch in MySQL selbst verwandt wird.
Über «Klasse testen» wird überprüft, ob das Archiv mysql-connector-java.jar über Java erreichbar
ist. Entweder muss dieses Archiv im Pfad der ausgewählten Java-Version liegen oder direkt in
LibreOffice eingebunden werden.

Alle weiteren Schritte sind wieder identisch zu denen der vorherigen Verbindungen. Die Verbindungen zu anderen Datenbanken des gleichen MySQL-Datenbankservers funktionieren ebenfalls nurlesend.

dBase-Datenbanken
Bei dBase handelt es sich um ein Datenbankformat, dass alle Daten in einem beliebigen Verzeichnis in separaten Tabellen bereitstellt. Verknüpfungen zwischen den Tabellen müssen über die Programmstruktur erledigt werden. Dbase hat keine Möglichkeit, intern zu verhindern, dass z.B. in derMedien-Datenbank ein Medium gelöscht wird, der Verweis darauf aber weiterhin in der Tabelle
zum Medienentleih erhalten bleibt.

Hinweis16

Zur Zeit werden nur dBase-Dateien berücksichtigt, die mit der in Kleinbuchstabengeschriebene Dateiendung *.dbf versehen sind. Andere Endungen wie z.B. *.DBF
werden nicht ausgelesen. (Bug 46180)
Datenbank erstellen

Die Verbindung wird zu einem Verzeichnis hergestellt. Alle *.dbf-Dateien, die sich in diesem Verzeichnis befinden, werden anschließend angezeigt und können über Abfragen oder Formulare miteinander verbunden werden.
Tabellen in dBase haben kein unverwechselbares Feld für jeden Datensatz («Primärschlüssel»).
Sie können also vom Prinzip her so beschrieben werden wie Tabellenblätter in Calc.

Zugriff auf externe Datenbanken

17Tabellen können in Base neu erstellt werden. Sie werden dann einfach als neue Dateien in das
angegebene Verzeichnis geschrieben.
Für neue Tabellen stehen deutlich weniger Feldtypen zur Verfügung als für die interne HSQLDB.
Dabei sind noch einige Bezeichnungen der folgenden Abbildung als Verdoppelungen anzusehen.

Dbase bietet sich besonders an, wenn es um Weitergabe und vielfältige Verarbeitungsmöglichkeit
von Daten geht. Schließlich können auch Tabellenkalkulationen dBase-Tabellen direkt einlesen.
Base übernimmt einfach die Codierung, die dem Betriebssystem entspricht. Alte dBase-Dateien
weisen dadurch leicht Fehler beim Import von Sonderzeichen auf. Der Zeichensatz kann anschließend über Bearbeiten → Datenbank → Eigenschaften → Zusätzliche Einstellungen entsprechend korrigiert werden:

18

Datenbank erstellenHinweis

Der Importassistent für dBase hat Probleme, numerische Feldtypen und Ja/NeinFelder automatisch richtig zu erkennen. (Bug 53027) Hier muss entsprechend nachgebessert werden.

Tabellendokumente
Tabellenquellen für Datenbanken können auch Tabellendokumente sein. Wird aber eine CalcTabelle als Grundlage genommen, so ist jedes Editieren der Tabelle ausgeschlossen. Selbst wenndas Calc-Dokument auch noch geöffnet wird, wird dort ein Schreibschutz gesetzt.

Die einzige Abfrage ist letztlich, an welcher Position das Tabellendokument liegt und ob die Tabelle
passwortgeschützt ist. Base öffnet dann das Tabellendokument und übernimmt alle Tabellenblätter
mit ihrem Inhalt. Aus der ersten Zeile bildet Base die Feldbezeichnungen, aus den Tabellenblattbezeichnungen die Tabellenbezeichnungen.
Beziehungen zwischen den Tabellen lassen sich in Base nicht erstellen, da Calc nicht Grundlage
für eine relationale Datenbank ist.

Thunderbird Adressbuch
Die Verbindung zu einem Adressbuch wie z.B. dem Thunderbird-Adressbuch sucht der Assistentautomatisch. Er fragt lediglich nach einem Speicherort für die *.odb-Datei, die er erstellen soll.

Zugriff auf externe Datenbanken

19Alle Tabellen werden dargestellt. Wie in Calc sind die Tabellen aber nicht editierbar. Base macht
die Adressen damit nur für Abfragen und z. B. für die Verwendung in Serienbriefen zugänglich.

20

Datenbank erstellen