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.