Relationale Datenbanken

Relationale Datenbanken

Übernommen von inf-schule.de

Tabellen eignen sich besonders gut, um Daten darzustellen. Sie bilden daher die Basis für relationale Datenbanken.

Merke:

Eine relationale Datenbank ist im einfachsten Fall eine Sammlung von Tabellen.

Eine Datenbanktabelle besteht aus mehreren Elementen:

  • einem eindeutigen Namen
  • einer Reihe von eindeutig benannten Spalten (Attribute)
  • einem genau definierten Wertebereich (Datentyp) für jedes Attribut (Zahl, Text, Datum, etc.)
  • beliebig vielen Zeilen (Datensätze). Jeder Datensatz besitzt Werte in den Attributen (Datenwerte).
ortNameEinwohnerBreiteLaengeLandBerlin345876352,5213,41DeutschlandMainz18475250,008,27DeutschlandParis218130048,862,35FrankreichSpeyer5060049,318,43DeutschlandNameAttributDatenwertDatensatz

Bei der Planung einer Datenbank sind die Datensätze zunächst unwichtig. Deswegen stellt man die Tabellen einer Datenbank verkürzt als Datenbankschema dar, wie rechts zu sehen ist für die Tabelle „ort“.

Im Datenbankschema sind nur Attribute mit ihren Datentypen zu sehen.

V⚙ort
  • ▤Name : varchar(30)
  • ▤Land : varchar(50)
  • #Einwohner : int(11)
  • #Laenge : decimal(10,4)
  • #Breite : decimal(10,4)

Fahre mit der Maus über die Begriffe oder die Zeilen des Schemas (oder tippe sie an): Die passenden Teile der Tabelle werden hervorgehoben.

Der Begriff „relational“ kommt von einer mathematischen Betrachtung einer Datenbank in einer so genannten Relationenalgebra. Das ist für uns aber zunächst nicht weiter wichtig.

Ein Wert für ein Attribut in einem Datensatz soll atomar sein. Das bedeutet unter anderem, dass nur einfache Werte und keine Listen gespeichert werden dürfen. Das Beispiel einer Klassen-Tabelle unten wäre also aufgrund der Lehrerliste nicht korrekt.

klasse
NameRaumLehrer
9a407G.Lenk, A.Kribich, T.Oretisch
9b405A.Kribich, S.Treng

Aufgabe 1

Hier siehst du ein mögliches Datenbankschema für Länder, darunter drei Datensätze in der Tabelle.

V⚙land
  • ▤LNR : varchar(4)
  • ▤Name : varchar(50)
  • #Einwohner : decimal(20,2)
  • #Flaeche : int(11)
  • ▤Hauptstadt : varchar(30)
  • ▤Kontinent : varchar(15)
  • #KontinentFlaeche : int(11)
  • #KontinentEinwohner : int(11)
land
LNRNameEinwohnerFlaecheHauptstadtKontinentKontinentFlaecheKontinentEinwohner
UAEVereinigte Arabische Emirate5.4783600Abu DhabiAsien444010
WANNigeria230.8923768AbujaAfrika30944
GHGhana25.24238537AccraAfrika30944
Freitext

Ergänze drei weitere Länder und führe dazu auch ggf. eine kurze Recherche durch.

LNRNameEinwohnerFlaecheHauptstadtKontinentKontinentFlaecheKontinentEinwohner
UAEVereinigte Arabische Emirate5.4783600Abu DhabiAsien444010
WANNigeria230.8923768AbujaAfrika30944
GHGhana25.24238537AccraAfrika30944
💡 Zum Speichern deiner Antwort bitte einloggen.

Aufgabe 2

Beim Planen einer Datenbank sind die konkreten Datensätze noch nicht von Bedeutung. Daher plant man zunächst nur die Tabellen mit ihren verschiedenen Attributen. Unten ist das Datenbankschema der ort-Tabelle dargestellt, welche du im Merkkasten oben schon gesehen hast. Zusätzlich ist noch eine weitere Tabelle für Länder angegeben.

V⚙ort
  • ▤Name : varchar(30)
  • ▤Land : varchar(50)
  • #Einwohner : int(11)
  • #Laenge : decimal(10,4)
  • #Breite : decimal(10,4)
V⚙land
  • ▤LNR : varchar(4)
  • ▤Name : varchar(50)
  • #Einwohner : decimal(20,2)
  • #Flaeche : int(11)
  • ▤Hauptstadt : varchar(30)
  • ▤Kontinent : varchar(15)
  • #KontinentFlaeche : int(11)
  • #KontinentEinwohner : int(11)
Lückentext
a) Die beiden Tabellen heißen und .
Aufgabe 2b
b) Zu welcher Tabelle gehören diese Attribute?
Flaeche
LNR
Kontinent
Einwohner
Hauptstadt
Breite
Name
Land
Laenge
Drag the Words
c) Welche Bedeutung könnten die Begriffe haben? varchar: [___] · int: [___] · decimal: [___]
Datum ganze Zahl Text (Zeichenkette) Wahrheitswert Kommazahl
Multiple Choice

d) Welche Bedeutung könnten die Werte in den Klammern haben, z. B. varchar(30) oder int(11)?

Aufgabe 2e
e) Bewerte den folgenden Datensatz der Tabelle land für die Schweiz:
CH ; Schweiz ; 8.18 Mio ; 41285.5 ; Bern ; Europa ; 10 ; ???
Entscheide für jeden Wert, ob er zum Datentyp des zugehörigen Attributs passt. Vergleiche dazu mit dem Datenbankschema und mit gültigen Datensätzen aus Aufgabe 1.
Schweiz
Europa
Bern
CH
???
41285.5
8.18 Mio
10

Aufgabe 3

Erstelle die Struktur einer Tabelle für die Daten der Schülerinnen und Schüler deiner Klasse, z. B. für eine Schulverwaltungssoftware oder eine App für Vertretungspläne.

Freitext

a) Welche Attribute mit welchen Wertebereichen (Datentypen) müsste die Tabelle haben?

AttributDatentyp
💡 Zum Speichern deiner Antwort bitte einloggen.
Multiple Choice

b) Was solltest du speichern: das Alter der Schülerin/des Schülers oder das Geburtsdatum?

Freitext

c) Schreibe einige wenige Beispieldatensätze auf (mit erfundenen Daten). Trage in die erste Zeile deine Attribute ein.

💡 Zum Speichern deiner Antwort bitte einloggen.

Aufgabe 4

Immer wieder parken Autos von Fremden auf dem Lehrerparkplatz. Das Sekretariat benötigt daher die Information, welches Auto von welchem Lehrer gefahren wird. Dafür wurde die Lehrer-Tabelle ergänzt:

lehrer
NameFächerKFZ
G.LenkD, EXX-GL 999
A.KribichM, kR, SpYY-AK 42, YY-MK 88
Multiple Choice

Warum ist die Tabelle nicht gut gelungen und widerspricht eigentlich sogar den Regeln einer relationalen Datenbank?