Eine Anleitung fuer Klasse 9 an der Oberschule: Du planst und erstellst eine kleine relationale Datenbank fuer eine Schulbibliothek. Dabei lernst du Tabellen, Primaerschluessel, Fremdschluessel, Datentypen und Beziehungen kennen.
1. Ziel der Datenbank
Die Schulbibliothek moechte speichern, welche Buecher vorhanden sind, wer die Buecher geschrieben hat, welche Schuelerinnen und Schueler sie ausleihen und zu welcher Klasse diese Personen gehoeren.
Eine einfache Liste waere dafuer schnell unuebersichtlich. In einer Datenbank werden die Informationen deshalb auf mehrere Tabellen verteilt. Jede Tabelle hat eine klare Aufgabe.
Merke
Eine relationale Datenbank speichert Daten in Tabellen. Die Tabellen koennen ueber passende Felder miteinander verbunden werden.
2. Grundlagen: Tabellen, Felder und Datensaetze
Eine Tabelle besteht aus Feldern und Datensaetzen. Die Felder stehen als Spaltenueberschriften oben in der Tabelle. Ein Datensatz ist eine Zeile.
| BuchID | Titel | Erscheinungsjahr | Seitenzahl |
|---|---|---|---|
| 1 | Tschick | 2010 | 256 |
| 2 | Rico, Oskar und die Tieferschatten | 2008 | 224 |
| 3 | Die unendliche Geschichte | 1979 | 480 |
- Feld: eine Eigenschaft, zum Beispiel
TiteloderSeitenzahl. - Datensatz: eine vollstaendige Zeile, zum Beispiel ein bestimmtes Buch.
- Datentyp: legt fest, welche Art von Daten gespeichert wird.
3. Primaerschluessel und Fremdschluessel
Damit jeder Datensatz eindeutig erkennbar ist, bekommt jede Tabelle einen
Primaerschluessel. Meistens ist das ein Feld mit einer automatisch erzeugten Zahl,
zum Beispiel BuchID.
Primaerschluessel
Ein Primaerschluessel identifiziert jeden Datensatz eindeutig. In Access eignet sich dafuer haeufig der Datentyp AutoWert.
Wenn eine Tabelle auf einen Datensatz aus einer anderen Tabelle verweist,
benutzt sie einen Fremdschluessel. Beispiel: In der Tabelle Buecher
steht das Feld AutorID. Es verweist auf die passende Person in der
Tabelle Autoren.
Wichtig fuer Microsoft Access
Wenn der Primaerschluessel in der Ursprungstabelle den Datentyp AutoWert hat, muss der passende Fremdschluessel in der anderen Tabelle den Datentyp Zahl mit der Feldgroesse Long Integer haben.
4. Vollstaendiges Datenmodell
Unsere Datenbank besteht aus fuenf Tabellen. Die Namen sind absichtlich ohne Umlaute geschrieben, damit sie in Access, Formularen und spaeteren Abfragen unkompliziert nutzbar sind.
Autoren AutorID (PK) Vorname Nachname Geburtsjahr Buecher BuchID (PK) Titel Erscheinungsjahr Seitenzahl AutorID (FK -> Autoren.AutorID) Klassen KlasseID (PK) Klassenbezeichnung Klassenstufe Schueler SchuelerID (PK) Vorname Nachname Geburtsdatum KlasseID (FK -> Klassen.KlasseID) Ausleihen AusleiheID (PK) BuchID (FK -> Buecher.BuchID) SchuelerID (FK -> Schueler.SchuelerID) Ausleihdatum Rueckgabedatum
Beziehungen im Modell
- Ein Autor kann viele Buecher geschrieben haben. Das ist eine 1:n-Beziehung.
- Eine Klasse kann viele Schueler haben. Das ist eine 1:n-Beziehung.
- Ein Schueler kann viele Buecher ausleihen, und ein Buch kann im Laufe der Zeit von vielen Schuelern ausgeliehen werden. Das ist eine n:m-Beziehung.
- Die n:m-Beziehung zwischen
BuecherundSchuelerwird durch die ZwischentabelleAusleihengeloest.
5. Tabellen in Access erstellen
Erstelle in Microsoft Access eine neue leere Datenbank (schulbibliothek_[vorname]_[nachname].accdb z.B. schulbibliothek_max_mustermann.accdb).Lege danach die folgenden Tabellen in der Entwurfsansicht an.
Tabelle: Autoren
| Feldname | Datentyp in Access | Hinweis |
|---|---|---|
| AutorID | AutoWert | Primaerschluessel |
| Vorname | Kurzer Text | Vorname des Autors |
| Nachname | Kurzer Text | Nachname des Autors |
| Geburtsjahr | Zahl | Feldgroesse: Integer |
Tabelle: Buecher
| Feldname | Datentyp in Access | Hinweis |
|---|---|---|
| BuchID | AutoWert | Primaerschluessel |
| Titel | Kurzer Text | Titel des Buches |
| Erscheinungsjahr | Zahl | Feldgroesse: Integer |
| Seitenzahl | Zahl | Feldgroesse: Integer |
| AutorID | Zahl | Fremdschluessel; Feldgroesse: Long Integer |
Tabelle: Klassen
| Feldname | Datentyp in Access | Hinweis |
|---|---|---|
| KlasseID | AutoWert | Primaerschluessel |
| Klassenbezeichnung | Kurzer Text | Zum Beispiel 5-1, 5-2, 5-3, 9-1, 9-2 oder 9-3 |
| Klassenstufe | Zahl | Zum Beispiel 5 oder 9; Feldgroesse: Integer |
Tabelle: Schueler
| Feldname | Datentyp in Access | Hinweis |
|---|---|---|
| SchuelerID | AutoWert | Primaerschluessel |
| Vorname | Kurzer Text | Vorname |
| Nachname | Kurzer Text | Nachname |
| Geburtsdatum | Datum/Uhrzeit | Geburtsdatum |
| KlasseID | Zahl | Fremdschluessel; Feldgroesse: Long Integer |
Tabelle: Ausleihen
| Feldname | Datentyp in Access | Hinweis |
|---|---|---|
| AusleiheID | AutoWert | Primaerschluessel |
| BuchID | Zahl | Fremdschluessel; Feldgroesse: Long Integer |
| SchuelerID | Zahl | Fremdschluessel; Feldgroesse: Long Integer |
| Ausleihdatum | Datum/Uhrzeit | Datum der Ausleihe |
| Rueckgabedatum | Datum/Uhrzeit | Kann leer bleiben, solange das Buch noch ausgeliehen ist |
6. Beziehungen und referentielle Integritaet
Nachdem alle Tabellen angelegt wurden, werden sie in Access miteinander verbunden. Oeffne dazu die Beziehungsansicht.
- Fuege die Tabellen
Autoren,Buecher,Klassen,SchuelerundAusleihenhinzu. - Ziehe
Autoren.AutorIDaufBuecher.AutorID. - Ziehe
Klassen.KlasseIDaufSchueler.KlasseID. - Ziehe
Buecher.BuchIDaufAusleihen.BuchID. - Ziehe
Schueler.SchuelerIDaufAusleihen.SchuelerID. - Aktiviere jeweils Referentielle Integritaet.
- Klicke auf Erstellen.
Was bedeutet referentielle Integritaet?
Referentielle Integritaet sorgt dafuer, dass ein Fremdschluessel nur auf
vorhandene Datensaetze verweisen darf. Dadurch kann zum Beispiel keine
Ausleihe fuer einen Schueler gespeichert werden, den es in der Tabelle
Schueler gar nicht gibt.
Typischer Fehler
Wenn Access keine Beziehung erstellen kann, stimmen oft die Datentypen nicht. Pruefe dann: Der Primaerschluessel ist AutoWert, der dazugehoerige Fremdschluessel ist Zahl mit Feldgroesse Long Integer.
7. Beispieldaten
Trage zuerst Daten in die Tabellen ein, die keine Fremdschluessel enthalten:
Autoren und Klassen. Danach folgen Buecher,
Schueler und zuletzt Ausleihen.
Autoren
| AutorID | Vorname | Nachname | Geburtsjahr |
|---|---|---|---|
| 1 | Wolfgang | Herrndorf | 1965 |
| 2 | Andreas | Steinhoefel | 1962 |
| 3 | Michael | Ende | 1929 |
| 4 | J. K. | Rowling | 1965 |
Buecher
| BuchID | Titel | Erscheinungsjahr | Seitenzahl | AutorID |
|---|---|---|---|---|
| 1 | Tschick | 2010 | 256 | 1 |
| 2 | Rico, Oskar und die Tieferschatten | 2008 | 224 | 2 |
| 3 | Die unendliche Geschichte | 1979 | 480 | 3 |
| 4 | Harry Potter und der Stein der Weisen | 1997 | 336 | 4 |
Klassen
| KlasseID | Klassenbezeichnung | Klassenstufe |
|---|---|---|
| 1 | 5-1 | 5 |
| 2 | 5-2 | 5 |
| 3 | 5-3 | 5 |
| 4 | 9-1 | 9 |
| 5 | 9-2 | 9 |
| 6 | 9-3 | 9 |
Schueler
| SchuelerID | Vorname | Nachname | Geburtsdatum | KlasseID |
|---|---|---|---|---|
| 1 | Mina | Schneider | 12.03.2011 | 4 |
| 2 | Jonas | Becker | 25.08.2011 | 5 |
| 3 | Lea | Hoffmann | 03.11.2015 | 1 |
| 4 | Emir | Yilmaz | 19.06.2010 | 6 |
Ausleihen
| AusleiheID | BuchID | SchuelerID | Ausleihdatum | Rueckgabedatum |
|---|---|---|---|---|
| 1 | 1 | 1 | 02.09.2026 | 16.09.2026 |
| 2 | 3 | 2 | 08.09.2026 | |
| 3 | 4 | 4 | 10.09.2026 | |
| 4 | 2 | 3 | 14.09.2026 | 21.09.2026 |
8. Schueleraufgaben
Aufgabe 1: Tabellen anlegen
- Erstelle eine neue Access-Datenbank mit dem Namen
Schulbibliothek. - Lege alle fuenf Tabellen aus dieser Anleitung in der Entwurfsansicht an.
- Setze in jeder Tabelle den passenden Primaerschluessel.
- Achte besonders auf die Datentypen der Fremdschluessel.
Aufgabe 2: Beziehungen erstellen
- Oeffne die Beziehungsansicht.
- Erstelle alle vier Beziehungen aus dem Datenmodell.
- Aktiviere bei jeder Beziehung die referentielle Integritaet.
- Speichere das Beziehungsfenster.
Aufgabe 3: Daten eingeben
- Gib die Beispieldaten in der richtigen Reihenfolge ein.
- Fuege zwei weitere Buecher hinzu.
- Fuege zwei weitere Schuelerinnen oder Schueler hinzu.
- Speichere mindestens drei neue Ausleihen.
Aufgabe 4: Pruefen und erklaeren
- Versuche, in
Buecher.AutorIDeine AutorID einzutragen, die es inAutorennicht gibt. - Notiere, was Access meldet.
- Erklaere mit eigenen Worten, warum diese Meldung sinnvoll ist.
9. Forscheraufgaben
Die Forscheraufgaben sind fuer schnelle Gruppen oder fuer eine Vertiefung geeignet. Sie koennen auch als Partnerarbeit bearbeitet werden.
Forscherauftrag A: Abfragen planen
Ueberlege, welche Tabellen du fuer die folgenden Fragen brauchst:
- Welche Buecher sind zurzeit ausgeliehen?
- Welche Schuelerinnen und Schueler aus der Klasse 9-2 haben schon ein Buch ausgeliehen?
- Welche Buecher wurden von Autorinnen oder Autoren mit Geburtsjahr nach 1960 geschrieben?
- Welche Klasse hat die meisten Ausleihen?
Forscherauftrag B: Warum eine Zwischentabelle?
Erklaere, warum die Tabelle Ausleihen gebraucht wird.
Was waere schwierig, wenn man die ausgeliehenen Buecher direkt in der
Tabelle Schueler speichern wuerde?
Forscherauftrag C: Datenbank verbessern
Plane eine Erweiterung der Datenbank. Moegliche neue Tabellen sind
Kategorien, Regale oder Verlage.
Zeichne auf, welche Felder die neue Tabelle braucht und mit welcher
vorhandenen Tabelle sie verbunden werden soll.
10. Begriffszusammenfassung
| Begriff | Erklaerung | Beispiel in dieser Datenbank |
|---|---|---|
| Tabelle | Sammlung gleichartiger Daten in Zeilen und Spalten. | Buecher, Schueler, Ausleihen |
| Feld | Eine Eigenschaft eines Datensatzes. | Titel, Nachname, Ausleihdatum |
| Datensatz | Eine vollstaendige Zeile in einer Tabelle. | Ein bestimmtes Buch oder ein bestimmter Schueler. |
| Datentyp | Legt fest, welche Werte in einem Feld gespeichert werden duerfen. | Kurzer Text, Zahl, Datum/Uhrzeit |
| Primaerschluessel | Eindeutige Kennzeichnung eines Datensatzes. | BuchID, SchuelerID |
| Fremdschluessel | Feld, das auf den Primaerschluessel einer anderen Tabelle verweist. | AutorID in Buecher |
| 1:n-Beziehung | Ein Datensatz auf der einen Seite gehoert zu mehreren Datensaetzen auf der anderen Seite. | Eine Klasse hat viele Schueler. |
| n:m-Beziehung | Viele Datensaetze koennen mit vielen anderen Datensaetzen verbunden sein. | Viele Schueler koennen viele Buecher ausleihen. |
| Zwischentabelle | Tabelle, die eine n:m-Beziehung in zwei 1:n-Beziehungen aufteilt. | Ausleihen |
| Referentielle Integritaet | Regel, die verhindert, dass Beziehungen auf nicht vorhandene Datensaetze zeigen. | Eine Ausleihe darf nur fuer vorhandene Buecher und vorhandene Schueler gespeichert werden. |
11. Abschlusscheck
Am Ende sollte deine Datenbank folgende Punkte erfuellen:
- Alle fuenf Tabellen sind vorhanden.
- Jede Tabelle hat einen Primaerschluessel.
- Alle Fremdschluessel haben den Datentyp Zahl mit Feldgroesse Long Integer.
- Alle Beziehungen sind erstellt.
- Referentielle Integritaet ist bei allen Beziehungen aktiviert.
- Beispieldaten wurden in sinnvoller Reihenfolge eingegeben.
- Die Zwischentabelle
AusleihenverbindetBuecherundSchueler.
