Zurück zur StartseiteInformatik · Realschule 9 · Fach wechseln
Kostenlos starten
Realschule 9 · Informatik
Verschlüsselung, Automaten und Datenmengen · Datenbanken

Datenbanken – Tabellen, Sortieren und Filtern

Deine Schule hat 600 Schülerinnen und Schüler, die Bibliothek 4.000 Bücher und der Pausenverkauf 30 Produkte. Wie behält man bei so vielen Daten den Überblick? Und wie findet man in Sekunden alle Schüler der Klasse 9b, ohne eine Liste Zeile für Zeile durchzulesen? Genau dafür gibt es Datenbanken.

Aufbau einer Tabelle

Eine Datenbank speichert Daten strukturiert in Tabellen. Das kennst du schon aus der Tabellenkalkulation. Hier sind die Fachbegriffe:

Beispiel: die Tabelle „Schüler“.

ID Name Klasse Geburtsjahr
1 Mia Becker 9a 2010
2 Can Yilmaz 9b 2009
3 Jonas Weber 9b 2010
4 Mia Becker 9c 2009

Die Tabelle hat 4 Datensätze und 4 Felder. Beachte: Es gibt zwei Schülerinnen namens „Mia Becker“. Woran unterscheidet man sie?

Der Name taugt nicht: Zwei Personen können gleich heißen, außerdem kann sich ein Name ändern. Deshalb vergibt man eine künstliche ID (1, 2, 3, …) oder eine Nummer wie die Schülernummer. Die Klasse oder das Geburtsjahr taugen auch nicht, weil viele dieselben Werte haben.

Üben★☆☆Nicht begonnen
Eine Schuldatenbank hat die Tabelle „Schüler“ mit den Spalten ID, Name, Klasse, Geburtsjahr. Erkläre die Begriffe Datensatz, Feld (Attribut) und Primärschlüssel anhand…

Eine Schuldatenbank hat die Tabelle „Schüler“ mit den Spalten ID, Name, Klasse, Geburtsjahr. Erkläre die Begriffe Datensatz, Feld (Attribut) und Primärschlüssel anhand dieser Tabelle.

Lösen
Üben★☆☆Nicht begonnen
Warum ist der Name allein kein guter Primärschlüssel für die Tabelle „Schüler“? Nenne ein besseres Beispiel für einen Primärschlüssel.

Warum ist der Name allein kein guter Primärschlüssel für die Tabelle „Schüler“? Nenne ein besseres Beispiel für einen Primärschlüssel.

Lösen

Sortieren und Filtern

Zwei Grundoperationen verändern nicht die Daten selbst, sondern nur deine Sicht darauf:

  • Sortieren ordnet die Datensätze nach einem Feld: aufsteigend (kleinste Zahl bzw. A zuerst) oder absteigend. Bei Gleichstand kann ein zweites Feld entscheiden.

  • Filtern zeigt nur die Datensätze, die eine Bedingung erfüllen. Mehrere Bedingungen verknüpfst du mit UND (beide müssen stimmen) oder ODER (mindestens eine muss stimmen).

Das sind dieselben logischen Operationen wie bei WENN, UND und ODER in der Tabellenkalkulation.

Üben★☆☆Nicht begonnen
Gegeben ist die Tabelle „Buch“: | ID | Titel | Autor | Jahr | |---|---|---|---| | 1 | Emil und die Detektive | Kästner | 1929 | | 2 | Momo | Ende | 1973 | | 3 | Krabat |…

Gegeben ist die Tabelle „Buch“:

ID Titel Autor Jahr
1 Emil und die Detektive Kästner 1929
2 Momo Ende 1973
3 Krabat Preußler 1971
4 Die unendliche Geschichte Ende 1979
  1. a) Sortiere die Tabelle aufsteigend nach Jahr und gib die ID-Reihenfolge an.
  1. b) Filtere alle Bücher von Ende und gib die Titel an.
Lösen
Üben★★☆Nicht begonnen
Gegeben ist die Tabelle „Film“: | ID | Titel | Genre | Dauer (min) | |---|---|---|---| | 1 | Die Welle | Drama | 107 | | 2 | Tschick | Komödie | 93 | | 3 | Das Wunder…

Gegeben ist die Tabelle „Film“:

ID Titel Genre Dauer (min)
1 Die Welle Drama 107
2 Tschick Komödie 93
3 Das Wunder von Bern Drama 118
4 Fack ju Göhte Komödie 118
  1. a) Filtere alle Filme mit Genre „Drama“ und Dauer unter 110 Minuten.
  1. b) Sortiere die ganze Tabelle absteigend nach Dauer, bei gleicher Dauer alphabetisch nach Titel. Gib die ID-Reihenfolge an.
Lösen

SQL-Abfragen

Datenbanksysteme verstehen die Abfragesprache SQL. Du beschreibst darin, was du haben willst. Eine einfache Abfrage hat diese Form:

SELECT Spalten

FROM Tabelle

WHERE Bedingung

ORDER BY Feld ASC;
Teil Bedeutung
SELECT Welche Felder sollen angezeigt werden? * heißt: alle
FROM Aus welcher Tabelle kommen die Daten?
WHERE Filter: nur Datensätze, die die Bedingung erfüllen
ORDER BY Sortierung: ASC aufsteigend, DESC absteigend

Vergleiche schreibst du mit =, <> (ungleich), <, <=, >, >=. Bedingungen verknüpfst du mit AND, OR und NOT. Text steht in einfachen Anführungszeichen: '9b'. Am Ende steht ein Semikolon.

Die Syntax ist wichtig: Fehlt ein Wort oder ein Anführungszeichen, meldet das System eine Fehlermeldung. Die Semantik bestimmt, welche Datensätze herauskommen.

Zwei Bedingungen verbindest du so:

SELECT Name FROM Schüler WHERE Klasse = '9a' OR Klasse = '9c';

Üben★★☆Nicht begonnen
Gegeben ist die SQL-Abfrage: SELECT Titel FROM Film WHERE Genre = 'Komödie' ORDER BY Dauer ASC; a) Erkläre, was jeder Teil der Abfrage bewirkt. b) Welches Ergebnis…

Gegeben ist die SQL-Abfrage:

SELECT Titel FROM Film WHERE Genre = 'Komödie' ORDER BY Dauer ASC;

  1. a) Erkläre, was jeder Teil der Abfrage bewirkt.
  1. b) Welches Ergebnis liefert sie für die Tabelle aus der vorigen Aufgabe (Film)?
Lösen
Üben★★☆Nicht begonnen
Schreibe SQL-Abfragen für die Tabelle „Schüler“ (ID, Name, Klasse, Geburtsjahr): a) Alle Namen der Schüler aus der Klasse '9b'. b) Alle Schüler, die nach 2009 geboren…

Schreibe SQL-Abfragen für die Tabelle „Schüler“ (ID, Name, Klasse, Geburtsjahr):

  1. a) Alle Namen der Schüler aus der Klasse '9b'.
  1. b) Alle Schüler, die nach 2009 geboren sind, absteigend sortiert nach Geburtsjahr.
  1. c) Alle Datensätze, deren Klasse '9a' oder '9c' ist.
Lösen
Üben★★★Nicht begonnen
Gegeben ist die Tabelle „Sportler“: | ID | Name | Disziplin | Punkte | |---|---|---|---| | 1 | Maja | Weitsprung | 410 | | 2 | Tim | Sprint | 385 | | 3 | Lea |…

Gegeben ist die Tabelle „Sportler“:

ID Name Disziplin Punkte
1 Maja Weitsprung 410
2 Tim Sprint 385
3 Lea Weitsprung 450
4 Ali Sprint 450
5 Jan Weitsprung 385
  1. a) Schreibe eine SQL-Abfrage, die Name und Punkte aller Sportler mit mindestens 400 Punkten liefert, nach Punkten absteigend sortiert (bei gleicher Punktzahl ist die Reihenfolge beliebig).
  1. b) Gib das Ergebnis der Abfrage an.
  1. c) Schreibe eine Abfrage, die alle Weitsprung-Sportler mit weniger als 420 Punkten liefert, und gib das Ergebnis an.
Lösen

Mehrere Tabellen und Datenbanksysteme

Die Bibliothek speichert alles in einer Tabelle:

Schülername Klasse Buchtitel Autor Ausleihdatum
Lea Koch 9a Momo Ende 03.05.
Lea Koch 9a Krabat Preußler 03.05.
Lea Koch 9a Tschick Herrndorf 10.05.

Probleme:

  • Redundanz: Name und Klasse von Lea stehen dreimal da, ebenso Titel und Autor jedes Buchs bei jeder Ausleihe.

  • Änderungsanomalie: Wechselt Lea in die 9b, muss man alle Zeilen ändern. Vergisst man eine, widersprechen sich die Daten.

Die Lösung: Daten auf mehrere Tabellen aufteilen und sie über Schlüssel verknüpfen.

Tabelle Felder
Schüler SchülerID (Primärschlüssel), Name, Klasse
Buch BuchID (Primärschlüssel), Titel, Autor
Ausleihe AusleiheID (Primärschlüssel), SchülerID (Fremdschlüssel), BuchID (Fremdschlüssel), Datum

Ein Fremdschlüssel ist ein Feld, das auf den Primärschlüssel einer anderen Tabelle verweist. So steht jede Angabe nur einmal in der Datenbank.

Warum nutzt man dafür ein Datenbanksystem statt einer Tabellenkalkulation? Es bietet:

  • Mehrbenutzerbetrieb: Viele Personen arbeiten gleichzeitig an denselben Daten, ohne sich zu überschreiben.

  • Sehr große Datenmengen werden schnell durchsucht.

  • Konsistenz: Regeln wie „ID ist eindeutig“ werden automatisch geprüft.

  • Zugriffsrechte: Nicht jeder darf alles sehen oder ändern (Datenschutz).

Außerdem sind in einem Datenbanksystem die Daten und ihre Darstellung getrennt. Das Sortieren und Filtern ist eine Abfrage, die die gespeicherten Daten nicht verändert. Du musst sie nicht jedes Mal von Hand neu ordnen, sondern das System liefert bei jeder Abfrage das passende Ergebnis.

Üben★★★Nicht begonnen
Die Bibliothek der Realschule verwaltet Ausleihen in einer einzigen Tabelle mit den Spalten: Schülername, Klasse, Buchtitel, Autor, Ausleihdatum. a) Beschreibe zwei…

Die Bibliothek der Realschule verwaltet Ausleihen in einer einzigen Tabelle mit den Spalten: Schülername, Klasse, Buchtitel, Autor, Ausleihdatum.

  1. a) Beschreibe zwei Probleme (Redundanz, Änderungsanomalie), die entstehen, wenn ein Schüler mehrere Bücher ausleiht.
  1. b) Schlage eine Aufteilung in drei Tabellen vor und gib Primär- und Fremdschlüssel an.
Lösen
Üben★★★Nicht begonnen
Eine Tabelle „Produkt“ eines Schulkiosks enthält ID, Name, Preis (in €) und Bestand. a) Formuliere eine SQL-Abfrage für alle Produkte, die weniger als 2 € kosten und von…

Eine Tabelle „Produkt“ eines Schulkiosks enthält ID, Name, Preis (in €) und Bestand.

  1. a) Formuliere eine SQL-Abfrage für alle Produkte, die weniger als 2 € kosten und von denen weniger als 10 Stück da sind (nur Name und Bestand, sortiert nach Bestand aufsteigend).
  1. b) Der Hausmeister meint: „Man kann in einer Tabellenkalkulation dasselbe machen, ein Datenbanksystem braucht man nicht.“ Nenne zwei Vorteile eines Datenbanksystems, wenn viele Personen gleichzeitig mit sehr vielen Daten arbeiten.
  1. c) Erkläre, warum man die gespeicherten Daten in einem Datenbanksystem nicht jedes Mal selbst umsortieren muss, um sie in einer bestimmten Reihenfolge anzuzeigen.
Lösen

Zurück zum Anfang: Die Schüler der 9b findest du mit SELECT * FROM Schüler WHERE Klasse = '9b';. Das System liest nicht Zeile für Zeile von Hand, du beschreibst nur, was du suchst.

Auf einen Blick

Alle Aufgaben zu diesem Abschnitt anzeigen