Relationales Modell: ein Topf voller Tabellen
Über diese App
Die Übungsdatenbank prodat als Topf voller Tabellen: Relation, Attribut, Tupel an der Tabelle tools, Relation ⊆ name × tag nach Codd, Schlüssel als Gelenke (products.tool → tools.id, NULL). Dazu 100 Mio. Zeilen: Durchsuchen gegen B-Baum-Index mit Zeitmodell und SQL-Satz neben Schleife.
Mit Erklärmodus: Ein KI-Tutor führt dich durch die App, zeigt in der Szene, worauf es ankommt, und beantwortet deine Fragen.
Was das relationale Modell ist
Eine relationale Datenbank besteht aus Tabellen, die im Modell Relationen heißen. Jede Spalte ist ein Attribut mit einem Wertebereich, etwa TEXT oder INTEGER, jede Zeile ein Tupel. Der Name stammt aus der Mathematik: Edgar F. Codd beschrieb 1970 eine Relation als Teilmenge des kartesischen Produkts der Wertebereiche. Tabellen hängen über Schlüssel zusammen: Eine Spalte wie products.tool enthält die id einer Zeile aus tools. Ein Join nutzt diese Verbindung, NULL steht für einen unbekannten Wert.
Was die App zeigt
Im Topf liegt die Übungsdatenbank prodat mit customers, orders, products, deliveries und tools; Gelenke verbinden die Schlüsselspalten. Die Tabelle tools lässt sich heranholen, Spalten und Zeilen werden markiert, und das Gitter name × tag zeigt, dass 5 von 15 Paaren in der Tabelle stehen. Die Werkstatt verbindet Produkte mit ihren Werkzeugen. Die Szene Tempo vergleicht bei bis zu 100 Millionen Zeilen das Durchsuchen mit einem B-Baum-Index.
Selbst ausprobieren
Schiebe die Zeilenzahl von 10 auf 100 Millionen und starte die Suche: Der Index braucht 3 Ebenen, das Durchsuchen jede Zeile. Mit Verzweigungsgrad 2 wird aus dem B-Baum die binäre Suche mit 27 Vergleichen. Erhöhe die Zahl der Anfragen auf 10 000 und vergleiche 27,8 Stunden mit 3 Sekunden (Modell). In der Szene Abfrage schaltest du den Index ab und siehst, wie die Datenbank ihren Plan ändert.
Häufige Fragen
- Warum heißen Tabellen Relationen?
- Weil eine Tabelle mathematisch eine Relation ist: eine Teilmenge des kartesischen Produkts der Wertebereiche ihrer Spalten. Der Name kommt aus Codds Artikel von 1970 und bezieht sich nicht auf Beziehungen zwischen Tabellen.
- Was ist der Unterschied zwischen Attribut und Tupel?
- Ein Attribut ist eine Spalte mit Namen und Wertebereich, etwa price vom Typ INTEGER. Ein Tupel ist eine Zeile, also ein Wert je Attribut, etwa T-1000, 76, 540, A.
- Warum ist ein Index so schnell?
- Ohne Index muss die Datenbank jede Zeile prüfen. Ein B-Baum verzweigt je Knoten in viele Teile, bei 500 reichen für 100 Millionen Zeilen 3 Ebenen, also 3 Seitenzugriffe.
- Was kann ich in der App ausprobieren?
- Tabellen heranholen, Spalten und Zeilen markieren, das Gitter name × tag ansehen, Gelenke zwischen Produkten und Werkzeugen ziehen, bis zu 100 Millionen Zeilen durchsuchen lassen und den Plan einer SQL-Abfrage mit und ohne Index vergleichen.
Fach: Informatik
Mehr aus Informatik
- Ackermann-Funktion
- Aufzug-Simulator
- Binär-Werkstatt
- Binäre vs. lineare Suche
- Collatz-Problem (3n+1)
- CPU-Innenleben
- Das Innere austauschen
- Ein Frame in 16 Millisekunden — wie eine Game-Engine ein Bild rechnet (3D)
Eine VisuApp von heyprof: interaktiv, kostenlos im Browser, ohne Anmeldung. Was ist eine VisuApp? · Alle Apps