Zum Verständnis von Datenbanken

Eine Datenbank ist eine Ansammlung strukturierter Informationen in digitaler Form, die für einen einfacheren Zugriff organisiert wurden. Mit Hilfe einer Datenbank können Sie jede beliebige Art von digitalen Informationen (Zahlen, Text, Bilder, Sounds und Videos usw.) speichern.

Mit einer Datenbank wird die Suche nach spezifischen Informationen erheblich erleichtert; dies geschieht durch Organisation des Inhalts in Spalten und Zeilen (bzw. Feldern und Datensätzen). Eine Spalte bzw. ein Feld ist ein Bereich, der bestimmten Informationen oder sogar einem spezifischen Typ Daten vorbehalten ist. Eine Zeile ist eine Gruppe von Feldern, die einen Datensatz bildet, der verschiedene zusammengehörige Informationen enthält.

Zeilen und Spalten

Wenn Sie z. B. eine Datenbank mit Namen und Adressen erstellen wollen, werden Sie wahrscheinlich eine Spalte für den Vornamen, eine weitere Spalte für den Nachnamen, eine dritte Spalte für die Telefonnummer, eine vierte Spalte für die Postleitzahl usw. erstellen. Für jede Person in der Datenbank erstellen Sie eine Zeile, und jede Spalte dieser Zeile enthält die entsprechende Information zu der betreffenden Person.

Warum Informationen so organisieren?

Weil auf diese Weise die Datenbank-Software diese Informationen schneller und einfacher verarbeiten kann. Hier sind nur einige Vorteile einer Datenorganisation in Spalten und Zeilen:

Suchen: Stellte jede Adresse in Ihrer Datenbank für Namen und Adressen eine einzelne, kompakte Informationseinheit dar, wie wären Sie dann in der Lage, eine Gruppe von Adressen, die alle dieselbe Postleitzahl haben, herauszufiltern? Wenn Sie Adressen in separaten Spalten speichern, kann die Datenbank-Software um so vieles einfacher und schneller alle Zeilen anzeigen, in denen die Postleitzahl der von Ihnen gesuchten entspricht.

Sortieren: Da jeder Informationsbestandteil seinen festen Platz in der Datenbank hat, kann mit der Datenbank-Software eine Gruppe von Zeilen ganz einfach nach einem beliebigen Informationstyp sortiert werden. Wurde z. B. für den Vornamen und den Nachnamen jeweils eine separate Spalte erstellt, können die Zeilen ganz zügig sowohl nach Vornamen als auch nach Nachnamen sortiert werden.

Formatieren: Jede Spalte in der Datenbank ist so eingerichtet, daß sie eine bestimmte Information in einem ganz spezifischen Format enthalten kann. Die Spalte für die Postleitzahl wird beispielsweise so definiert, daß sie nur eine fünfstellige Zahl enthalten kann. Wenn Sie versuchen, einen falschen Informationstyp in die Spalte einzugeben, erhalten Sie höchstwahrscheinlich eine Fehlermeldung. Auf diese Weise können Sie eine fehlerhafte Eingabe verhindern oder fehlerhaft eingegebene Informationen (z. B. eine Postleitzahl, bei der eine Ziffer fehlt oder für die ein O anstatt einer Null eingegeben wurde) leicht eruieren.

Hinweis: Verwechseln Sie die „Datenbank“ nicht mit dem „Datenbank-Werkzeug“. Eine Datenbank ist einfach eine sinnvoll organisierte Gruppierung von Daten in einem vordefinierten Format; das Datenbank-Werkzeug dagegen ist die Software, die Sie zum Zugriff auf die Daten benötigen. Sie können die unterschiedlichsten Datenbank-Werkzeuge zum Zugriff und zur Aktualisierung der Daten in einer Datenbank verwenden.

Relationale Datenbank

Eine relationale Datenbank ist eine besondere Art von Datenbank, die dazu konzipiert ist, Speicher einzusparen und Fehleraufkommen zu minimieren, indem die Duplizierung von Daten vermieden wird. Eine solche Datenbank besteht aus einer Anzahl verknüpfter Tabellen, von denen jede einzelne ihren eigenen Satz Spalten und Zeilen enthält.

Zur Illustration, warum die Arbeit mit einer relationalen Datenbank sinnvoll ist, nehmen wir einmal an, Sie wollten eine Datenbank erstellen, in der alle Rechnungen an sämtliche Kunden Ihres Unternehmens gespeichert und verwaltet werden. Sie können dazu eine Datenbank erstellen, die für jede ausgestellte Rechnung eine separate Zeile enthält mit jeweils einer Spalte für die Rechnungsnummer, das Datum, den Rechnungsbetrag sowie den Namen, die Adresse und die Telefonnummer des Kunden.

Solch eine Datenbank dient wahrscheinlich ausreichend Ihren Zwecken. Nach einiger Zeit jedoch werden Sie möglicherweise einige Probleme feststellen:

Speicher: Rechnungsnummern nehmen relativ wenig Speicherplatz in Anspruch, Kundennamen und -adressen dafür umso mehr. Und da Sie wahrscheinlich Kunden haben, die regelmäßig immer wieder bei Ihnen bestellen, haben Sie somit auch zahlreiche Kopien der Namen und Adressen dieser Kunden in der Datenbank; Kopien, die unnötig wertvollen Speicherplatz belegen.
Duplizierung: Was, wenn Sie ein Informationsschreiben an jeden in der Datenbank enthaltenen Kunden schicken wollen? Wenn Sie für jeden Rechnungseintrag in der Datenbank einfach ein Adreßetikett ausdrucken, erhält jeder Kunde, der mehrmals bei Ihnen bestellt hat, auch mehrere Kopien dieses Informationsschreibens.

Genauigkeit: Was, wenn die verantwortliche Person den Namen eines Kunden in einer Zeile falsch und in der nächsten Zeile richtig eingibt? Was, wenn in einem Fall „Straße“ ausgeschrieben und in einem anderen Fall mit „Str.“ abgekürzt wird? Sie speichern auf diese Weise zwei verschiedene Namen bzw. Adressen für denselben Kunden; und das macht es für Sie umso schwieriger doppelte Einträge auszufiltern.

Aktualisierung: Was, wenn einer Ihrer Kunden Ihnen eine Adreßänderung mitteilt? Sie müssen in diesem Fall jedes Vorkommen der entsprechenden Kundenadresse in der Datenbank aktualisieren.

Eine relationale Datenbank löst alle diese Probleme, indem Ihre Rechnungsinformationen in einer Tabelle und Ihre Kundeninformationen in einer anderen Tabelle gespeichert werden. Anstatt sämtliche Kundeninformationen für jede Rechnung immer wieder erneut wiederherzustellen, enthält jede Zeile in der Rechnungstabelle einfach einen kurzen Code, der auf eine bestimmte Zeile in einer Kundentabelle verweist. Da Name und Adresse jedes Kunden nur einmal gespeichert werden, nämlich in der Kundentabelle, brauchen Sie sich über die oben angeführten Probleme nicht den Kopf zu zerbrechen.

Die Tabellen in einer relationalen Datenbank verweisen durch in Spalten gespeicherte Codes, auch Schlüssel genannt, gegenseitig aufeinander. Es gibt zwei Arten von Schlüsseln:

Primärschlüssel: Jede Tabelle verfügt über eine Spalte, die einen spezifischen Wert für jede Zeile in der Tabelle enthält. Diese Spalte wird als Primärschlüssel der Tabelle bezeichnet. Sie können jede beliebige Einzelzeile in einer Tabelle finden, wenn Sie wissen, daß es sich hierbei um den Primärschlüssel handelt; es besteht nur eine Zeile in der Tabelle, für die die Primärschlüssel-Spalte, diesen Wert enthält. In unserem Beispiel könnte die Rechnungsnummer der Primärschlüssel für die Rechnungstabelle sein, da jede Zeile in der Rechnungstabelle eine einmalige bzw. eindeutige Rechnungsnummer hat.

Fremdschlüssel: Verweist eine Zeile in der Tabelle auf einen einzelnen Datensatz in einer anderen Tabelle, z. B. wenn eine Rechnung auf eine Zeile in Ihrer Kundentabelle verweist, wird der Wert des Primärschlüssel der Bezugstabelle verwendet. In der Ausgangstabelle wird der Wert als Fremdschlüssel bezeichnet, da es der Schlüssel für eine Einzelzeile in einer anderen Tabelle ist.

Metadaten

Datenbanken können auch so organisiert werden, daß sie Informationen über die Daten, die sie enthalten, speichern. Sie können z. B. eine Spalte zu Ihrer Datenbank für Namen und Adressen hinzufügen, die anzeigt, wann eine Zeile eingegeben wurde, und eine weitere Spalte hinzufügen, die anzeigt, wann die letzte Bearbeitung stattgefunden hat. Diese Art von Informationen werden als Metadaten, bzw. „Daten über Daten“, bezeichnet.

Stichwörter

Was, wenn Sie eine „Kennzeichnungsspalte“ zu Ihrer Datenbank für Namen und Adressen hinzufügen wollen, damit Sie festhalten können, ob es sich bei einer Person um einen guten Freund, eine Bekanntschaft oder einen Geschäftspartner handelt?

Damit wird Ihre Datenbank um eine andere Art von Informationen erweitert; gewöhnlich wird auf solche Informationen als auf „Stichwörter“ verwiesen. Wenn Ihnen ein Stichwortfeld zur Verfügung steht, bedeutet dies, daß beim Hinzufügen einer Informationszeile zu Ihrer Datenbank Sie aus einer vordefinierten Reihe von Stichwörtern auswählen können, die die Zeile näher beschreiben (z. B. „Freund“, „Bekanntschaft“ oder „Geschäftspartner“). Mit Hilfe eines solchen Stichwortfelds können Sie beispielsweise schnell die entsprechenden Namen und Adressen bestimmter Personen anhand Ihrer Beziehung zu diesen finden und sortieren.

Abfragen

Wenn Sie bestimmte Daten in der Datenbank finden wollen, müssen Sie diese mit Hilfe von Abfragen suchen. Im allgemeinen kann man sagen, daß eine Abfrage (oder „Suche“) eine Anfrage nach allen Daten ist, die einem festgelegten Satz von Kriterien entsprechen.

Eine Abfrage kann auf verschiedene Art und Weise zusammengestellt werden:

Transaktionen

Viele moderne Datenbanken sind heute so konzipiert, daß sie von vielen Benutzern gleichzeitig in zielorientierten Situationen angewandt werden können. In einer Umgebung, in der Genauigkeit oberstes Gebot ist, birgt aber eine solch starke Verwendung potentielle Probleme.

Nehmen wir einmal das Beispiel einer Bank, die sämtliche Informationen aller Konten in einer Datenbank speichert. Ein Benutzer fordert die Überweisung von DM 500 von seinem Girokonto auf sein Sparkonto an. Was geschieht, wenn die Anforderung zum Abzug von DM 500 von dem Girokonto gesendet wird, ein Stromausfall dann aber das Senden der Anforderung zum Erhöhen des Kontostandes auf dem Sparkonto um denselben Betrag verhindert?

Das Konzept der Transaktionen wurde geschaffen, um diese Art von Problemen zu lösen. Zur Lösung des Problems in unserem Beispiel werden beide Anfragen von der Anwendung des Datenbank-Servers in einer einzigen Einheit (einer Transaktion) gruppiert; damit wird sichergestellt, daß beide Anfragen ausgeführt werden oder keine der Anfragen ausgeführt wird. Wird also der Kontostand des Sparkontos aus irgendeinem Grund nicht um DM 500 erhöht, wird die Anforderung zum Verringern des Kontostandes des Girokontos um DM 500 zurückgesetzt bzw. abgebrochen.

Was, wenn zwei Anforderungen zur Abhebung von DM 1000 von einem Konto gleichzeitig eingehen? Beträgt der Kontostand DM 1500, sollte nur eine der beiden Anforderungen ausgeführt werden. Zur Lösung eines solchen Problems wird durch die Software des Datenbank-Servers sichergestellt, daß Transaktionen, bei denen umfangreiche Datenmengen betroffen sind, eine nach dem anderen durchgeführt werden, auch dann, wenn sie gleichzeitig angefordert wurden. In diesem Fall wird eine der beiden Abhebungsanforderungen zurückgesetzt, auch dann, wenn eine vorherige Abfrage ergeben hat, daß der Kontostand ausreichend war, um eine Abhebung zu ermöglichen.

Atomizität: Transaktionen werden ganzheitlich verarbeitet, d. h. alle Anforderungen einer Transaktion werden gemeinsam ausgeführt oder die gesamte Transaktion wird zurückgesetzt.

Konsistenz: Die Datenbank muß sowohl vor als auch nach jeder Transaktion festgelegten Vorgaben zur Richtigkeit entsprechen (so wie z. B. eine Bilanz immer ausgeglichen sein muß).

Isolation: Zwei Transaktionen, die dieselben Daten betreffen, müssen nacheinander ausgeführt werden, auch dann, wenn sie gleichzeitig angefordert werden.

Dauerhaftigkeit: Die Datenbank ist wiederherstellbar, auch dann, wenn größere Probleme, wie z. B. der Absturz der Festplatte, auftreten.

Alle Angaben ohne Gewähr!

| Impressum / DS |