Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe

Werbung
First
KAPITEL 2
In diesem Kapitel:
• Wozu Datenbanken?
• Tabellen
• Datenbankbegriffe
• Der Aufbau von Datenbanken
Hier Mini IVZ eingeben!
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 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.
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 © 2006 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Links
Auch die so genannten 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.
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 in einem Office-Paket
ermöglicht.
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.
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 in der Regel einen Titel, einen Verlag, eine ISBN. Diese Elemente lassen sich gut in einer Spalte 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 anderen Daten des Buches für jeden Autor wieder aufgelistet werden. Für solche Beziehungen müssen jeweils weitere Tabellen angelegt werden.
Max.
Linie
Die Datenbanken, mit denen wir es bei OpenOffice.org Base zu tun haben, stellen
aber Strukturen und Werkzeuge zur Verfügung, mit denen dieser Nachteil 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ön-
8 |
Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
nen 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.
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 2.0 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 des Betriebssystems begrenzt.
• 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.
• 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.
• 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
Max.
Linie
1
Auch in Tabellenkalkulationen können Sie Beziehungen aufbauen. Diese Beziehungen sind aber immer
Beziehungen zwischen Zellen oder Zellbereichen, oft verbunden mit Berechnungen.
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Tabellen | 9
Max.
Linie
Links
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.
Wann sollten Sie 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.
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:
• 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.
Bearbeitung von Daten bedeutet:
• Hinzufügen von Daten
Max.
Linie
• Löschen von Daten
• Ändern von Daten
10 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
Die Daten, die in einer Datenbank gespeichert sind, können in verschiedenen Kontexten verwendet werden. Erreicht wird das durch folgenden Aufbau der Datenbank:
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 dargestellt werden, zum Beispiel am Bildschirm oder als Ausdruck. 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.
Datenbankbegriffe
Im Folgenden sollen einige wichtige Begriffe im Zusammenhang mit Datenbanken
erklärt werden. Dabei steht im Vordergrund, die verschiedenen Programme oder
Programmteile, die an einem Datenbankprogramm beteiligt sind, zu unterscheiden.
Datenbank, DBMS, Datenbankanwendung
Bislang haben wir nur den Begriff »Datenbank« verwendet. Es gibt aber für computergestützte Datenbanken einige Unterscheidungen, die Sie nun kennen lernen.
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. Streng
genommen bezeichnet Datenbank eine Sammlung von Daten, die zusammengehören. Weniger streng gesehen, kann die Datenbank auch die auf einem Computer
gespeicherten Daten oder die Dateien, in denen sie gespeichert sind, bezeichnen.
Max.
Linie
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
Datenbankbegriffe | 11
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Links
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 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-ManagementSysteme sind:
• MySQL, ein Datenbankserver für das Netzwerk, 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
für die interne Datenbank.
• Oracle, ein DBMS für Unternehmen, das große Datenmengen und viele Benutzer verwalten kann.
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 Onlineshops im Internet
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.
Frontend und Backend
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.
Max.
Linie
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
12 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
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.
Umgekehrt kann ein Frontend auch auf verschiedene Backends zugreifen. Dies ist
der Weg, 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.
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 kennen lernen, welches Backend für diese Datenbank benutzt wird und wie OpenOffice.org Base mit diesem Backend kommuniziert.
Max.
Linie
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.
Datenbankbegriffe | 13
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Links
SQL
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.
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 trägt in genau diese Spalte den Wert »Michael« als neuen Datensatz
ein. In Kapitel 11 werden Sie einige grundlegende SQL-Befehle kennen lernen.
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 ist MySQL, das die
Politik verfolgt, 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, die OpenOffice.org Base
bietet, genutzt werden kann. Andererseits wird kontinuierlich daran gearbeitet,
dass OpenOffice.org Base mit immer mehr DBMS zusammenarbeiten kann.
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.
Der Aufbau von Datenbanken
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.
Max.
Linie
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 aufwändiger ist ihre Verwaltung.
14 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
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 den zurzeit am meisten verbreiteten 32-Bit-Systemen sind das 4 GByte.
Relationale Datenbanken
Genau genommen gilt die Aussage, dass eine Datenbank aus Tabellen aufgebaut ist,
nur für so genannte 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.
Bislang haben Sie von Spalten und Zeilen einer Tabelle gelesen. Im Zusammenhang
mit Datenbanken haben sich aber andere Begriffe eingebürgert, die Sie nun kennen
lernen werden.
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.
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.
Max.
Linie
Es ist wichtig, einen Datensatz eindeutig identifizieren zu können. Dafür stellt das
DBMS so genannte 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
Der Aufbau von Datenbanken
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
| 15
Max.
Linie
Links
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.
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 und werden die Datensätze in den beiden Tabellen damit als zusammengehörig gekennzeichnet. Durch den Sekundärschlüssel können Tabellen miteinander verknüpft werden (vgl. dazu Abbildung 2-1).
Primärschlüssel
Primärschlüssel
Sekundärschlüssel
ID
Name
Vorname
Ort
Best.-Nr.
Datum
Kunde
1
Meier
Hans
Kiel
1
20.03.2005
2
2
Meier
Otto
Köln
2
04.05.2005
2
3
Müller
Otto
Hamburg
3
28.06.2005
3
4
Schulz
Hans
Kiel
4
10.10.2005
1
Adressen
Bestellungen
verweist auf
Abbildung 2-1: Primär- und Sekundärschlüssel
Datentypen
Wie bereits erwähnt, 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.
Ganzzahlen
Max.
Linie
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.
16 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
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.
Datum und Zeit
Ein wichtiges Format 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 2005-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.2005«, 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.
Zeichenketten
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.
Binärdaten
Max.
Linie
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.
Der Aufbau von Datenbanken
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
| 17
Max.
Linie
Links
Zeichenkodierung und Unicode
Immer wichtiger wird das Thema Zeichenkodierung. 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 Kodierungen, 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.
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 Lokalisierung auch 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.
Dieser Datentyp ist für alle Daten geeignet, die nicht in einen der vorher genannten
Typen passen. 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.
Max.
Linie
Max.
Linie
18 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Rechts
Die Feldgröße
Bei der Definition einer Tabelle muss bei vielen 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 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:
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.
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.
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.
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 (vgl. dazu Abbildung 2-2).
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 der Tabelle 2-1 werden die wichtigsten benannt und kurz
erläutert.
Max.
Linie
Max.
Linie
Der Aufbau von Datenbanken
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
| 19
Links
Abbildung 2-2: OpenOffice.org-Oberfläche zur Vergabe von Datentypen
Tabelle 2-1: Die verbreitetsten Datenypen
Datentyp
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 als 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
Max.
Linie
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.
20 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
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.
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.
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.
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.
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, als der Datensatz angelegt wurde, eingetragen, 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.
Der Aufbau von Datenbanken
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
| 21
Max.
Linie
Links
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:
• 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.
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.
4. Die Daten können durch das Frontend angezeigt oder weiterbearbeitet werden.
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)
Max.
Linie
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.
22 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
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
Daten stehen zueinander in Beziehung, sonst sind sie für Menschen sinnlos. Eine
Adresse ist erst eine Adresse, wenn zu einem Namen noch Straße, Hausnummer
und Ort hinzukommen. Eine Warenbestellung benötigt neben der Liste der bestellten Waren auch den Namen und die Adresse des Bestellers.
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.
1 : 1-Beziehung
Ein Kunde hat in der Regel eine Adresse. Das bedeutet, dass die Zuordnung von
Name, Straße, Ort und Telefonnummer eindeutig ist. Diese Beziehung nennt man
1 : 1. Daten, die in dieser Beziehung zueinander stehen, können 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.
Max.
Linie
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
Der Aufbau von Datenbanken
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
| 23
Max.
Linie
Links
– 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 (vgl. dazu Abbildung 2-3).
Primärschlüssel
Primärschlüssel
Sekundärschlüssel
ID
Name
Vorname
Ort
Best.-Nr.
Datum
Kunde
1
Meier
Hans
Kiel
1
20.03.2005
2
2
Meier
Otto
Köln
2
04.05.2005
2
3
Müller
Otto
Hamburg
3
28.06.2005
3
4
Schulz
Hans
Kiel
4
10.10.2005
1
Adressen
Bestellungen
1:n
Abbildung 2-3: Primär- und Sekundärschlüssel bei einer 1 : n-Beziehung
Die Daten werden so ö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.
n : n- Beziehung
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 sein, 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
Bestellungstabelle.
Max.
Linie
Max.
Linie
24 | Kapitel 2: Datenbanken, Ziele und Möglichkeiten, zentrale Begriffe
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Rechts
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:
Primärschlüssel
Primärschlüssel
Sekundärschlüssel
Primärschlüssel
Best.-Nr.
Datum
Kunde
1
20.03.2005
2
2
04.05.2005
2
3
28.06.2005
3
4
10.10.2005
1
Bestellungen
ID
Bestellung
Sekundärschlüssel
Ware
1
1
2
2
1
3
3
2
4
4
3
1
5
4
1
6
4
3
ID
Bezeichnung
Preis
1
Darjeeling Tee
4,50
2
Assam Tee
3,80
3
Kandis
3,00
4
Vanille Kaffee
5,00
Ware
Bestellungen Ware
1:n
n:1
Abbildung 2-4: Auflösung einer n : n-Beziehung in zwei 1 : n-Beziehungen
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.
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
Max.
Linie
Der Aufbau von Datenbanken
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
| 25
Vakat
Herunterladen