Home > Informatik > Datenbanken

32 Grundbegriffe

31 - 32 - 33 - 34

Definitionen wichtiger Grundbegriffe

Bevor wir die verschiedenen Datenbankmodelle besprechen, wollen wir einige wichtige, immer wieder auftauchende Grundbegriffe klären. Schauen wir uns dazu einmal eine typische Excel-Tabelle an.

asdf

Die Notenliste eines Lehrers

Oben sehen wir eine typische Notenliste, wie sie viele Lehrer in ihrem Rechner verwalten. Eine solche Tabelle besteht aus Spalten und Zeilen. Die beiden ersten Zeilen enthalten keine Daten, sondern Überschriften, Bezeichnungen, Attribute oder wie auch immer man diese Eigenschaften nennt. Die folgenden Zeilen enthalten Daten; für jeden Schüler und jede Schülerin ist eine eigene Zeile zuständig.

Die erste Spalte enthält die Namen, die zweite die Vornamen der Schüler, in der dritten Spalte ist vermerkt, ob der Schüler das Fach schriftlich oder mündlich gewählt hat, in den beiden nächsten Spalten sieht man die Nummern der Sitzplätze in zwei verschiedenen Chemie-Räumen. Die nächsten zehn Spalten zeigen die mündlichen Leistungen der Schüler in zehn verschiedenen Unterrichtsstunden. Die Spalte mit dem Namen "Summe" addiert dann die erzielten Punkte in den zehn Stunden, und die Spalte "Note" enthält die daraus resultierende Quartalsnote des Schülers. Die vorletzte Spalte speichert die Klausurnoten der Schüler, und die letzte Spalte die bisher angefallenen Fehlstunden.

Kommen wir nun zu den Fachbegriffen

Daten

Das sind sozusagen die "Atome" einer Datenbank. Daten sind die nackten Tatsachen oder Fakten, die in den einzelnen Zellen der Tabelle stehen. Beispielsweise ist "Jürgen" in der Zeile 8 und Spalte 2 ein Datum. Ähnlich wie bei Programmiersprachen haben solche Daten auch einen Datentyp. Alle Daten in der ersten und zweiten Spalte haben den Datentyp String, es handelt sich also um Zeichenketten. Die Daten in der dritten Spalte haben den Datentyp char, die Daten in den beiden folgenden Spalten den Datentyp int, die Daten in den zehn nächsten Spalten den Datentyp double und so weiter.

Datenfeld

Der Begriff "Datenfeld" ist jetzt recht schwer vom Begriff "Daten" abzugrenzen. Ein Datenfeld enthält sozusagen die Daten, genauer gesagt, ein einziges Datum. Wenn man mit einer Desktop-Datenbank wie Access oder Filemaker eine neue Datenbank erstellt, muss man als erstes die Datenfelder der Datenbank definieren. Ein solches Datenfeld könnte beispielsweise folgendermaßen definiert werden:

Name: String

Ein Datenfeld ist also so etwas wie eine Variable oder ein Attribut in einer Programmiersprache. Ein Datenfeld hat zwei Komponenten: Die Bezeichnung des Datenfeldes (zum Beispiel "Name" oder "Note"), und den Typ des Datenfeldes (zum Beispiel "String" oder "double").

Datensatz

Unter einem Datensatz versteht man sämtliche Daten, die zusammengehören. In unserem Beispiel mit der Notenliste wäre ein Datensatz mit einer Zeile der Notenliste identisch.

Tabelle

Ein Beispiel für eine Tabelle haben wir bereits in der Abbildung 1 gesehen. Eine Tabelle enthält mehrere bis viele Datensätze, die alle die gleiche Struktur haben müssen, das heißt, jeder Datensatz besteht aus den gleichen Datenfeldern, und die Datenfelder sind auch in der gleichen Reihenfolge angeordnet.

Datenbank

Eine einfache Datenbank besteht nur aus einer Tabelle, komplexere Datenbanken enthalten mehrere bis viele Tabellen. Ein Lehrer unterrichtet beispielsweise mehrere Klassen und Kurse, und hat entsprechend viele Excel- oder Numbers-Tabellen auf seinem Rechner, die dann zusammen eine Art Datenbank bilden.

Relationen

Bei der "Datenbank" des Lehrers, der vielleicht neun Excel-Tabellen auf seinem Rechner hat, für jede Klasse und für jeden Kurs genau eine, kann man noch nicht von Relationen sprechen. Jede Tabelle ist für sich unabhängig von den anderen acht Tabellen. Bei größeren Datenbanken sind aber die Tabellen voneinander abhängig.

Beispiel

In einer Tabelle werden die Kunden eines Online-Verkäufers verwaltet. Jeder Kunde hat eine eindeutige Kundennummer. Neben der Kundennummer werden natürlich auch Name und Vorname sowie Anschrift des Kunden gespeichert.

In einer zweiten Tabelle sind alle Waren des Verkäufers gespeichert. Jede Ware hat eine Bestellnummer, eine Bezeichnung der Ware, den Preis und vielleicht noch ein Photo des Produkts.

In einer dritten Tabelle sind nun die erfolgten Verkäufe gespeichert. Natürlich könnte diese Tabelle nun so aussehen:

asdf

Ein Ausschnitt aus der nicht-optimalen Tabelle

Jeder, der auch nur ein bisschen Ahnung von Datenbanken hat, wird hier sicherlich sagen: "Was für ein Unsinn!". Die Tabelle ist völlig überfrachtet oder redundant, wie der Fachmann sagt. Wieso müssen für jeden Verkauf die kompletten Kundendaten in der Tabelle gespeichert werden? Reicht es nicht, die Kundennummer in einem Datenfeld unterzubringen?

asdf

Zwei Tabellen, die über die Kundennummer miteinander verbunden sind

Hier sehen wir eine bessere Alternative. Die Kunden werden in einer eigenen Tabelle gespeichert, jeder Kunde hat eine eindeutige Kundennummer. In der Tabelle für die getätigten Verkäufe wird jetzt nur noch die Kundennummer des jeweiligen Kunden gespeichert. Die Verwaltungssoftware der Datenbank, das DBMS kann jetzt mit Hilfe dieser Kundennummer den Kunden, der die Ware gekauft hat, eindeutig identifizieren.

Noch besser ginge es mit drei Tabellen:

asdf

Das Datenbanksystem mit drei Tabellen

In der ersten Tabelle werden die Waren untergebracht. Jede Ware hat eine Artikelnummer, eine Bezeichnung des Artikels und einen Preis. Die zweite Tabelle enthält die Datensätze der Kunden, und in der dritten Tabelle werden die Verkäufe gespeichert. Jetzt wird sogar das Datum des Verkaufs vermerkt, und trotzdem ist die Tabelle recht klein. Das liegt daran, dass jetzt nicht nur die Kundennummer statt der gesamten Kundendaten gespeichert wird, sondern statt der gesamten Artikeldaten wird auch nur die Artikelnummer gespeichert. Aus der Artikelnummer und der Stückzahl berechnet das DBMS dann den Gesamtpreis der Bestellung.

All diese Verknüpfungen zwischen den drei Tabellen werden als Relationen bezeichnet.

Entität

Kommen wir zum letzten und vielleicht auch wichtigsten Fachbegriff - zumindest wenn es nach den Abiturvorgaben für 2019 in NRW geht.

Der Begriff "Entität" ähnelt dem Begriff "Klasse" aus der objektorientierten Programmierung. Bei unserer Beispieldatenbank mit den Tabellen haben wir drei solcher Entitäten:

  1. Kunden
  2. Artikel
  3. Verkäufe

"Entitäten sind Objekte des realen Lebens, die in Form von beschreibenden Eigenschaften in einer Datenbank gespeichert werden".

Dieses Zitat stammt aus dem Buch "Informatik für Schule uns Ausbildung" von Rainer Hattenhauer und fasst eigentlich alles Wichtige zusammen, was man über Entitäten sagen kann. Als Informatiklehrer stellt man sich natürlich gleich die Frage: Entspricht eine Entität einer Java-Klasse oder einem Java-Objekt? Hier könnte man der Meinung sein, der Begriff "Entität" ist analog zum Begriff "Klasse". Es werden zwar die Datenfelder definiert, aber diese enthalten noch keine konkreten Daten. Erst die Datensätze der Tabellen sind mit den Objekten einer Programmiersprache vergleichbar.

Seitenanfang -