Exkurs - Ausschnitt der realen Welt
Nur ein Teil der Welt
Sobald du Daten in einer Tabelle speicherst, musst du dich z.B. entscheiden, welche Datentypen du verwendest.
Hier noch einmal das Schema unserer ersten Datenbank:
Es gibt also die Tabellen ort und land. Die Attribute der Tabellen sind darunter
mit ihren Datentypen in MySQL genannt. Schnell erkennst du Textattribute
(Datentyp varchar
) und Attribute mit Zahlwerten (Datentypen int
oder decimal
).
Aufgabe 1
Gib die Einwohnerzahlen der Orte aus. Mache das Gleiche für die Länder und vergleiche die Ausgabe.
Was fällt an den Zahlen auf?
Ein Vergleich der Datentypen kann dir helfen: decimal(20,2)
beim Attribut Einwohner
der land
-
Tabelle bedeutet, dass eine Kommazahl (mit zwei Nachkommastellen) gespeichert werden kann.
int
beim Attribut Einwohner
der ort
-Tabelle bedeutet eine ganze Zahl.
Eine Miniwelt
In einer Datenbank wird immer nur ein Ausschnitt der realen Welt abgelegt.
Bei der Erstellung (der "Modellierung") muss man sich entscheiden,
welche Teile dieser Welt berücksichtigt werden.
Man sagt, man erzeugt eine Miniwelt als Ausschnitt der realen Welt.
Schon mit der Festlegung von Datentypen schränkt man sich ein (man kann keinen Text in ein Zahl-Attribut speichern). Auch die Einheiten
(z.B. km² beim Attribut Flaeche
bzw. 1000 km² beim Attribut KontinentFlaeche
) sind
willkürlich festgelegt und müssen dem Benutzer bekannt sein.
Grenzen (unserer) Miniwelt
Die beiden Tabellen ort
und land
beinhalten schon einige Grenzen unserer Miniwelt.
Ein paar Beispiele:
- Die Einwohnerzahl der Länder ist nur gerundet auf Mio. gespeichert.
- Einheiten sind unterschiedlich gewählt.
- Wichtige andere Kenndaten fehlen (z.B. Fläche der Gemarkung eines Ortes, etc.).
- Unklare Schreibweise der Länder - suche doch einmal die Hauptstadt von Tschechien und Polen - Prag oder Praha bzw. Warschau oder Warszawa?
- Unklare Schreibweise der Orte - ist hier Strasbourg oder Straßburg gespeichert?
Manche Einschränkungen sind sinvoll und akzeptabel, manche lassen sich in der Folge leicht beheben, manche sind vielleicht ungünstig gewählt.
Aufgabe 2
Aufgabe 3
Teste einmal den folgenden SQL-Befehl - was gibt er aus?