Datenbank verstehen: Tabellen, Schlüssel und SQL
Datenbanken speichern Daten geordnet in Tabellen. Du lernst Datensatz, Attribut, Primär- und Fremdschlüssel und erste SQL-Abfragen.
Kurz gesagt
Eine Datenbank speichert Daten geordnet in Tabellen: Jede Zeile ist ein Datensatz, jede Spalte ein Attribut. Ein Primärschlüssel wie SchuelerID kennzeichnet jeden Datensatz eindeutig, ein Fremdschlüssel verweist auf eine andere Tabelle. Abfragen schreibst du in SQL: SELECT Spalten FROM Tabelle WHERE Bedingung.
Stell dir die Ausleihliste der Schulbibliothek als Zettelwirtschaft vor: Zwei Schüler heißen Schmidt, ein Buchtitel ist falsch geschrieben, und niemand findet etwas. Eine Datenbank räumt dieses Chaos auf. Sie ordnet Daten in Tabellen und verknüpft sie eindeutig.
Deine Lernziele
Eine relationale Datenbank speichert Daten in Tabellen. Jede Spalte beschreibt eine Eigenschaft, jede Zeile ein einzelnes Objekt. Das Programm, das die Daten verwaltet, heißt Datenbankmanagementsystem, kurz DBMS.
Datenbank und DBMS
Die Datenbank ist der geordnete, dauerhaft gespeicherte Datenbestand. Das DBMS ist die Software, die Daten speichert, sucht, ändert und löscht.
| SchuelerID | Vorname | Nachname | Klasse |
|---|---|---|---|
| 1 | Lena | Schmidt | 7b |
| 2 | Tim | Schmidt | 8a |
| 3 | Ali | Yılmaz | 7b |
Merke: Spalte = Attribut (z. B. Nachname). Zeile = Datensatz (z. B. alles über Tim). Ein einzelner Zelleninhalt wie 8a ist ein Attributwert.
Teste dich
Namen können doppelt vorkommen, wie Schmidt in unserer Tabelle. Deshalb bekommt jeder Datensatz einen Schlüssel, der ihn eindeutig kennzeichnet. Oft ist das eine künstlich vergebene Nummer wie SchuelerID, ein Surrogatschlüssel. Über diesen Schlüssel können andere Tabellen auf den Datensatz verweisen.
Primärschlüssel
Ein Primärschlüssel ist ein Attribut (oder eine minimale Kombination von Attributen), dessen Wert jeden Datensatz eindeutig identifiziert. Er darf nicht leer sein.
Fremdschlüssel
Ein Fremdschlüssel ist ein Attribut, das auf den Primärschlüssel einer anderen Tabelle verweist. Er darf nur Werte enthalten, die es dort wirklich gibt. Das heißt referenzielle Integrität.
Beispiel: Tabelle Ausleihe
- 1Ausleihe(AusleihID, BuchID, SchuelerID, Datum)
- 2AusleihID ist der Primärschlüssel dieser Tabelle.
- 3SchuelerID = 2 verweist eindeutig auf Tim Schmidt.
- 4Nur der Nachname Schmidt wäre mehrdeutig.
Teste dich
Tabellen hängen über Schlüssel zusammen. Wie viele Datensätze auf jeder Seite beteiligt sein können, beschreibt die Kardinalität. Beispiel: Eine Klasse hat viele Schüler, aber jeder Schüler ist in genau einer Klasse. Das ist eine 1:n-Beziehung. Durch die Aufteilung steht jede Angabe nur einmal in der Datenbank. So vermeidest du Redundanz, also unnötige und oft widersprüchliche Mehrfachspeicherung.
| Beziehung | Bedeutung | Umsetzung |
|---|---|---|
| 1:1 | Höchstens ein Partner auf jeder Seite | Fremdschlüssel, der nur einmal vorkommen darf |
| 1:n | Einer auf der einen, viele auf der anderen Seite | Fremdschlüssel auf der n-Seite |
| n:m | Viele auf beiden Seiten | Eigene Beziehungstabelle |
Merke: Bei 1:n steht der Fremdschlüssel auf der n-Seite. Eine n:m-Beziehung löst du mit einer Beziehungstabelle in zwei 1:n-Beziehungen auf.
Teste dich
SQL steht für Structured Query Language. Die Grundform einer Abfrage hat drei Teile. FROM nennt die Tabelle, WHERE filtert die Zeilen, SELECT wählt die Spalten, die angezeigt werden.
Beispiel: Alle aus der 7b
- 1SELECT Vorname, Nachname FROM Schueler WHERE Klasse = '7b';
- 2Zeile 1: 7b, passt. Zeile 2: 8a, passt nicht. Zeile 3: 7b, passt.
- 3Ergebnis: Lena Schmidt und Ali Yılmaz
Merke: Lies eine Abfrage in der Reihenfolge FROM → WHERE → SELECT: erst die Tabelle, dann die passenden Zeilen, dann die gewünschten Spalten. Text steht in einfachen Anführungszeichen, Zahlen nicht.
Teste dich
Alles auf einen Blick
Datenbanken
Zeilen sind Datensätze, Spalten Attribute
eindeutig und nie leer
verweist auf andere Tabelle
Fremdschlüssel auf der n-Seite
eigene Beziehungstabelle
SELECT Spalten FROM Tabelle WHERE Bedingung
Dicke Bücher in der Schulbibliothek finden
- 1Tabelle Buecher: (1, Sternenfahrt, 412 Seiten), (2, Das Moorhaus, 180), (3, Code Blau, 305)
- 2Abfrage: SELECT Titel FROM Buecher WHERE Seiten > 300;
- 3FROM: Wir schauen in die Tabelle Buecher.
- 4WHERE: 412 > 300 ja, 180 > 300 nein, 305 > 300 ja
- 5SELECT: Ergebnis sind die Titel Sternenfahrt und Code Blau.
Fehler finden
Fehler in Zeile 4Weniger als 200 heißt < 200. Mit > kämen genau die dicken Bücher heraus, also Sternenfahrt und Code Blau. Richtig: WHERE Seiten < 200;
Lückentext
Eine Zeile einer Tabelle heißt . Der Primärschlüssel muss jeden Datensatz kennzeichnen. Bei einer 1:n-Beziehung steht der Fremdschlüssel auf der .