Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Be

Transcription

Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Be
Inhalt
Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX
1 Einleitung
..................................................... 1
OpenOffice.org Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Die Installation von OpenOffice.org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Zur Verwendung der Beispieldateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
............... 7
Wozu Datenbanken? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Datenbankbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Der Aufbau von Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 Die Arbeitsoberfläche
...........................................
Grundlegende Begriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Symbolleisten und Menüs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Das Arbeitsfenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbankobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
27
28
30
32
4 Datenbanken und Tabellen erstellen
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Eine neue Datenbank erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Tabellen erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
| V
Links
5 Filter und Abfragen
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Grundsätzliches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Filter anwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Ansichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6 Datenbankdesign und Normalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Datenbankdesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Daten sammeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Normalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Normalisierung bei n : n-Beziehungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schlüsselfelder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Beziehungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
135
136
137
140
141
7 Abfragen über mehrere Tabellen
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Wozu Abfragen über mehrere Tabellen? . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Abfragen auf mehrere Tabellen erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
8 Formulare
...................................................
Wozu Formulare? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formulare mit dem Assistenten erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mit dem Formular arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formulare bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
153
153
154
157
163
179
9 Berichte
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Berichte in OpenOffice.org Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Berichte mit dem Assistenten erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Selbst gestaltete Berichte in der Entwurfsansicht erstellen . . . . . . . . . . . . . 201
10 Datenaustausch mit OpenOffice.org Base
..........................
Base-Datenbanken in anderen OpenOffice.org-Modulen . . . . . . . . . . . . . .
OpenOffice.org-Base-Daten in Writer und Calc . . . . . . . . . . . . . . . . . . . . .
Seriendruck mit OpenOffice.org-Base-Daten . . . . . . . . . . . . . . . . . . . . . . . .
Ein E-Mail-Adressbuch in OpenOffice.org Base einbinden . . . . . . . . . . . . .
Datenaustausch mit CSV-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenaustausch zwischen OpenOffice.org-Base-Dateien . . . . . . . . . . . . . .
Max.
Linie
VI
|
Inhalt
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
219
219
224
238
248
254
266
Max.
Linie
Rechts
11 SQL
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Die Abfragesprache SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
SQL und OpenOffice.org Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
12 Datenbankanwendung mit Formularen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Erstellen einer Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
13 OpenOffice.org Base als Frontend für eine MySQL-Datenbank . . . . . . . . . . . 321
MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Base mit MySQL verbinden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Arbeit mit MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vom internen DBMS auf MySQL umsteigen . . . . . . . . . . . . . . . . . . . . . . . .
Arbeiten mit mehreren Benutzern an der Datenbank . . . . . . . . . . . . . . . . .
321
331
335
341
346
Anhang A
.......................................................
349
Anhang B
.......................................................
359
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Max.
Linie
Max.
Linie
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Inhalt |
VII
Kapitel02.fm Seite 7 Dienstag, 11. November 2008 1:04 13
First
KAPITEL 2
Erstellen auf den
Arbeitsseiten
(siehe Muster)
Datenbanken, Ziele
und Möglichkeiten,
zentrale Begriffe
Abstand untere Tabellenlinie zu Textanfang 1,8 cm
-> also: manuell auf den Arbeitsseiten ziehen!!!
Wozu Datenbanken?
Am Anfang dieses Buches soll die Frage behandelt werden, was Datenbanken sind
und für welche Zwecke sie sinnvoll eingesetzt werden können.
Strukturierte Datenspeicherung
Datenbanken speichern Daten in strukturierter Form. Diese Struktur soll ein Wiederauffinden und Bearbeiten von Daten ermöglichen. Datenbanken dienen damit
der Datenspeicherung, der Datenverwaltung, der Datenauswertung und der Bearbeitung von Daten. Daten in diesem Sinne sind alle Informationen, die gespeichert
und später in verschiedenen Zusammenhängen wiederverwendet werden sollen.
Das können Texte, Adressen, Zahlen, Datums- und Zeitwerte, aber auch Bilder
sein. Die Daten sollen später ausgewertet und bearbeitet werden können.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
In diesem Kapitel:
• Wozu Datenbanken?
• Tabellen
• Datenbankbegriffe
• Der Aufbau von Datenbanken
Hier Mini IVZ eingeben!
Daten werden erst aussagekräftig, wenn sie zueinander in Beziehung stehen. Ein
Straßenname mit Hausnummer wird erst dann zu einer Adresse, wenn zu ihm ein
Name und ein Ort gehören. Eine Datenbank stellt Strukturen zur Verfügung, mit
denen Daten in Beziehung zueinander gesetzt werden können. Sie stellt die Beziehungen nicht selbst her – das kann nur der Mensch tun, der die Datenbank erstellt
oder verwaltet. Die Struktur ermöglicht es aber, die Daten wiederzufinden, auszuwerten und zu bearbeiten.
Tabellen
Max.
Linie
Eine altbewährte Struktur, um Daten zueinander in Beziehung zu setzen, sind
Tabellen. Zu den ältesten Schriftzeugnissen der Menschen gehören Listen in einfacher oder tabellarischer Form. In Spalten und Zeilen werden zusammengehörige
Daten aufgelistet.
| 7
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 8 Dienstag, 11. November 2008 1:04 13
Links
Auch die sogenannten relationalen Datenbanken, mit denen wir es bei OpenOffice.
org zu tun haben, arbeiten mit Tabellen. In den Zeilen stehen zusammengehörige
Daten, die durch die Spalten in Kategorien aufgeteilt werden. Das Grundprinzip
von Datenbanken ist also wohlbekannt.
Vor- und Nachteile von Tabellen
Die Speicherung von Daten in Tabellen hat Vorteile und Nachteile:
Der Vorteil von Tabellen ist, dass sie übersichtlich sind. Daten, die in einer Zeile
stehen, gehören zusammen. Daten, die in einer Spalte stehen, gehören inhaltlich zu
einer Kategorie. Damit kann die Tabelle grundlegende Strukturen auf den ersten
Blick verdeutlichen.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Es gibt auch andere Formen der Datenverwaltung. Tabellen sind nicht für alles und
jedes geeignet. Eine in der Informationstechnik sehr verbreitete Struktur ist die
Baumstruktur. Hier sind die Daten hierarchisch aufgebaut. Ausgehend von einem
Wurzelelement gibt es Unterelemente, die selbst weitere Unterelemente enthalten.
Auch diese Struktur ist nicht neu: Man findet sie schon lange in Stammbäumen. In
der Informationstechnik ist das bekannteste Beispiel sicher die Dateisystemhierarchie mit Laufwerken, Ordnern, Unterordnern und Dateien. Das Kennzeichen dieser
Struktur ist, dass sie viele Verzweigungen ermöglicht. Diese hierarchischen Strukturen sind in diesem Buch aber kein Thema. OpenOffice.org Base arbeitet mit Datenbanken, die Tabellen verwenden. OpenOffice.org Base ist vor allem ein Werkzeug,
das diese weit verbreitete Struktur in einem Office-Paket zur Verfügung stellt beziehungsweise die Nutzung bereits vorhandener Datenbanken durch dieses OfficePaket ermöglicht.
Der Nachteil ist, dass die Übersichtlichkeit einer Tabelle schnell abnimmt, wenn sie
größer wird. Außerdem lassen sich in Tabellen nur Beziehungen von Daten darstellen, in denen ein Element einer Kategorie zu einem Element einer anderen Kategorie
gehört. Ein Buch hat einen Titel, einen Verlag, eine ISBN. Diese Elemente lassen
sich gut in einer Zeile darstellen. Wenn mehrere Elemente einer Kategorie einem
einzigen anderen Element zugeordnet werden sollen, lässt sich das in einer Tabelle
nicht mehr gut darstellen. Das wird schon schwierig, wenn ein Buch mehrere Autoren hat. Soll die Tabelle nach Autoren sortiert werden, müssten sämtliche andere
Daten des Buches für jeden Autor wieder aufgelistet werden. Für solche Beziehungen müssen jeweils weitere Tabellen angelegt werden. Im diesem Fall sollte es eine
eigene Tabelle für die Autoren geben und eine weitere Tabelle, in der Bücher und
Autoren einander zugeordnet werden. Wie das im Einzelnen funktioniert, werden
Sie sehen, wenn wir am Ende dieses Kapitels von n:n-Beziehungen (sprich: n zu n)
sprechen.
Max.
Linie
Die Datenbanken, mit denen wir es bei OpenOffice.org Base zu tun haben, stellen
Strukturen und Werkzeuge zur Verfügung, mit denen der Nachteil der Unüber-
8 |
Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 9 Dienstag, 11. November 2008 1:04 13
Rechts
Warum eine Datenbank verwenden und keine Tabellenkalkulation?
Häufig werden Tabellenkalkulationen wie OpenOffice.org Calc zur Verwaltung
von tabellarischen Daten verwendet. Auf den ersten Blick erscheint das logisch, gibt
doch der Ausdruck Tabelle schon dem Programm seinen Namen. Eine Tabellenkalkulation hat aber für die Datenverwaltung entscheidende Nachteile:
• Die Tabellengröße ist begrenzt
OpenOffice.org Calc 3 kann 65.536 Zeilen verwalten. Das ist kein Problem für
kleinere Datenmengen. Die meisten Datenbanken können aber wesentlich größere Tabellen verwalten. Meistens ist die Größe nur durch die maximale
Dateigröße begrenzt, die das Betriebssystem bearbeiten kann.
• Zwischen Tabellen können keine Beziehungen festgelegt werden
In Datenbanken können Sie solche Beziehungen zwischen Tabellen komfortabel herstellen. Die Werte einer Spalte können auf Schlüsselwerte in anderen
Tabellen verweisen. Sie können diese Beziehungen nutzen, um die Daten auszuwerten.1 Firmen können zum Beispiel mehrere Adressen haben, etwa für
Briefpost und Anlieferung. Sie können deshalb Adressen und Personen- oder
Firmennamen in getrennten Tabellen verwalten. Die Beziehungen zwischen
Personen und Firmen auf der einen Seite und Adressen auf der anderen Seite
werden in einer Datenbank durch Spalten hergestellt, die eindeutige Werte enthalten.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
sichtlichkeit ausgeglichen werden kann. Durch ein Abfragesystem können aus großen Tabellen wieder kleinere, übersichtliche Auswahltabellen erzeugt werden. Über
bestimmte Spalten können Beziehungen zwischen mehreren Tabellen hergestellt
werden, so dass auch komplexere Datenbeziehungen abgebildet werden können.
Durch Abfragen können diese Beziehungen auch wieder übersichtlich dargestellt
werden. Aus einer begrenzten Anzahl von gespeicherten Tabellen kann eine Vielzahl von aussagekräftigen oder durch andere Programme auswertbaren Tabellen
erzeugt werden.
• Die Möglichkeit, Daten auszuwerten, ist begrenzt
In Tabellenkalkulationen gibt es Filteroptionen und die Möglichkeit, Spalten
auszublenden. Der Einsatz solcher Filter führt aber zu einer Veränderung des
Dokuments. Wollen Sie wieder auf den vollen Datenbestand zugreifen, müssen
Sie die Filter abschalten. Die Abfragen, die Sie in OpenOffice.org-Datenbanken
verwenden können, zeigen Ihnen die Daten in einer Auswahl, die Sie vorher
definieren und speichern können. Sie können leicht zwischen der Auswahl
durch die Abfrage und dem gesamten Datenbestand hin- und herschalten.
Max.
Linie
1 Auch in Tabellenkalkulationen können Sie Beziehungen aufbauen. Diese Beziehungen sind aber immer
Beziehungen zwischen Zellen oder Zellbereichen und sind oft mit Berechnungen verbunden.
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Tabellen
| 9
Max.
Linie
Kapitel02.fm Seite 10 Dienstag, 11. November 2008 1:04 13
Links
Wann sollten Sie also eine Tabellenkalkulation verwenden und wann eine Datenbank?
Wie die Bezeichnung bereits ausdrückt, ist eine Tabellenkalkulation für Kalkulationen da, also für komplexe Berechnungen. Sie können in einer Datenbank zwar in
Abfragen auch Berechnungen durchführen, die Befehle dafür werden aber schnell
sehr komplex. Was Sie gerade mit einer Tabellenkalkulation leicht erledigen können
– Berechnungen für ganze Bereiche durchführen oder Zwischensummen darstellen –
ist für eine Datenbank unmöglich. Für Berechnungen mit vielen Zahlen über Zeilen,
Spalten und Tabellen hinweg ist eine Tabellenkalkulation das richtige Werkzeug.
Die Stärke der Datenbank ist die Verwaltung großer Datenbestände in Tabellenform.
Die Datenbank bietet Werkzeuge an, um diese Daten zu bearbeiten, zu suchen und
zu filtern. Und sie ermöglicht es, Daten aus mehreren Tabellen zueinander in Beziehung zu setzen. Wenn Sie also Daten verwalten wollen, Adressen, Bestellungen oder
auch eine Sammlung, dann ist eine Datenbank das Programm der Wahl.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
• Es entstehen leicht Doppelungen von Daten
Daten, die in verschiedenen Kontexten verwendet werden, können in einer
Datenbank so verwaltet werden, dass keine Doppelungen entstehen. In einer
Tabellenkalkulation ist das schwierig. Wenn Sie Kundenadressen und ihre
Bestellungen in einem Calc-Dokument verwalten wollen, müssen Sie bei jeder
Bestellung wieder die vollständige Adresse des Kunden angeben. Das führt
leicht zu Fehlern, wenn die Kundendaten nicht jedes Mal identisch eingegeben
werden. Sie können natürlich auch für jeden Kunden eine neue Tabelle anlegen. Dadurch wird die Datenverwaltung aber sehr komplex. Die Aufgabe, die
Daten aufeinander abzustimmen und sie konsistent zu halten, wird bei Ihnen
liegen und nicht beim Computer. Datenbanken bieten dagegen Werkzeuge
und Strukturen an, die diese Aufgabe im Wesentlichen übernehmen können.
In OpenOffice.org können Sie außerdem noch Daten aus der Datenbank Base in
der Tabellenkalkulation Calc weiterverarbeiten. So können Sie die Stärken beider
Programme miteinander verbinden.
Auswertung von Daten
Eine Datenbank speichert nicht nur Daten, sie ermöglicht auch die Auswertung und
Bearbeitung von Daten.
Auswertung von Daten heißt:
Max.
Linie
• die Daten werden für Menschen verständlich und aussagekräftig dargestellt, oder
• die Daten werden mit Funktionen, die die Datenbank zur Verfügung stellt, statistisch ausgewertet, oder
• die Daten werden für die Weiterverarbeitung durch andere Programme aufbereitet.
10 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 11 Dienstag, 11. November 2008 1:04 13
Rechts
Bearbeitung von Daten bedeutet:
• Hinzufügen von Daten
• Löschen von Daten
• Ändern von Daten
Gespeichert werden die Daten in Tabellen. Die Struktur der Tabellen wird vor dem
ersten Eintragen von Daten in die Tabellen festgelegt. Damit auf diese Daten sinnvoll zugegriffen werden kann, muss an diesem Punkt durch den Menschen, der die
Datenbank erstellt, die Verteilung der Daten auf die Tabellen festgelegt werden.
Diesen Vorgang nennt man Datenbankdesign.
Der Zugriff auf die Daten erfolgt ausschließlich über Abfragen. Abfragen können
den Inhalt einer gesamten Tabelle, aber auch Teile von Tabellen darstellen. Das
kann eine Auswahl von Zeilen sein, eine Auswahl von Spalten oder beides. Das
Ergebnis einer Abfrage ist in jedem Fall wieder eine Tabelle. Diese Tabelle befindet
sich aber nicht in der Datenbank, sondern wird ausschließlich für denjenigen
erzeugt, der die Abfrage an die Datenbank stellt. Solche Abfragen können zum Beispiel am Bildschirm oder als Ausdruck dargestellt werden. Sie können aber auch
durch andere Programme weiterverwendet werden, zum Beispiel für einen Serienbrief oder um eine Rechnung zu erstellen.
Die Pflege der Daten, also das Bearbeiten, Hinzufügen oder Löschen von Daten,
geschieht direkt in den Tabellen. Sie sind der zentrale Ort für die Datenhaltung.
Änderungen an dieser einen Stelle stehen dadurch allen Abfragen auf diese Daten
zur Verfügung.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Die Daten, die in einer Datenbank gespeichert sind, können in verschiedenen Kontexten verwendet werden. Erreicht wird das durch folgenden Aufbau der Datenbank:
Datenbankbegriffe
Im Folgenden sollen einige wichtige Begriffe im Zusammenhang mit Datenbanken
erklärt werden. Dabei steht im Vordergrund, dass Sie lernen, die verschiedenen Programme oder Programmteile zu unterscheiden, die an einem Datenbankprogramm
beteiligt sind.
Datenbank, DBMS, Datenbankanwendung
Bislang haben wir nur den Begriff »Datenbank« verwendet. Es gibt aber für computergestützte Datenbanken einige Unterscheidungen, die Sie nun kennenlernen werden.
Max.
Linie
Der Begriff Datenbank kann so verwendet werden, wie wir es bislang getan haben:
als Bezeichnung für das Programm und als Bezeichnung für die Datensammlung.
Datenbankbegriffe | 11
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 12 Dienstag, 11. November 2008 1:04 13
Links
Streng genommen bezeichnet der Begriff Datenbank eine Sammlung von Daten, die
zusammengehören. Weniger streng gesehen, kann die Datenbank auch die auf
einem Computer gespeicherten Daten oder die Dateien bezeichnen, in denen sie
gespeichert sind.
• MySQL, ein Datenbankserver für das Netzwerk. MySQL ist laut Wikipedia der
am häufigsten verwendete Datenbankserver im Internet.
• HSQLDB, ein DBMS, das sowohl als Server als auch in Programme eingebettet
verwendet werden kann. OpenOffice.org Base verwendet HSQLDB als DBMS,
wenn die Daten in der OpenOffice.org-Base-Datei selbst gespeichert werden
und nicht in anderen Dateien oder auf einem Server. Wir sprechen dann auch
von der internen Datenbank von Base.
• Oracle, ein DBMS für Unternehmen, das große Datenmengen und viele Benutzer verwalten kann.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Das Programm, das diese Datenbank verwaltet, wird als DBMS bezeichnet. Diese
Abkürzung steht für Database Management System – Datenbank-Management-System. Dieses Programm führt die korrekte Speicherung der Daten durch. Es koordiniert die Datenmanipulation und stellt die grundlegenden Werkzeuge für die
Bearbeitung und Auswertung der Daten zur Verfügung. Es regelt zum Beispiel
gleichzeitige Zugriffe verschiedener Benutzer auf Daten, überwacht die Konsistenz
der Daten und liest die Daten bei einer Abfrage aus der Datenbank aus. Bei Datenbanken, die im Netzwerk als Server von vielen Anwendern benutzt werden, stellt
das DBMS in der Regel auch eine Benutzerverwaltung zur Verfügung, mit der die
Rechte einzelner Benutzer festgelegt werden können. Ein paar Beispiele für Datenbank-Management-Systeme sind:
Als Datenbankanwendung kann jedes Programm bezeichnet werden, das eine
Datenbank verwendet. Das können Programme sein, die speziell für das Bearbeiten
und Auswerten von Daten gedacht sind, die in einer Datenbank gespeichert sind. Es
können aber auch Programme so genannt werden, die eine Datenbank verwenden,
um die Daten, die sie verarbeiten, zu verwalten, auch wenn der Benutzer gar nicht
erkennen kann, dass im Hintergrund eine Datenbank verwendet wird. Die Schnittstelle, über die der menschliche Anwender auf die Daten einer Datenbank zugreift,
ist in der Regel eine Datenbankanwendung. Der Zugriff auf die Daten durch diese
Programme erfolgt in der Regel über ein DBMS. Beispiele für Datenbankanwendungen sind:
• OpenOffice.org Base
• Nahezu alle Online-Shops im Internet
Max.
Linie
Das DBMS stellt in der Reihe »Datenbank – DBMS – Datenbankanwendung«
gewissermaßen den Angelpunkt dar. Das DBMS sorgt für die Speicherung der
Daten und stellt die Schnittstelle dar, über die Datenbankanwendungen mit den
Daten arbeiten können.
12 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 13 Dienstag, 11. November 2008 1:04 13
Rechts
Frontend und Backend
Das Frontend ist der Teil einer Anwendung, der dem Menschen Zugriff auf die
Daten oder die Strukturen einer Datenbank erlaubt – in der Sprache des vorigen
Abschnitts also die Datenbankanwendung. Mit dem Frontend arbeitet in der Regel
der Anwender eines Programms. Das Backend ist der Teil, den der Anwender nicht
sieht und der sich im Hintergrund um die Prozesse auf dem Computer kümmert,
die nötig sind, um Daten zu speichern und zu verändern – im Falle einer Datenbankanwendung also das DBMS. Sofern Sie die interne Datenbank von OpenOffice.org Base verwenden, ist HSQLDB das Backend, das allerdings in das Programm
OpenOffice.org Base integriert ist.
Je nach der Rolle, die jemand im Zusammenhang mit der Datenverarbeitung einnimmt, kann es verschiedene Frontends für dasselbe Backend geben. So arbeitet ein
Datenbankadministrator wahrscheinlich mit einem anderen Frontend als jemand,
der Daten in die Datenbank eingibt, oder jemand, der die Daten für eine Präsentation auswertet. Ein Frontend kann auch für verschiedene Rollen einheitlich sein.
OpenOffice.org Base soll ein Frontend sein, das für möglichst viele Rollen geeignet
ist. Mit OpenOffice.org Base können Sie sowohl Datenbanken entwerfen als auch
Daten bearbeiten. In eingeschränktem Umfang ist es sogar für die Administration
von Backends auf Servern geeignet.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Im Zusammenhang mit Datenbanken tauchen auch die Begriffe Frontend und
Backend auf. Diese Begriffe bezeichnen die verschiedenen Seiten einer Datenbankanwendung und des DBMS, das die Datenbankanwendung verwendet. OpenOffice.org Base ist ein Datenbankfrontend.
Umgekehrt kann ein Frontend auch auf verschiedene Backends zugreifen. Dies ist
der Ansatz, den OpenOffice.org Base verfolgt. Das Ziel ist, eine möglichst einheitliche Oberfläche und Arbeitsweise zu erreichen, unabhängig davon, welches
Backend im Endeffekt die Datenverwaltung und -speicherung übernimmt. Sie können mit OpenOffice.org Base statt der internen Datenbank HSQLDB zum Beispiel
auch MySQL als Backend verwenden.
Damit es möglich ist, mit einem Frontend verschiedene Backends zu benutzen oder
auf ein Backend mit verschiedenen Frontends zuzugreifen, ist eine Abstraktion
nötig. Erreicht wird diese Abstraktion durch eine weitgehend vereinheitlichte
Schnittstelle zwischen DBMS und Datenbankanwendung. Zur Kommunikation an
dieser Schnittstelle wird die Datenbanksprache SQL (Structured Query Language)
verwendet. SQL ist eine Sprache zur Datendefinition, Datenabfrage und Datenmanipulation. Sie wird von den meisten DBMS verstanden.
Max.
Linie
Max.
Linie
Datenbankbegriffe | 13
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Kapitel02.fm Seite 14 Dienstag, 11. November 2008 1:04 13
Links
SQL
SQL orientiert sich an der englischen Alltagssprache. Typische SQL-Anweisungen
sehen zum Beispiel so aus:
SELECT NAME FROM ADRESSEN;
INSERT INTO ADRESSEN (NAME) VALUES ('Michael');
Der erste Befehl fragt die Daten der Spalte »NAME« in der Tabelle »ADRESSEN«
ab. Der zweite Befehl trägt in genau diese Spalte den Wert »Michael« als neuen
Datensatz ein. In Kapitel 11 werden Sie einige grundlegende SQL-Befehle kennenlernen.
SQL ist im Prinzip standardisiert. Der Standard SQL92 wird von vielen, aber nicht
von allen DBMS erfüllt. Außerdem hat nahezu jedes DBMS SQL-Befehle, die nicht
standardisiert sind. Es gibt also eine Reihe von Dialekten. Und es gibt Datenbanken, die den Standard nur teilweise erfüllen. Ein Beispiel dafür war lange MySQL,
das die Politik verfolgte, den Standard lieber nach und nach zu implementieren,
dafür aber in dem, was es unterstützt, stabil und schnell zu sein.
Diese unvollständige Verbreitung des Standards führt dazu, dass die Abstraktion
vom Backend in OpenOffice.org Base nicht vollständig sein kann. Es wird immer
Backends geben, mit denen nicht die volle Funktionalität genutzt werden kann, die
OpenOffice.org Base bietet. Andererseits wird kontinuierlich daran gearbeitet, dass
OpenOffice.org Base mit immer mehr DBMS zusammenarbeiten kann.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Die Wurzeln der Datenbankabfragesprache SQL liegen in den 70er-Jahren des 20.
Jahrhunderts. Mit dieser Sprache wird dem DBMS mitgeteilt, welche Daten aus
einer Datenbank gesucht werden sollen oder wie Daten in der Datenbank manipuliert werden sollen.
Der Aufbau von OpenOffice.org Base
OpenOffice.org Base dient als Frontend für Datenbanken. Es kann sich mit verschiedenen DBMS verbinden, und Sie können dort Daten abfragen und bearbeiten.
Eine Datenbank wird in OpenOffice.org Base durch eine Datei mit der Endung .odb
repräsentiert. In dieser Datei steht neben anderen Informationen, die Sie später kennenlernen, welches Backend für diese Datenbank benutzt wird und wie OpenOffice.org Base mit diesem Backend kommuniziert.
Die Standardeinstellung ist in OpenOffice.org Base die Benutzung des integrierten
Backends, des HSQLDB DBMS. In diesem Fall werden die Daten der Datenbank
direkt in der .odb-Datei gespeichert. Wenn ein anderes Backend benutzt wird, werden die Daten von dem verwendeten DBMS gespeichert und sind nicht in der .odbDatei vorhanden.
Max.
Linie
Max.
Linie
14 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Kapitel02.fm Seite 15 Dienstag, 11. November 2008 1:04 13
Rechts
Das Ziel von OpenOffice.org Base ist es, eine einheitliche Oberfläche für das Arbeiten mit Datenbanken zur Verfügung zu stellen, unabhängig von der Art des verwendeten DBMS. Unterschiede im Funktionsumfang, der in OpenOffice.org Base zur
Verfügung steht, ergeben sich daraus, welches DBMS als Backend verwendet wird
und welche Fähigkeiten es mitbringt.
Eine Datenbank ist eine Sammlung von Tabellen. Die Daten dieser Tabellen können voneinander unabhängig sein. Die Daten mehrerer Tabellen können aber auch
miteinander verknüpft sein. Wie viele Tabellen eine Datenbank enthalten kann,
hängt vom eingesetzten DBMS ab.
Jede Tabelle ist aus Zeilen und Spalten aufgebaut. Jede Spalte erhält einen Namen.
Die Anzahl der Spalten wird bei der Definition einer Tabelle festgelegt. Wie viele
Spalten eine Tabelle haben kann, ist wieder vom eingesetzten DBMS abhängig.
Grundsätzlich gilt aber: Je mehr Spalten eine Tabelle hat, desto aufwendiger ist ihre
Verwaltung.
Die Anzahl der Zeilen einer Tabelle verändert sich im laufenden Betrieb. Es werden
immer wieder Zeilen gelöscht oder hinzugefügt. Theoretisch ist die Anzahl der
Zeilen unbegrenzt. Praktisch wird sie durch die Möglichkeiten des DBMS begrenzt.
Oft ist die maximale Größe einer Datenbank durch die maximale Größe einer
Datei auf dem verwendeten Betriebssystem begrenzt. Auf 32-Bit-Systemen sind das
4 GByte.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Der Aufbau von Datenbanken
Relationale Datenbanken
Genau genommen gilt die Aussage, dass eine Datenbank aus Tabellen aufgebaut ist,
nur für sogenannte relationale Datenbanken. Die Darstellung von Daten in einer
Tabelle entspricht dem mathematischen Begriff Relation. Der Begriff Relation –
Beziehung stammt ursprünglich aus der Mathematik. Allen Datensätzen einer
Tabelle ist gemeinsam, dass ihre Daten in der gleichen Beziehung zueinander stehen. Jeder Datensatz einer Adresstabelle enthält zum Beispiel Name, Straße, Postleitzahl und Ort. Sie gehören mathematisch gesehen zu einer Relation. Praktisch
heißt das, dass sie in einer Tabelle dargestellt werden können. Es gibt auch andere
Datenbanktypen, zum Beispiel objektorientierte Datenbanken. Da in diesem Buch
aber nur relationale Datenbanken vorkommen, werde ich auch weiter nur von
Datenbanken sprechen, wenn eigentlich relationale Datenbanken gemeint sind.
Max.
Linie
Bislang haben Sie von Spalten und Zeilen einer Tabelle gelesen. Im Zusammenhang
mit Datenbanken haben sich aber andere Begriffe eingebürgert, die Sie nun kennenlernen werden.
Der Aufbau von Datenbanken | 15
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 16 Dienstag, 11. November 2008 1:04 13
Links
Jede Zeile einer Tabelle wird als Datensatz bezeichnet. In jeder Zeile stehen zusammengehörige Daten, die sich aus den Werten in den Feldern zusammensetzen.
Zusammen bilden sie den Datensatz.
Die Begriffe Datensatz und Feld beziehen sich auf die Funktion der Daten in der
Tabelle. Die Begriffe Spalte und Zeile beziehen sich dagegen auf die äußere Gestalt
der Tabelle.
Es ist wichtig, einen Datensatz eindeutig identifizieren zu können. Dafür stellt das
DBMS sogenannte Schlüssel bereit. Die erste Art von Schlüssel ist ein Feld, das in
einer Tabelle für jeden Datensatz einen eindeutigen Wert haben muss. Das DBMS
sorgt dafür, dass in dieses Feld keine doppelten Werte eingetragen werden können.
Der Wert, den ein Datensatz in diesem Feld hat, identifiziert ihn eindeutig. Dieser
Wert kann eine Zahl oder eine Zeichenkette sein. Entscheidend ist, dass ein zweiter
Eintrag mit dem gleichen Wert in der Tabelle nicht mehr möglich ist. Dieses Feld
wird Primärschlüssel genannt. Der Primärschlüssel kann auch aus einer Kombination mehrerer Felder bestehen. In diesem Fall muss diese Kombination für jeden
Datensatz eindeutig sein. OpenOffice.org Base benötigt für jede Tabelle, in der
Daten bearbeitet werden sollen, einen solchen Primärschlüssel.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Der Fachbegriff für eine Tabellenspalte ist Feld. Jedes Feld beschreibt eine Eigenschaft der Daten, die in den Zeilen stehen. Ein Feld enthält gleichartige Daten, zum
Beispiel Datumswerte, Währungsbeträge oder Texte. Deshalb können Feldern in
Tabellen Datentypen zugeordnet werden. Dadurch erkennt das DBMS, was in
Abfragen mit diesen Daten gemacht werden kann, ob sie eine Suche, eine Sortierung oder eine Berechnung zulassen.
Die andere Art von Schlüssel ist der Sekundär- oder Fremdschlüssel. Dieser ist ein
Feld, das Werte enthält, die in einer anderen Tabelle den Primärschlüssel darstellen. Mit dem Sekundärschlüssel wird auf einen Datensatz in einer anderen Tabelle
verwiesen. Damit werden die Datensätze in den beiden Tabellen als zusammengehörig gekennzeichnet. Durch den Sekundärschlüssel können Tabellen miteinander verknüpft werden (siehe Abbildung 2-1).
Datentypen
Wie bereits erwähnt wurde, wird jedem Feld bei der Definition der Tabelle ein
Datentyp zugewiesen. Datentypen geben an, was für eine Art von Daten in dem
jeweiligen Feld stehen soll, ob es Zahlen, Zeichenketten oder andere sein sollen. Die
verschiedenen DBMS stellen Datentypen zur Verfügung, die oft unterschiedliche
Bezeichnungen tragen. Diese Vielzahl lässt sich aber auf fünf Grundtypen reduzieren: Ganzzahlen, Fließkommazahlen, Datums- und Zeitwerte, Zeichenketten und
Binärdaten.
Max.
Linie
Max.
Linie
16 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Kapitel02.fm Seite 17 Dienstag, 11. November 2008 1:04 13
Rechts
)
*
!"
)
*
!"
$$$$%
$$%$$%
!"#
&$'$$%
$$$$%
(
,
- /
Abbildung 2-1: Primär- und Sekundärschlüssel
Ganzzahlen
Der einfachste Datentyp sind ganze Zahlen. Der zulässige Zahlenbereich hängt vom
DBMS ab. Einige DBMS bieten die Auswahl an, ob nur positive oder positive und
negative Zahlen zugelassen sind. Mit Ganzzahlen lassen sich Berechnungen durchführen, nach ihnen kann gesucht und sortiert werden. Außerdem lassen sich
gruppierende Funktionen wie Minimum, Maximum, Summe und Durchschnitt auf
sie anwenden.
Fließkommazahlen
Bei Fließkommazahlen sind die zulässige Größe und Rechengenauigkeit wichtige
Parameter. Die möglichen Werte dieser Parameter hängen vom DBMS und vom
Betriebssystem ab. Auf Fließkommazahlen lassen sich wie bei Ganzzahlen Berechnungen, Suche und Sortierung sowie gruppierende Funktionen durchführen.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
+*
!"
Datum und Zeit
Max.
Linie
Wichtige Formate für viele Bereiche der Datenverarbeitung sind das Datum und die
Zeit. Datenbanken stellen hierfür Datentypen zur Verfügung. Die Bearbeitung von
Datumswerten ist so auf der Ebene des DBMS möglich. So muss nicht jeder Ersteller einer Datenbank selbst festlegen, wie ein Datum einzutragen und zu interpretieren ist. Außerdem ist es durch einen Typ Datum oder Zeit möglich, mit
Zeitwerten Berechnungen und Vergleiche durchzuführen. In der Regel wird das
Datum von der Datenbank im Format 2008-10-30 angezeigt und entgegengenommen. Die Zeit hat das Format 10:30:26. Das Frontend für den Anwender kann dieses Format natürlich umwandeln. OpenOffice.org Base zeigt das Datum in der
regional üblichen Form an, also für Deutschland »30.10.2008«, und nimmt die
Daten auch in dieser Form an. Mit Datums- und Zeitwerten lassen sich Suchen,
Vergleiche, Sortierungen und die gruppierenden Funktionen Minimum und Maximum durchführen.
Der Aufbau von Datenbanken | 17
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 18 Dienstag, 11. November 2008 1:04 13
Links
Zeichenketten
Zeichenkodierung und Unicode
Das Thema Zeichenkodierung wird immer wichtiger. Aus Sicht des Computers sind
Texte, wie alle anderen Daten, nur Folgen von Bytes. Wie diese als für Menschen
lesbare Zeichen interpretiert werden sollen, muss irgendwo festgelegt sein. Zu
Beginn der Computertechnik war das recht einfach. Es waren nur die Kodierungen
für die Zeichen des englischen Alphabets mit Groß- und Kleinschreibung festgelegt.
Inzwischen ist es aber wichtig, Daten in der Sprache des Anwenders zu verwalten.
Im Deutschen haben wir mit den Umlauten und dem »ß« – Groß- und Kleinschreibung mitgerechnet – schon sieben zusätzliche Zeichen, die in Bytes kodiert werden
müssen. Ganz zu schweigen von Sprachen, die andere Alphabete als das lateinische
benutzen.
Als Lösung für dieses Problem wurde das Unicode-System eingeführt. Den Zeichen
vieler Schriften wurden Zahlenwerte zugeordnet. Wie der Computer nun Bytefolgen als Zeichen interpretieren soll, ist in Zeichenkodierungen festgelegt. Vielleicht
sind Ihnen schon Abkürzungen wie ISO-8859-1 begegnet. Das sind Bezeichnungen
für Systeme, mit denen die Zeichenkodierung festgelegt wird. ISO-8859-1 steht
übrigens für die westeuropäische Zeichenkodierung, die in der Regel auch für
Deutsch verwendet wird.
Max.
Linie
Viele DBMS beherrschen inzwischen Unicode, oft aber nur Teilbereiche. Für OpenOffice.org Base bedeutet das Folgendes: Solange Sie mit der internen Datenbank
arbeiten, sollte es keine Probleme geben. OpenOffice.org ist ein Projekt, das stark
auf Internationalisierung ausgelegt ist. Es wird in viele Sprachen übertragen. Folglich wird im Zuge dieser Übertragung in andere Sprachen, was auch Lokalisierung
genannt wird, die interne Datenbank entsprechend angepasst. Probleme kann es
geben, wenn OpenOffice.org Base als Frontend für ein anderes DBMS eingesetzt
wird, zum Beispiel für einen Datenbankserver. Wenn hier die Kodierungen zwischen Server und OpenOffice.org Base nicht übereinstimmen, kann das Ergebnis
unverständlicher Zeichensalat sein. OpenOffice.org Base bietet aber für viele DBMS
die Möglichkeit an, die Zeichenkodierung des Servers anzugeben, so dass die Daten
vor der Anzeige in OpenOffice.org Base richtig übersetzt werden.
18 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Das wichtigste Kommunikationsmedium für Menschen ist das Wort – in der Informationstechnik natürlich als geschriebenes Wort. Daten werden für Menschen erst
sinnvoll, wenn Bezeichnungen damit verbunden werden. Eine Datenbank muss
also Wörter und Texte speichern können. Aus der Sicht des Datenbankprogramms
sind das Zeichenketten. Der englische Fachausdruck dafür heißt String. Logischerweise haben Datenbanken für Zeichenketten einen eigenen Datentyp. Zeichenkettentypen gibt es in vielen Variationen, die sich vor allem in der Länge der
speicherbaren Zeichenketten unterscheiden. Auf Zeichenketten können Suchen,
Vergleiche, Sortierungen und Vergleiche von Teilzeichenketten angewandt werden.
Max.
Linie
Kapitel02.fm Seite 19 Dienstag, 11. November 2008 1:04 13
Rechts
Binärdaten
Dieser Datentyp ist für alle Daten geeignet, auf die keiner der vorher genannten
Typen passt. Oft wird er für Bilder verwendet. Das Frontend, in unserem Fall
OpenOffice.org Base, muss dafür sorgen, dass abgerufene Bilder richtig dargestellt
werden. Werden Binärdaten wie Bilder in der Datenbank gespeichert, bedeutet das,
dass die Datenbank schnell sehr groß werden kann, was unter Umständen die
Geschwindigkeit negativ beeinflusst.
Die Feldgröße
Bei der Definition einer Tabelle muss für viele Datentypen festgelegt werden, wie
lang die einzelnen Werte in den Feldern werden dürfen. Das ist vergleichbar mit
dem Anlegen einer Tabelle auf Papier. Wenn Sie die Linien für die Spalten zeichnen,
müssen Sie festlegen, wie breit diese Spalten werden. Das begrenzt den Platz, den
Sie zur Verfügung haben, um etwas einzutragen. Auch ein DBMS benötigt für seine
Speicherverwaltung eine Angabe, wie viel Platz die Daten belegen dürfen. Auf
einem Blatt Papier können Sie noch etwas variieren, indem Sie kleiner oder größer
schreiben oder zwei Zeilen benutzen. Das geht bei einem DBMS natürlich nicht.
Die Angabe der Länge begrenzt die mögliche Datengröße absolut. Grundsätzlich
gibt es zwei Möglichkeiten, die Länge zu definieren:
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Der letzte Datentyp, den die meisten DBMS zur Verfügung stellen, sind Binärdaten.
Natürlich sind alle Daten, die der Computer speichert, letztlich binär, also Folgen
von Nullen und Einsen. Für das DBMS bedeutet dieser Datentyp, dass die Daten
gespeichert und herausgegeben werden, ohne sie in irgendeiner Form zu interpretieren. Wie die Daten behandelt werden, ist dann ausschließlich Sache des Frontends.
Das bedeutet auch, dass das DBMS für diese Daten keine Such- oder anderen Operationen durchführt.
1. Die Länge wird absolut festgelegt.
2. Die angegebene Länge stellt eine Höchstgrenze dar.
Im ersten Fall belegt die Datenbank immer die festgelegte Menge an Speicherplatz,
auch wenn die aktuellen Daten kürzer sind. Ist die Länge einer Zeichenkette auf 20
festgelegt, wird der Speicherplatz für 20 Buchstaben belegt, auch wenn nur
»Michael« eingetragen ist. Diese Längendefinition sollten Sie nur für Daten verwenden, die immer die gleiche Länge haben, zum Beispiel für ein Feld, in das Sie nur die
Postleitzahlen eines Landes – für Deutschland fünf Zeichen, für Österreich und die
Schweiz vier Zeichen – eintragen.
Max.
Linie
Im zweiten Fall stellt der angegebene Wert eine Höchstgrenze für die Datengröße
dar. Das DBMS belegt nur den Speicherplatz, der für die angelegten Daten nötig ist.
Daten, die größer sind als die Höchstgrenze, werden abgeschnitten oder abgelehnt.
Der Aufbau von Datenbanken | 19
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 20 Dienstag, 11. November 2008 1:04 13
Links
Geschichtlich gesehen ist die absolute Festlegung der Datengröße die ältere Form.
Sie macht die Speicherverwaltung für das DBMS einfacher und möglicherweise
schneller. In der Praxis werden Sie aber überwiegend die variable Festlegung der
Datengröße verwenden.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Einige Datentypen implizieren bereits eine Länge, so dass sie nicht extra angegeben
wird. In SQL-Befehlen wird die Länge in Klammern hinter der Typbezeichnung
angegeben. In OpenOffice.org Base steht Ihnen dafür eine grafische Oberfläche zur
Verfügung (siehe Abbildung 2-2).
Abbildung 2-2: OpenOffice.org-Oberfläche zur Vergabe von Datentypen
Variationen von Datentypen
Obwohl es nur fünf Grunddatentypen gibt, haben die verschiedenen DBMS eine
Vielzahl von Bezeichnungen dafür. Viele davon werden Sie auch in OpenOffice.org
Base wiederfinden. In Tabelle 2-1 werden die wichtigsten Datentypen benannt und
kurz erläutert.
Max.
Linie
Max.
Linie
20 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Kapitel02.fm Seite 21 Dienstag, 11. November 2008 1:04 13
Rechts
Tabelle 2-1: Die verbreitetsten Datenypen
Erläuterung
INTEGER
Ganzzahl
BOOLEAN
Wahr oder Falsch. Das ist im Endeffekt eine Ganzzahl, denn das Feld kann nur die Werte 0 und 1
annehmen.
FLOAT
Fließkommazahl
CHAR
Zeichenkette (char ist die Abkürzung für character – Schriftzeichen) mit fester Länge
VARCHAR
Zeichenkette mit variabler Länge
DATE
Datumswert
TIME
Zeitwert
TIMESTAMP
Zeitstempel, ein Zeitwert mit Datum und Uhrzeit
BINARY
Binärdaten, gegebenenfalls von fester Länge
VARBINARY
Binärdaten mit variabler Länge
BLOB
Binärdaten, die Abkürzung steht für Binary Large Object
Nullwerte
Wenn in einem Feld eines Datensatzes keine Daten eingetragen sind, spricht man
von einem Nullwert. Manche Datenbankfrontends zeigen in diesem Fall ausdrücklich NULL an. Das zeigt an, dass nichts eingetragen wurde, auch keine leere Zeichenkette. OpenOffice.org Base lässt die Zelle bei einem Nullwert leer.
In vielen Fällen ist es erforderlich, dass jeder Datensatz in einem bestimmten Feld
einen Wert enthält. Das gilt besonders für Felder, die als Schlüssel verwendet werden. Bei der Definition der Tabelle kann festgelegt werden, ob für ein Feld Nullwerte zulässig sind. Wenn versucht wird, einen Datensatz anzulegen, in dem ein
Feld, für das Nullwerte nicht zugelassen sind, leer ist, lehnt das DBMS die Eintragung des Datensatzes ab.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Datentyp
Automatische Werte
Bei den meisten DBMS besteht die Möglichkeit, Werte automatisch erzeugen zu
lassen. Die Festlegung solcher automatischer Werte für ein Feld geschieht ebenfalls
bei der Tabellendefinition. Der automatische Wert für ein so definiertes Feld wird
erzeugt, wenn Sie beim Anlegen eines Datensatzes für dieses Feld keinen Wert
angeben. Es entsteht kein Nullwert.
Es gibt drei Arten von automatischen Werten:
Max.
Linie
Konstanter Standardwert – Defaultwert
Standard- oder Defaultwerte werden vom DBMS angelegt, wenn kein Wert für
dieses Feld angegeben wurde. Dieser Wert ist konstant und kehrt in allen
Datensätzen wieder, in denen das Feld unspezifiziert blieb. Ein Standardwert
kann in allen Datentypen definiert werden.
Der Aufbau von Datenbanken | 21
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 22 Dienstag, 11. November 2008 1:04 13
Links
Unter den automatischen Werten spielt der automatische Zähler eine
besondere Rolle. Autoinkrement-Werte sind enorm wichtig für die
automatische Erzeugung von eindeutigen Schlüsseln beim Anlegen
eines Datensatzes. Wenn Sie so ein Feld als Schlüsselfeld verwenden,
achten Sie darauf, die Länge der Ganzzahl bei der Definition ausreichend groß zu wählen, damit Ihnen nicht irgendwann die Indizes
ausgehen.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Automatischer Zähler – AUTO INCREMENT
Autoinkrement-Werte sind ganzzahlige Werte, die beim Anlegen eines neuen
Datensatzes automatisch hochgezählt werden. Das gilt auch hier nur, wenn
nicht beim Anlegen des Datensatzes ein Wert festgelegt wurde. In der Regel
lässt sich bei der Tabellendefinition auch ein Startwert und eine Schrittweite für
das Hochzählen angeben. Aus der Art dieses automatischen Wertes folgt, dass
er nur auf Ganzzahlen anwendbar ist.
Funktionsergebnisse
Das DBMS kann bestimmte Werte automatisch erzeugen. Ein besonders wichtiges Beispiel dafür ist das aktuelle Datum. Auch Funktionsergebnisse werden
automatisch erstellt, wenn beim Anlegen des Datensatzes kein Wert für das
Feld angegeben wurde. Es wird dann das Datum, die Uhrzeit oder beide Werte
von dem Zeitpunkt eingetragen, als der Datensatz angelegt wurde – abhängig
davon, ob der Datentyp DATE, TIME oder TIMESTAMP ist. Das interne DBMS von
OpenOffice.org Base stellt dafür die Funktionen CURRENT_DATE, CURRENT_TIME
und CURRENT_TIMESTAMP zur Verfügung. Sie finden eine Übersicht über diese und
weitere Funktionen mit Erläuterungen in Anhang A.
Auswertungen
Daten werden in einer Datenbank nicht zum Selbstzweck gespeichert. Sie sollen zur
Auswertung und Bearbeitung zur Verfügung stehen. Dazu braucht man Werkzeuge, um die Datenbank zu durchsuchen. Diese Werkzeuge stellen DBMS zur Verfügung. Die wichtigsten sind Abfragen und Ansichten.
Abfragen
Abfragen dienen dazu, Daten aus Tabellen auszuwählen und auszugeben. Das
Ergebnis einer Abfrage ist wiederum eine Tabelle. Mit Abfragen können Sie:
•
•
•
•
Max.
Linie
komplette Tabellen anzeigen lassen,
eine Auswahl von Datensätzen nach von Ihnen definierten Suchkriterien erstellen,
eine Auswahl von Spalten einer oder mehrerer Tabellen ausgeben sowie
die Daten mehrerer Tabellen miteinander verknüpfen und das Ergebnis in
einer Tabelle ausgeben.
Diese Fähigkeiten können auch in einer Abfrage kombiniert werden.
22 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 23 Dienstag, 11. November 2008 1:04 13
Rechts
Der Ablauf einer Abfrage an eine Datenbank sieht typischerweise so aus:
1. Die Abfrage wird in SQL formuliert.
2. Die Abfrage wird an das DBMS geschickt.
3. Das DBMS gibt das Ergebnis der Abfrage an das Frontend zurück.
In OpenOffice.org Base müssen Sie die Abfrage nicht selbst in SQL formulieren. Es
steht ein grafisches Werkzeug für das Erstellen einer Abfrage zur Verfügung. Die
Umsetzung in einen SQL-Befehl übernimmt OpenOffice.org Base. Eine Abfrage
stellt eine Momentaufnahme der abgefragten Daten dar. Die Abfrage arbeitet mit
den Daten der Datenbank; sie enthält keine eigenen Daten. Das Abfrageergebnis
wird auch nicht gespeichert. In OpenOffice.org Base können Sie Abfragen speichern. Dabei wird aber nur die Formulierung der Abfrage gespeichert, nicht das
Ergebnis. Sie können auf diese Weise eine einmal erstellte Abfrage immer wieder
auf die aktuellen Daten in der Datenbank ausführen.
Ansichten (Views)
Ein anderes Instrument für Datenauswertungen sind Ansichten. Auch dabei handelt
es sich um Auswahlen von Spalten und Datensätzen aus Tabellen. In OpenOffice.org
Base erstellen Sie sie genau so wie Abfragen. Der Unterschied ist, dass Ansichten vom
DBMS gespeichert und verwaltet werden. Dabei enthalten sie auch keine eigenen
Daten. Ansichten werden, sind sie einmal erstellt, vom DBMS wie normale Tabellen
behandelt. Ansichten können so auch die Quelle für Abfragen werden.
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
4. Die Daten können durch das Frontend angezeigt oder weiterbearbeitet werden.
Ob Sie Abfragen oder Ansichten verwenden, hängt von Ihren Zielen ab. Wenn Sie
eine Auswahl aus einer Tabelle häufig brauchen, sollten Sie eine Ansicht wählen.
Wenn Sie eine punktuelle Auswertung machen, sollten Sie eine Abfrage wählen und
nicht das DBMS mit der permanenten Verwaltung der Ansicht belasten. Weil
Ansichten vom DBMS verwaltet werden, kann es sein, dass Sie Daten aus einer
Ansicht schneller erhalten als aus einer komplexen Abfrage.
Ansichten sind ein sinnvolles Instrument zur Datenauswertung. Allerdings unterstützen nicht alle DBMS Ansichten. Das trifft zum Beispiel auf MySQL bis einschließlich Version 4.x zu. Wenn Sie ein solches DBMS als Backend wählen,
können Sie keine Ansichten für diese Datenbank erstellen.
Beziehungen zwischen Daten
Max.
Linie
Daten stehen zueinander in Beziehung, sonst sind sie für Menschen sinnlos. Eine
Adresse ist erst eine Adresse, wenn zu einem Namen noch die Anschrift (also
Straße, Hausnummer und Ort mit Postleitzahl) hinzukommt. Eine Warenbestellung benötigt neben der Liste der bestellten Waren auch den Namen und die
Anschrift des Bestellers.
Der Aufbau von Datenbanken | 23
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 24 Dienstag, 11. November 2008 1:04 13
Links
Grundsätzlich gibt es drei Arten von Beziehungen von Daten zueinander. Diese
Beziehungen werden mit 1 : 1 (sprich: eins zu eins), 1 : n (sprich: eins zu n) und
n : n (sprich: n zu n) bezeichnet. Diese Bezeichnungen werden Sie auch in OpenOffice.org Base wiederfinden. Für die Erläuterungen werde ich als Beispiel die
Bestellungen an eine Firma verwenden und die Realität etwas vereinfachen.
Ein Kunde hat eine Adresse. Komplexere Fälle lassen wir aus Gründen der Übersichtlichkeit außer Acht. Das bedeutet, dass die Zuordnung von Name, Straße und
Ort eindeutig ist. Diese Beziehung nennt man 1 : 1. Daten, die in dieser Beziehung
zueinander stehen, können zusammen in einem Datensatz, also in einer Tabelle,
stehen.
1 : n-Beziehung
Jeder Kunde kann eine Reihe von Bestellungen aufgeben. Der Kunde und die Bestellungen stehen in der Beziehung eins zu viele, also 1 : n. Diese Bestellungen in einer
Tabelle mit den Adressdaten zu halten, würde zu Doppelungen führen. Die Adresse
des Kunden müsste bei jeder Bestellung wieder vollständig und immer identisch
eingetragen werden – eine permanente Fehlerquelle.
Eine Lösung für dieses Problem wäre, für jeden Kunden eine Tabelle mit seinen
Bestellungen anzulegen. Mit wenigen Kunden wäre das in einer Tabellenkalkulation
vielleicht möglich. Auf Dauer ist diese Lösung aber unökonomisch, da immer wieder
neue Tabellen angelegt werden müssten. In einer Datenbank wird dieses Problem so
gelöst, dass die Daten, die in einer 1 : n-Beziehung auf der n-Seite stehen – in unserem
Fall die Bestellungen –, in einer eigenen Tabelle gehalten werden. Diese Tabelle enthält eine Spalte, die den Wert des Primärschlüssels enthält, der den zugehörigen
Datensatz aus der Tabelle der 1-Seite – den Adressen – identifiziert. In der Bestellungstabelle heißt dieses Feld Sekundärschlüssel (siehe Abbildung 2-3).
)
*
!"
)
*
!"
Max.
Linie
+*
!"
$$$$%
$$%$$%
&$'$$%
!"#
$$$$%
(
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
1 : 1-Beziehung
- Abbildung 2-3: Primär- und Sekundärschlüssel bei einer 1 : n-Beziehung
24 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 25 Dienstag, 11. November 2008 1:04 13
Rechts
Die Daten werden auf diese Weise ökonomisch verwaltet. Die Adressen müssen
nicht wiederholt werden, und alle Bestellungen liegen in einer Tabelle. Durch
Abfragen lassen sich diese Tabellen so miteinander verknüpfen, dass jederzeit eine
aktuelle Abfragetabelle mit den Bestellungen eines Kunden erzeugt werden kann.
Die dritte Beziehung, viele zu viele, n : n, besteht in unserem Beispiel zwischen Waren
und Bestellungen. Jede Bestellung kann eine Reihe von Waren enthalten. Andererseits
wird sich jede angebotene Ware auch in mehreren Bestellungen finden. Eine Lösung
könnte darin bestehen, für jede Ware eine eigene Spalte in der Bestellungstabelle anzulegen. Jede Änderung im Warenangebot würde dann aber eine Änderung an der
Tabellenstruktur erfordern. Das sollte jedoch in einer Datenbank so selten wie möglich geschehen. Außerdem wäre es so nicht möglich, zusätzliche Informationen zur
Ware, wie zum Beispiel den Preis, mit in die Datenbank aufzunehmen.
n : n-Beziehungen sollten in mehrere 1 : n-Beziehungen aufgelöst werden und die
Daten auf mehrere Tabellen verteilt werden. In unserem Beispiel brauchen wir
dafür zuerst eine Tabelle, die die Waren auflistet. Diese Tabelle kann auch weitere
Informationen wie den Preis der Ware enthalten. Für die spätere Zuordnung zu
Bestellungen muss die Tabelle einen Primärschlüssel haben. Das gilt auch für die
Tabelle mit den Bestellungen.
Die Zuordnung von Waren und Bestellungen geschieht dann in einer weiteren
Tabelle. Sie nimmt sowohl für die Waren als auch für die Bestellungen die n-Seite
der Beziehung auf. Die beiden wichtigsten Spalten, die sie enthält, sind Sekundärschlüssel: der Verweis auf die Ware und der Verweis auf die Bestellung. Natürlich
sollte auch die Anzahl der bestellten Waren darin stehen. Für OpenOffice.org Base
benötigt die Tabelle auch noch einen Primärschlüssel, zum Beispiel einen automatischen Zähler. Das Ganze sieht dann so aus wie in Abbildung 2-4.
()
!%
*+
#()
"
#
()
*+
#()
()
$
"
#
&
"''
%
!
$
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
n : n- Beziehung
$
Max.
Linie
, , Abbildung 2-4: Auflösung einer n : n-Beziehung in zwei 1 : n-Beziehungen
Der Aufbau von Datenbanken | 25
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Kapitel02.fm Seite 26 Dienstag, 11. November 2008 1:04 13
Links
Aus den so aufgeteilten Daten lassen sich durch Abfragen die Daten so zusammenstellen, dass sich daraus leicht ein Lieferschein oder eine Rechnung erstellen lässt.
Max.
Linie
Dies ist ein Auszug aus dem Buch "OpenOffice.org 3", ISBN 978-3-89721-871-0
http://www.oreilly.de/catalog/openoffice3ger/
Dieser Auszug unterliegt dem Urheberrecht. © O’Reilly Verlag 2009
Die Aufteilung von Daten auf verschiedene Tabellen nach ihren Beziehungen nennt
man Normalisierung. Normalisierung vereinheitlicht die Datenhaltung und verringert Fehlerquellen, die durch doppelte Datenspeicherung entstehen. Dieser Vorgang erschwert dem Menschen aber zunächst die Bearbeitung der Daten. Es ist
kaum möglich, beim Anlegen einer Bestellung immer wieder die Schlüsselwerte für
Namen und Waren nachzusehen. Für die Bearbeitung normalisierter Datenbanken
müssen deshalb geeignete Masken erstellt werden. In OpenOffice.org Base können
Sie dazu Formulare verwenden. Wie Sie geeignete Masken erstellen, werden Sie in
den Kapiteln 8 und 12 erfahren.
Max.
Linie
26 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.