n:m oder 1:n < Datenbank-Modelle < Schule < Informatik < Vorhilfe
|
Aufgabe | Entwickeln Sie ein ER-Modell bei dem jeder Schüler mehrere Kurse besucht.
Alle Schülerdaten enthalten Anschrift, Name, Vorname, Erziehungsberechtiger ...
Geben Sie für jeden Kurs die Note an.
Erstellen Sie danach eine Datenbank mit allen notwendigen Tabellen.
|
Hallo,
es soll, wie oben zu sehen, ein ER-Modell entwickelt werden. Probiere jetzt schon einige Zeit in Open Office Base aber ich komme nicht wirklich zu einem Ergebnis.
Ich habe 2 Tabellen erstellt, jeweils t_schueler und t_kurs.
t_schueler besitzt den Primärschlüssel SID. t_kurs besitzt den Primärschlüssel KID (muss ich in diesem Fall überhaupt einen Primärschlüssel vergeben?)
Ich habe in der Tabelle t_kurz die Felder KID, Fach, Note und den Fremdschlüssel SID.
Mit diesen Informationen habe ich dann den Primärschlüssel der Tabelle t_schueler SID mit dem Feld SID der Tabelle t_kurs verknüpft. Base zeigt mir dann eine 1:n-Beziehung an.
Bis hier alles richtig?
Wenn ich nun Einige Schüler in t_schueler anlege, muss ich m ir dann die jeweiligen SID merken und in t_kurs eintragen, damit ich 100 % weiß was wozu gehört? Weil alleine funtioniert das nicht; bei Access von MS ist nach der Beziehungserstellung ein "popup" vorhaden, mit dem ich direkt in die Kurse der einzelnen Schueler eintragen kann.
Die Tabelle t_kurs soll aus je der Note und dem dazugehoerigen Fach bestehen, deshalb auch die 1:n-Beziehung, oder nicht?
Ich zwar jetzt eine Menge an Informationen, würde mich aber trotzdem um eine Anwort freuen.
fg
|
|
|
|
Hallo berger741!
Wenn ein Schüler mehrere Kurse besuchen soll bedeutet das, dass sowohl einem Kurs mehrere Schüler zugeordnet werden sollen, als auch einem Schüler mehrere Kurse. Hier liegt also eine m:n Beziehung vor. Um eine solche darzustellen, benötigt man eine Tabelle mehr als sonst, weil man die m:n Beziehung in eine 1:m und eine 1:n Beziehung aufsplitten muss. Du brauchst also zu deinen Tabellen t_schueler und t_kurs noch eine weitere, die die beiden verknüpft, z.B. eine t_belegung. Deshalb benötigst du auch in beiden Tabellen einen Primärschlüssel. Die Tabelle t_belegung hätte dann einen zusammengesetzten Primärschlüssel, bestehend aus KID und SID. (Diese tauchen dann in den anderen beiden Tabellen auch nicht mehr als Fremdschlüssel auf.)
Ich hoffe ich konnte dir weiterhelfen.
lg monsterbacke
|
|
|
|