Was gehört in eine Datenbank?
Lösung geprüft
Die Aufgabe der heutigen Stunde ist die allererste zu Datenbanken! Es geht noch um kein SQL, sondern um die Frage davor: was gehört überhaupt in eine Datenbank? Und die Antwort ist nicht „alles", sondern hängt davon ab, wofür man sie braucht.
DB_00-1: Welche Informationen gehören in eine Datenbank?
Stellen Sie sich verschiedene Gemüsesorten vor, die Sie in eine Datenbank einpflegen wollen. Für jedes Szenario finden Sie bitte jeweils vier Eigenschaften/Attribute, die von Bedeutung oder nicht von Bedeutung sind.
Szenario 1: Supermarktbesitzer möchte die
Informationen über das Gemüse speichern, um das Gemüse mit Gewinn zu
verkaufen.
Szenario 2: Oma möchte Gemüsebreie machen (Apfelmus,
Birnenmus usw.).
Szenario 3: Landwirt möchte die Informationen über das
Gemüse speichern, um abrufen zu können, welche Sorte unter welchen
Umständen und in welcher Jahreszeit am besten wächst.
Szenario 1 – Der Supermarktbesitzer
Sein Ziel ist Gewinn. Alles, was nicht mit Geld oder Ware zu tun hat, interessiert ihn nicht.
| Wichtig | Unwichtig |
|---|---|
| Einkaufspreis | Bodenart beim Anbau |
| Verkaufspreis | Wasserbedarf der Pflanze |
| Haltbarkeitsdatum | Wachstumsdauer in Wochen |
| Lagerbestand | Zuckergehalt |
Das Haltbarkeitsdatum ist für ihn direkt Geld: was verdirbt, muss er wegwerfen. Wie lange die Pflanze zum Wachsen gebraucht hat, ändert an seinem Gewinn dagegen gar nichts.
Szenario 2 – Oma und ihre Breie
Oma kocht. Sie will wissen, was zusammenpasst und wie es schmeckt.
| Wichtig | Unwichtig |
|---|---|
| Sorte | Einkaufspreis |
| Zuckergehalt / Süße | Regalnummer im Supermarkt |
| Reifegrad | Mehrwertsteuersatz |
| Menge für ein Glas Brei | Lieferant |
Der Zuckergehalt taucht hier auf, obwohl er beim Supermarktbesitzer in der Spalte „unwichtig" stand. Das ist genau der Punkt der Aufgabe.
Szenario 3 – Der Landwirt
Er will wissen, was wann und wo am besten wächst.
| Wichtig | Unwichtig |
|---|---|
| Aussaatzeit / Jahreszeit | Verkaufspreis im Laden |
| Bodenart | Regalplatz |
| Wasserbedarf | Mehrwertsteuersatz |
| Erntezeitpunkt | Verpackungsgröße |
Worauf die Aufgabe hinauswill
Dreimal dasselbe Gemüse, dreimal völlig verschiedene Datenbanken. Keine einzige Eigenschaft steht bei allen drei in der Spalte „wichtig".
Daraus folgt der Merksatz für die ganze Einheit: Eine Datenbank speichert nicht alles, was man über etwas wissen könnte, sondern genau das, was für ihren Zweck gebraucht wird. Wer das umdreht und einfach jede denkbare Spalte anlegt, bekommt eine Tabelle mit fünfzig Attributen, von denen achtundvierzig leer bleiben.
| Zu wenig gespeichert | Zu viel gespeichert |
|---|---|
| Fragen lassen sich nicht beantworten, man muss nachträglich Spalten hinzufügen | Speicherplatz verschwendet, Abfragen werden langsam, viele Felder bleiben leer |
| Beispiel: Supermarkt ohne Haltbarkeitsdatum merkt nicht, was verdirbt | Beispiel: Supermarkt mit Bodenart – niemand pflegt das je ein |
Wer das Kapitel OOP hinter sich hat, kennt das Prinzip übrigens schon: genau so haben wir beim Auto entschieden, dass Kennzeichen und Tankvolumen wichtig sind und die Farbe nicht. Das heißt dort wie hier Abstraktion – nur dass es jetzt Tabellenspalten sind statt Attribute.