MS Access Datenbank: Tabellenstruktur für Schule

klecksii

Ensign
Registriert
Apr. 2021
Beiträge
151
Guten Tag liebe Leute!


Ich bin gerade dabei mich in Access einzuüben und habe ein Problem bei dem Erstellen der Tabellenstruktur.

In diesem Beispiel geht es darum, eine Tabellenstruktur in Access zu erstellen für eine Klassen-Verwaltung (Schulen).
Ich möchte für alle Klassen festlegen können zu welcher Stunde welches Fach dran kommt sowie welcher Lehrer unterrichtet.

Ebenso soll festgelegt werden können, welcher Lehrer der Klassenlehrer für die jeweilige Klasse ist.


Beispiel: ich möchte festlegen bzw. einsehen, zu welcher Stunde in Klasse 3a am Montag Deutschunterrist ist, und welcher Lehrer den Unterricht macht.


Nun stellt sich mir folgende Frage: wie viele Tabellen werden benötigt, und was kommt wo hinein?
Mein Versuch:

ac.jpg


Zwei Verbindungen wurden schon erstellt. Nun würde ich noch weitere 6-mal die Lehrer.LID mit der Klasse.XLehrer verbinden, und ebenso mit Faecher.FID + XStunde.

XStunde steht für das Fach, und XLehrer für den Lehrer der an dem Tag in der Klasse unterrichtet.

Aber irgendwie kommt mir das Ganze nicht ganz richtig vor, aber ich komme nicht auf die Lösung…
Am Ende soll es möglich sein, per Formular einzutragen, welcher Lehrer zur welcher Zeit wann und wo unterrichtet. Jedoch kriege ich nicht mal die Tabellenstruktur gebacken :(


Würde mich um Unterstützung sehr freuen!
 
Das was @PHuV sagt.

Nur so viel: Was machst du, wenn es eine 8. Stunde gibt? Nachsitzen, AGs oder sowas? Und Freistunden? Steht da dann überall NULL? Denk mal drüber nach ob Stunde 1-7 in der Klasse so eine gute Idee sind und ob es da nicht andere Möglichkeiten gibt..
 
Naja, mit Hausaufgaben hat das erstmal nichts zu tun. Ich mache das aus eigenem Antrieb, und ich dachte Foren sind dazu da, anderen Menschen weiterzuhelfen?

Den Gedanken von Raijin hatte ich auch. Was passiert wenn es eine 8. Stunde geben sollte?
Ich nehme mal an, damit willst Du sagen, das man die Stunden selber als Tabelle separieren sollte, gell?

Den Gedanken hatte ich auch, bin dann aber nicht weitergekommen wie ich das machen soll, und ob das zielführend ist.

Und die Freistunde könnte man ja in die Tabelle "Faecher" einspeisen. Ob das am Ende alles Sinn macht... Ich weiß es nicht.
 
Zuletzt bearbeitet:
Damit Du ein vernuenftiges relationales Datenbankmodell hast solltest Du Dich mit der Normalisierung beschaeftigen. Es gibt fuer die Datenmodellierung Tutorials im Netz (z.B. hier). Ich selber fand damals (TM) das Buch Relationale Datenbanken von Hermann Sauer sehr nuetzlich. Der Fokus liegt zwar direkt auf SQL aber die Grundlagen sind sehr ausfuehrlich erklaert und auch heute noch gueltig. Wenn Du das Prinzip verstanden hast ist es anschliessend nicht schwierig es in Access umzusetzen. Es sollte im Netz genug Anleitungen, Tutorials etc. zum Thema geben.
Auch wenn Du es nur fuer Dich selber machen moechtest solltest Du Wert auf ein gutes Datenbankmodell legen. Designfehler bei Datenbankmodellen entwickeln sich sehr schnell zu laestigen Problemen. Deshalb ist es empfehlenswert hier von Anfang an sauber zu arbeiten.
Noch ein paar Worte zu Deinem gezeigten Datenmodell. Die Tabelle "Klassen" hat zuviele Elemente. Ausserdem kannst Du momentan fuer die Klasse den Schulplan nur fuer genau einen Tag festlegen (gehe aber davon aus dass an verschiedenen Tagen unterschiedliche Faecher unterrichtet werden). Deshalb wirst Du noch mehrere Hilfstabellen benoetigen damit Du fuer Deinen Zweck eine vernuenftige Normalform erhaeltst.
 
Zuletzt bearbeitet:
Danke für Deine Antwort. Ich habe versucht das mit der Normalisierung zu verstehen, habe mehrere Tutorials angesehen. Das Ergebnis habt ihr ja gesehen... Irgendwie verstehe ich das ganze nicht, irgendwo ist noch ein Knoten der gelöst werden muss. Vielleicht hat jemand noch ein gutes Tutorial dazu?

Und mir geht es darum ein gutes Datenbankmodell zu haben, so wie Du geschrieben hast, und nicht nach dem Motto "Hauptsache das läuft irgenwie". Mir ist es wirklich wichtig, das ganze zu verstehen und korrekt umzusetzen.

Und danke nochmal für den Hinweis mit den Tagen, das hatte ich gar nicht auf dem Schirm!

Für Tipps bin ich immer offen!
Danke
 
Zuletzt bearbeitet:
.
 
Zuletzt bearbeitet: (beitrag hat sich überschnitten mit vorherigen)
klecksii schrieb:
Naja, mit Hausaufgaben hat das erstmal nichts zu tun. Ich mache das aus eigenem Antrieb, und ich dachte Foren sind dazu da, anderen Menschen weiterzuhelfen?
Ja, aber wir können Dir keine komplette Schulung hier erläutern oder das Lernen abnehmen. Das Thema ist zu komplex, um das im trägen Forenstil Dir annähernd zu vermitteln. Daher, mal einen Kurs dazu machen, das wäre effektiver.
 
  • Gefällt mir
Reaktionen: floq0r
Da ist natürlich was dran. Ich hatte vor einigen Jahren mal an einem Kurs teilgenommen. Habe danach aber nie aktiv mit Access gearbeitet, dementesprechend ist vieles an Wissen wieder flöten gegangen. Die damaligen Beispiele im Kurs waren auch recht einfach dargestellt, die Tabellenstrukturen waren recht einfach aufgebaut. Da hatten wir mit max. 4 verknüpften Tabellen gearbeitet, z.B. für Bestellvorgänge von Kunden.
 
klecksii schrieb:
Die damaligen Beispiele im Kurs waren auch recht einfach dargestellt, die Tabellenstrukturen waren recht einfach aufgebaut. Da hatten wir mit max. 4 verknüpften Tabellen gearbeitet, z.B. für Bestellvorgänge von Kunden.
Viel mehr Tabellen braucht es für solche einfachen Szenarien auch nicht. Du wirst auch nicht viel mehr benötigen. Schau dir in diesem Zusammenhang mal dieses Video an. Das dort behandelte Szenario ist deinem sehr ähnlich und anhand dessen werden die Normalformen erklärt. Ich denke damit kannst du deine Kenntnisse gut auffrischen und wirst einen großen Schritt weiterkommen. Spiel das in der Datenbank erstmal 1:1 so nach und dann fügst du deine Tabellen - den Stundenplan - nach demselben Schema hinzu.


Die Problematik bei solchen Fragen in einem Forum ist, dass es gegen die Regeln verstößt, bei Hausaufgaben zu helfen. Genau solche Aufgaben sind jedoch absoluter Standard in Schule und Ausbildung, denn genau so wird das Basiswissen vermittelt. Daher ist es nachvollziehbar, dass der Verdacht schnell aufkommt - auch wenn es manchmal vielleicht auch nicht gerechtfertigt sein mag. Dennoch ist es so oder so besser, den Fragenden beim Finden der Lösung zu unterstützen als sie ihm fertig zu präsentieren. Mit obigem Video sollte deutlich werden worum es beim Datenbankdesign geht - Vermeidung von Redundanz und indirekten Abhängigkeiten.
 
  • Gefällt mir
Reaktionen: PHuV
oot:
Hi Raijin,
ich erkenne die heeren Ziele an und es spricht für euch. Allerdings gilt auch - im Zweifel zugunsten des Angeklagten.
Gleichzeitig bedient das ganze Forum unsere Bequemlichkeit, sprich alle Info's wären auch anderweitig mit mehr Fleiß erkundbar. Deshalb tu ich mich schwer, eine Nutzung die ich mir erlaube anderen abzusprechen.
 
Zuletzt bearbeitet:
Micke schrieb:
alle Info's wären auch anderweitig mit mehr Fleiß erkundbar
Dem widerspreche ich auch nicht, aber es ist ein Unterschied ob man selbst aktiv nach einer Lösung sucht oder ob man andere nach einer Lösung fragt, weil man das Prinzip dahinter noch nicht verstanden hat.

Gerade zum Thema Datenbankdesign gibt es derart viele Informationsquellen, dass man mit ein wenig Recherche ziemlich schnell auf hilfreiche Erklärungen und Tutorials stößt Das von mir verlinkte Video habe ich in <30 Sekunden gefunden und es behandelt ein sehr ähnliches Beispiel wie @klecksii es hier gepostet hat. Folgt man den Erklärungen, kann man es mit wenigen Handgriffen an das eigene Szenario anpassen - wenn man es verstanden hat ;)

Außerdem ist es ja nicht so, dass gar keine Hilfe gegeben wurde. Schließlich setzt sich dein Beitrag ja aus Links zu 3 der 9 vorangegangenen Beiträge zusammen.


Wie auch immer, schauen wir mal wie weit @klecksii mit den gegebenen Informationen kommt. Wir können uns ja gerne den nächsten Entwicklungsschritt der Tabellen anschauen und dann sieht man ja ob das Prinzip verstanden wurde, wo man noch nachbessern muss und wie man mittels select/join an die gewünschten Informationen kommt.
 
  • Gefällt mir
Reaktionen: PHuV
klecksii schrieb:
Da ist natürlich was dran. Ich hatte vor einigen Jahren mal an einem Kurs teilgenommen. Habe danach aber nie aktiv mit Access gearbeitet, dementesprechend ist vieles an Wissen wieder flöten gegangen. Die damaligen Beispiele im Kurs waren auch recht einfach dargestellt, die Tabellenstrukturen waren recht einfach aufgebaut. Da hatten wir mit max. 4 verknüpften Tabellen gearbeitet, z.B. für Bestellvorgänge von Kunden.
Die Frage ist hier, willst Du das nur zum Spaß machen oder steckt ein besonderer Grund dahinter (künftige berufliche Veränderung)? Je nach Hintergrund ändert sich die Empfehlung. Nur mal so, wenn Du gescheit Datenbanken machen willst, dann würde ich nicht auf Access setzen. Zum Spaß ist es dagegen vollkommen ok.
 
Zurück
Oben