Zurück zur StartseiteInformatik · Realschule 10 · Fach wechseln
Kostenlos starten
Realschule 10 · Informatik
Informatiksysteme, Daten und Verschlüsselung · Datenbanken und Datenstrukturierung

Tabellen, Attribute und Datentypen

Die Schülerbücherei deiner Schule hat 3.000 Bücher. Auf einem Zettel stehen Titel, Autor und die Namen der Ausleiher, mal vorne, mal hinten, mal durchgestrichen. Wie findest du schnell alle Bücher von einem Autor oder alle Bücher, die noch nicht zurückgegeben wurden? Dafür braucht man Daten mit fester Struktur. Genau das leisten Datenbanken.

Tabelle, Attribut und Datensatz

Eine Datenbank speichert Daten in Tabellen. Jede Zeile beschreibt ein einzelnes Objekt, jede Spalte eine Eigenschaft aller Objekte.

Beispiel: die Tabelle „Buch“ der Schülerbücherei.

BuchID Titel Autor Erscheinungsjahr ausgeliehen
1 Tintenherz Cornelia Funke 2003 ja
2 Die Welle Morton Rhue 1981 nein
3 Krabat Otfried Preußler 1971 nein

Diese Tabelle hat 5 Attribute und 3 Datensätze. Die Überschriften zählen nicht als Datensätze.

Tabelle Buch mit markiertem Attribut (Spalte Titel) und markiertem Datensatz (Zeile 2) BuchIDTitelAutorJahrausgeliehen 123 Die Welle Attribut (Spalte) Datensatz (Zeile)
Üben★☆☆Nicht begonnen
Die Schülerbücherei der Gesamtschule Musterstadt verwaltet ihre Bücher in einer Tabelle mit den Spalten Titel, Autor, Erscheinungsjahr, Seitenzahl und ausgeliehen…

Die Schülerbücherei der Gesamtschule Musterstadt verwaltet ihre Bücher in einer Tabelle mit den Spalten Titel, Autor, Erscheinungsjahr, Seitenzahl und ausgeliehen (ja/nein).

  1. a) Nenne die Attribute der Tabelle.
  2. b) Was ist in dieser Tabelle ein Datensatz?
  3. c) Ordne jedem Attribut einen passenden Datentyp zu (Text, ganze Zahl, Wahrheitswert).
Lösen
Üben★☆☆Nicht begonnen
Erkläre in je einem Satz die Begriffe Tabelle, Attribut, Datensatz und Primärschlüssel und nenne für eine Tabelle „Haustiere“ ein Beispiel für jeden dieser Begriffe.

Erkläre in je einem Satz die Begriffe Tabelle, Attribut, Datensatz und Primärschlüssel und nenne für eine Tabelle „Haustiere“ ein Beispiel für jeden dieser Begriffe.

Lösen

Datentypen

Jedes Attribut hat einen Datentyp. Er legt fest, welche Werte erlaubt sind und was man damit tun darf. Nur bei Zahlen kann man rechnen, nur bei Datumswerten Zeiträume berechnen.

Datentyp Beispiel Verwendung
Text (String) „Köln“, „10a“ Namen, Orte, Bezeichnungen
ganze Zahl (Integer) 2009, 120 Jahre, Anzahlen, Seitenzahlen
Kommazahl (Dezimalzahl) 12,5; 8,50 Temperaturen, Preise
Datum / Uhrzeit 24.12.2025; 14:30 Termine, Messzeitpunkte
Wahrheitswert (Boolean) ja / nein, wahr / falsch Ja-Nein-Eigenschaften

Der Datentyp schützt vor Fehleingaben: Gibt jemand in ein Zahlenfeld „zwölf Grad“ ein, lehnt die Datenbank das ab. Außerdem kann man nur dann sinnvoll sortieren und auswerten, etwa den Durchschnitt der Temperaturen bilden.

Üben★☆☆Nicht begonnen
Gegeben ist die Tabelle „Schueler“: | ID | Name | Klasse | Geburtsjahr | |----|------|--------|-------------| | 1 | Lena Brandt | 10a | 2009 | | 2 | Murat Yilmaz | 10b |…

Gegeben ist die Tabelle „Schueler“:

ID Name Klasse Geburtsjahr
1 Lena Brandt 10a 2009
2 Murat Yilmaz 10b 2008
3 Sophie Klein 10a 2009
  1. a) Wie viele Datensätze und wie viele Attribute hat die Tabelle?
  2. b) Welches Attribut eignet sich als Primärschlüssel? Begründe kurz.
  3. c) Welchen Datentyp hat das Attribut Geburtsjahr?
Lösen
Üben★★☆Nicht begonnen
Für eine Tabelle „Messwerte“ einer Wetterstation in Köln sind folgende Attribute geplant: Datum, Uhrzeit, Temperatur in °C, Niederschlag in mm, Wetterlage (z. B.…

Für eine Tabelle „Messwerte“ einer Wetterstation in Köln sind folgende Attribute geplant: Datum, Uhrzeit, Temperatur in °C, Niederschlag in mm, Wetterlage (z. B. „sonnig“).

  1. a) Ordne jedem Attribut einen Datentyp zu.
  2. b) Ein Mitarbeiter trägt bei Temperatur den Wert „zwölf Grad“ ein. Welches Problem entsteht bei einer Auswertung?
  3. c) Wie kann die Datenbank solche Fehleingaben verhindern?
Lösen

Primärschlüssel

In der Tabelle „Schueler“ gibt es vielleicht zwei Schüler namens „Lukas Müller“. Wie unterscheidet man sie? Dafür gibt es den Primärschlüssel.

Gute Primärschlüssel sind meist eine künstliche ID oder eine Nummer: Kundennummer, Matrikelnummer, BuchID. Namen taugen nicht, denn sie können doppelt vorkommen und sich ändern (z. B. durch Heirat). Auch die Klasse oder das Geburtsjahr sind ungeeignet, weil viele Schüler sie gemeinsam haben.

Üben★★☆Nicht begonnen
Ein Sportverein in Dortmund möchte seine Mitglieder in einer Datenbank speichern: Name, Geburtsdatum, Postleitzahl, Mitgliedsbeitrag in Euro, Eintrittsdatum und ob das…

Ein Sportverein in Dortmund möchte seine Mitglieder in einer Datenbank speichern: Name, Geburtsdatum, Postleitzahl, Mitgliedsbeitrag in Euro, Eintrittsdatum und ob das Mitglied im Vorstand ist.

  1. a) Entwirf eine Tabelle mit passenden Attributen und gib für jedes Attribut einen geeigneten Datentyp an.
  2. b) Warum sollte die Postleitzahl als Text und nicht als Zahl gespeichert werden?
  3. c) Füge einen Primärschlüssel hinzu und begründe deine Wahl.
Lösen

Redundanz vermeiden: mehrere Tabellen und Fremdschlüssel

Ein Pizzalieferdienst speichert alle Daten in einer Tabelle:

Nr Kunde Pizza Preis Ort
1 Meier Salami 8,50 € Essen
2 Meier Funghi 7,90 € Essen
3 Schulz Salami 8,50 € Bochum

Der Ort von Herrn Meier steht zweimal, der Preis der Salami ebenfalls. Mehrfach gespeicherte Daten heißen Redundanz. Sie machen Probleme:

  • Ändern: Zieht Herr Meier um, muss man jede Zeile ändern. Vergisst man eine, widersprechen sich die Daten (Inkonsistenz).

  • Löschen: Löscht man den letzten Auftrag eines Kunden, sind auch seine Kundendaten weg.

  • Einfügen: Einen neuen Kunden ohne Auftrag kann man nicht speichern.

Die Lösung: Daten auf mehrere Tabellen aufteilen, sodass jede Information genau einmal vorkommt. Die Tabellen werden über Fremdschlüssel verknüpft.

Tabelle „Kunde“:

KundeID Name Ort
1 Meier Essen
2 Schulz Bochum

Tabelle „Auftrag“:

Nr KundeID Pizza Preis
1 1 Salami 8,50 €
2 1 Funghi 7,90 €
3 2 Salami 8,50 €

KundeID ist in „Kunde“ der Primärschlüssel und in „Auftrag“ der Fremdschlüssel. Zieht Herr Meier um, ändert man jetzt nur eine Zeile.

Die Tabellen Kunde und Auftrag sind über KundeID verbunden Kunde KundeID (PK) Name Ort Auftrag Nr (PK) KundeID (FK) Pizza, Preis
Üben★★☆Nicht begonnen
Die folgende Tabelle „Auftraege“ eines Pizzalieferdienstes enthält: | Nr | Kunde | Pizza | Preis | Ort | |----|-------|-------|-------|-----| | 1 | Meier | Salami | 8,50…

Die folgende Tabelle „Auftraege“ eines Pizzalieferdienstes enthält:

Nr Kunde Pizza Preis Ort
1 Meier Salami 8,50 € Essen
2 Meier Funghi 7,90 € Essen
3 Schulz Salami 8,50 € Bochum
  1. a) Welche Informationen werden mehrfach gespeichert (Redundanz)?
  2. b) Welche Probleme entstehen, wenn Herr Meier umzieht?
  3. c) Schlage vor, wie man die Daten auf zwei Tabellen aufteilen könnte, und nenne die Verbindung zwischen ihnen.
Lösen
Üben★★★Nicht begonnen
Eine Schule speichert in einer einzigen Tabelle: Schüler-Name, Klasse, Klassenlehrer, Raum des Klassenlehrers, Fach, Note. a) Beschreibe drei Probleme, die bei dieser…

Eine Schule speichert in einer einzigen Tabelle: Schüler-Name, Klasse, Klassenlehrer, Raum des Klassenlehrers, Fach, Note.

  1. a) Beschreibe drei Probleme, die bei dieser Struktur auftreten (z. B. beim Ändern, Löschen und Einfügen).
  2. b) Entwirf eine Aufteilung in mindestens drei Tabellen mit Primärschlüsseln und Verweisen (Fremdschlüsseln).
  3. c) Begründe, warum deine Struktur die Probleme aus a) vermeidet.
Lösen

Beziehungen und gute Attribute

Viele-zu-viele-Beziehungen

Ein Leser leiht mehrere Bücher aus, und ein Buch wird von mehreren Lesern ausgeliehen. Man kann das weder in „Buch“ noch in „Leser“ als Attribut speichern: Es müssten mehrere Werte in einer Zelle stehen, oder man müsste Datensätze doppelt anlegen. Man braucht eine dritte Tabelle, die jede Ausleihe als eigenen Datensatz speichert.

Tabelle „Ausleihe“:

AusleiheID BuchID LeserID Ausleihdatum Rückgabedatum
1 2 5 03.03.2025 17.03.2025
2 2 8 20.03.2025 leer

AusleiheID ist der Primärschlüssel, BuchID und LeserID sind Fremdschlüssel. Ist das Rückgabedatum leer, ist das Buch noch nicht zurückgegeben. So lassen sich später die offenen Ausleihen abfragen.

Ein Wert pro Attribut

Name und Adresse in einem einzigen Feld „Kundendaten“ zu speichern, ist schlecht: Man kann nicht nach Nachnamen sortieren, nicht nach Stadt suchen und nicht auswerten, wie viele Kunden in Düsseldorf wohnen. Besser sind getrennte Attribute: Vorname, Nachname, Straße, Hausnummer, PLZ (Text), Ort. Jedes Attribut enthält genau einen Wert.

Üben★★★Nicht begonnen
Eine Bibliothek in Münster führt die Tabellen „Buch“ (BuchID, Titel, Autor) und „Leser“ (LeserID, Name). Ein Leser kann mehrere Bücher ausleihen, ein Buch wird im Lauf…

Eine Bibliothek in Münster führt die Tabellen „Buch“ (BuchID, Titel, Autor) und „Leser“ (LeserID, Name). Ein Leser kann mehrere Bücher ausleihen, ein Buch wird im Lauf der Zeit von mehreren Lesern ausgeliehen.

  1. a) Erkläre, warum man die Ausleihe nicht als zusätzliches Attribut in einer der beiden Tabellen speichern kann.
  2. b) Entwirf eine dritte Tabelle „Ausleihe“ mit Attributen, Primärschlüssel und Fremdschlüsseln.
  3. c) Gib an, welche Attribute dazu dienen, später abzufragen, welche Bücher aktuell nicht zurückgegeben wurden.
Lösen
Üben★★★Nicht begonnen
Ein Online-Shop speichert Kundendaten. Ein Entwickler schlägt vor, den Namen und die Adresse in einem einzigen Textfeld „Kundendaten“ zu speichern. a) Nenne mindestens…

Ein Online-Shop speichert Kundendaten. Ein Entwickler schlägt vor, den Namen und die Adresse in einem einzigen Textfeld „Kundendaten“ zu speichern.

  1. a) Nenne mindestens drei Nachteile dieses Vorschlags für Sortierung, Suche und Auswertung.
  2. b) Zerlege das Attribut sinnvoll in einzelne Attribute mit Datentypen.
  3. c) Beurteile, ob die Kundennummer oder der Nachname als Primärschlüssel besser geeignet ist.
Lösen

Zurück zum Anfang: Mit einer Tabelle „Buch“, einer Tabelle „Leser“ und einer Tabelle „Ausleihe“ findet die Schülerbücherei jedes Buch und jeden offenen Verleih sofort wieder.

Auf einen Blick

  • Eine Tabelle besteht aus Attributen (Spalten) und Datensätzen (Zeilen).

  • Jedes Attribut hat einen Datentyp (Text, ganze Zahl, Kommazahl, Datum, Wahrheitswert). Postleitzahlen speichert man als Text.

  • Der Primärschlüssel kennzeichnet jeden Datensatz eindeutig, meist eine ID.

  • Redundanz führt zu Fehlern beim Ändern, Löschen und Einfügen. Man vermeidet sie durch mehrere Tabellen.

  • Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle. Für Viele-zu-viele-Beziehungen braucht man eine eigene Tabelle.

Alle Aufgaben zu diesem Abschnitt anzeigen