Verstoß gegen die dritte Normalform?

PCore

Benutzer
Beiträge
5
Hallo,
ich komme an einer Stelle nicht weiter. Ich habe eine Datenbank Schüler. In der finde ich folgende Attribute vor:
SchülerID| Name | Vorname | Klasse (Fremdschlüssel aus der Tabelle Klasse) | In der Klasse seit

Verstößt das jetzt gegen die dritte Normalform, weil "In der Klasse seit" abhängig zu Klasse ist oder kann ich das auch in einer Tabelle lassen?

Liebe Grüße
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.848
er kann ja später in die Klasse gekommen sein, weil vielleicht erst zugezogen oder wegens Extrarunde ... also ja, kann drin bleiben, meiner Meinung nach.
 

castorp

Datenbank-Guru
Beiträge
505
Hmm, meiner Meinung nach gehört das Attribut nicht in eine Tabelle die "Schüler" heisst (ich hoffe Du meinst Tabelle - eine "Datenbank" ist eine Ansammlung vieler Tabellen).

Da ein Schüler im Laufe seines Schülerdaseins in mehr als einer Klasse ist, ist das für mich eine klassische many-to-many Beziehung, d.h. da müsste meiner Meinung nach eine Linktabelle vorhanden sein:

- Schüler (SchülerId, Name, Vorname)
- Teilnahme (SchülerID, KlassenId, "In der Klasse Seit")

Lässt man den Fremdschlüssel in der Tabelle Schüler, so kann man z.B. nicht ermitteln in welcher Klasse dieser Schüler letztes Jahr war.
 

PCore

Benutzer
Beiträge
5
Danke für eure Antworten. In der Aufgabe steht aber explizit, dass ein Schüler oder eine Schülerin genau einer Klasse zugewiesen wird. Und das keine Historie mit aufgenommen wird. Es handelt sich hierbei also um eine 1:n Beziehung. Nur ist jetzt die Frage, ob die mit einer zusätzlichen Tabelle aufgelöst werden soll.
Hmm, meiner Meinung nach gehört das Attribut nicht in eine Tabelle die "Schüler" heisst (ich hoffe Du meinst Tabelle - eine "Datenbank" ist eine Ansammlung vieler Tabellen).

Da ein Schüler im Laufe seines Schülerdaseins in mehr als einer Klasse ist, ist das für mich eine klassische many-to-many Beziehung, d.h. da müsste meiner Meinung nach eine Linktabelle vorhanden sein:

- Schüler (SchülerId, Name, Vorname)
- Teilnahme (SchülerID, KlassenId, "In der Klasse Seit")

Lässt man den Fremdschlüssel in der Tabelle Schüler, so kann man z.B. nicht ermitteln in welcher Klasse dieser Schüler letztes Jahr war.
 
Werbung:
Oben