Blaubart: Schulklassen

Moin.

Ich habe eine Frage zum Entwurf eines Datenbanksystems, das zu jedem Zeitpunkt angeben soll, in welcher (Schul-)Klasse sich die dort erfaßten Schüler befinden, wann sie eingeschult wurden, ob und wann sie ihren Abschluß gemacht haben usw. Allerdings soll vermieden werden, daß die Daten in jedem Schuljahr von Hand nachgebessert werden müssen. Das sollte nur in Ausnahmefällen (z.B. beim Wiederholen einer Klasse) nötig sein.

Meine bisherigen Überlegungen förderten folgende Felder für eine Schülertabelle zutage:

name
vorname
eintrittsjahr
ausgleich
abschlussjahr

In "ausgleich" wird als Zahl festgehalten, ob der Schüler bereits sitzengeblieben ist (-1 für einmal sitzengeblieben, -2 für zweimal usw.) oder Klassen übersprungen hat (+1, +2 usw.). Auf diese Weise läßt sich -- unter Berücksichtigung des aktuellen Jahres -- ziemlich einfach die jetzige Klassenstufe ermitteln. Problematisch ist dabei nur, daß das Schuljahr nicht mit dem Jahreswechsel beginnt. Dadurch ist also noch etwas Trickserei mit einem Stichtag (oder -monat) nötig.

Und genau hier komme ich nun ins Grübeln, ob es nicht doch einen besseren Weg gibt, dieses System zu gestalten. Liegt z.B. besagter Stichtag nicht jedes Jahr gleich, werden mitunter falsche Angaben geliefert.

Hat jemand Vorschläge für ein Design, das die Sache besser in den Griff bekommt?

  1. Hi,

    Hat jemand Vorschläge für ein Design, das die Sache besser in den Griff bekommt?

    nun, Du moechtest ermitteln, in welcher Jahrgangsstufe der Schueler im Moment "steckt". Dazu hast Du eine einfache Tabelle designt und einige Ueberlegungen angestellt. Ich finde diese ueberzeugend und kann ad hoc zumindest keine Verbesserungsvorschlaege machen.

    Vielleicht aber ein Hinweis: eine "harte" Information hier scheint die Jahrgangsstufe zu sein. Da moechtest Du sichergestellt sehen, dass "die Daten stimmen". Da solltest Du ein UI drumherum bauen, das Falscheingaben so zu sagen ausschliesst, bzw. dass, wenn die Daten nicht stimmen, immer klar zu erkennen ist, dass es an der Erfassungsqualitaet gemangelt hat.

    Gruss,
    Ludger

  2. Hallo Blaubart,

    [...] Problematisch ist dabei nur, daß das Schuljahr nicht mit dem Jahreswechsel beginnt. Dadurch ist also noch etwas Trickserei mit einem Stichtag (oder -monat) nötig.

    Und genau hier komme ich nun ins Grübeln, ob es nicht doch einen besseren Weg gibt, dieses System zu gestalten. Liegt z.B. besagter Stichtag nicht jedes Jahr gleich, werden mitunter falsche Angaben geliefert.

    Ich würde eine 2. Tabelle anlegen, in der für jedes (Schul-)Jahr (das in der Schülertabelle hinterlegt wird, evtl. auch rückwirkend) die Stichtage hinterlegt werden. Damit könntest Du durch einen einfachen Vergleich der Stichtage (des Jahres) mit einem beliebigen Datum den Stand genau erfassen.

    Hat jemand Vorschläge für ein Design, das die Sache besser in den Griff bekommt?

    Ich würde auf jeden Fall noch mind. 3 Felder vorsehen, und zwar
    1. Abgang
    2. Zugang
    3. Wechsel

    ausserplanmässeg, während eines Schuljahres.

    Evtl. diese 3 Felder mit Datum (dann kann man immer tagesgenau abfragen)

    Grüsse
    Frankie

  3. Hallo Blaubart,

    Das mit dem Stichtag ist doch eigentlich kein Problem.
    Du musst nur wissen, in welchem Schuljahr ein Schüler eingeschult wurde. Das ist über das Einschulungsjahr eindeutig definiert:
    z.B. Jahr 2000 --> Schuljahr 2000/2001

    Dann musst Du nur noch bestimmen, welches Schuljahr heute ist (da spielt der Stichtag eine Rolle, aber nur der diesen Jahres, d.h. wenn sich der mal ändert ist das auch kein Problem)
    2005, vor dem Stichtag --> Schuljar 2004/2005
    Klassenstufe ist demnach (2004 - 2000 + 1) = 5.

    Grüße

    Daniel

    1. Hi,

      Das mit dem Stichtag ist doch eigentlich kein Problem.

      soso, die Realitaet spielt da aber wohl nicht mit.

      Du musst nur wissen, in welchem Schuljahr ein Schüler eingeschult wurde. Das ist über das Einschulungsjahr eindeutig definiert:
      z.B. Jahr 2000 --> Schuljahr 2000/2001

      Man koennte auf die Idee kommen, eine Stichtagetabelle zu fuehren, oder diesen Kram in eine "Geschaeftslogikroutine" zu packen. Dummerweise haelt man sich nicht immer an Stichtage, z.B. wenn der Direktor Herrn Dr. Soundso ganz gut kennt, dann ist der Herr Dr. auf einmal im Foerderverein und das Kindchen in der 1.Klasse.

      Dann musst Du nur noch bestimmen, welches Schuljahr heute ist (da spielt der Stichtag eine Rolle, aber nur der diesen Jahres, d.h. wenn sich der mal ändert ist das auch kein Problem)
      2005, vor dem Stichtag --> Schuljar 2004/2005
      Klassenstufe ist demnach (2004 - 2000 + 1) = 5.

      Mann muss immer die Ausnahmen im Auge haben, sowohl beim Datendesign als auch beim Programmieren.

      Gruss,
      Ludger

      1. Hello,

        Man koennte auf die Idee kommen, eine Stichtagetabelle zu fuehren, oder diesen Kram in eine "Geschaeftslogikroutine" zu packen. Dummerweise haelt man sich nicht immer an Stichtage, z.B. wenn der Direktor Herrn Dr. Soundso ganz gut kennt, dann ist der Herr Dr. auf einmal im Foerderverein und das Kindchen in der 1.Klasse.

        Das ist ein typisches Problem für

        Stammdaten              kennzeichnen den Schüler als solches
          Änderungstypen          beschreiben, welche Eigenschaften sich wie ändern können
          Bewegungsdaten          enthalten die hinzugkommenden und weggefallenen Eigenschaften
          Basistyp                Legt einen Typ fest
          Basistyp_Eigenschaften  beschreibt den Basistyp

        Das ganze hat den Vorteil, dass man das ganze System zuu jedem Zeitpunkt beschreiben kann. Man muss die Änderungshistorie nur vom Startpunkt bis zum gewünschten Zeitpunkt durchlaufen lassen.

        Zwiwschendurch könnte man noch "Buchungsschnitte" speichern, um auch mal Daten ins Archiv befördern zu können.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
      2. Hallo Ludger,

        Wenn man genau erfassen will, wann wer eingeschult wurde, die Schule verlassen hat, eine Klasse übersprungen/durchgefallen ist usw. muss man natürlich viel mehr Ausnahmen begrücksichtigen.
        Die Anforderung bisher war aber nur, automatisch bestimmen zu können, in welcher Klassenstufe ein Schüler momentan ist.
        Dafür reichen die Daten, Einschulungsjahr und Korrektur (Jahr übersprungen/sitzen geblieben) aus.
        Den Stichtag braucht man nur, um aus dem aktuellen Datum das aktuelle Schuljahr zu bestimmen. Dazu braucht man auch keine Tabelle. Den kann man irgendwo festlegen und bei bedarf ändern.

        Das Einschulungsjahr muss natürlich in dem Fall das Jahr sein, in dem der Schüler in die 1. Klasse kam, nicht das Jahr, indem er an die Schule kam. Das interessiert ja in diesem Zusammenhang überhaupt nicht.

        Grüße

        Daniel

    2. hi,

      Das mit dem Stichtag ist doch eigentlich kein Problem.
      Du musst nur wissen, in welchem Schuljahr ein Schüler eingeschult wurde. [...]
      Dann musst Du nur noch bestimmen, welches Schuljahr heute ist [...]
      Klassenstufe ist demnach (2004 - 2000 + 1) = 5.

      wenn du nie "sitzengeblieben" bist, ist das schön für dich - die möglichkeit, dass es anderen durchaus passieren könnte, solltest du trotzdem nicht außer acht lassen ;-)

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hello,

        wenn du nie "sitzengeblieben" bist, ist das schön für dich - die möglichkeit, dass es anderen durchaus passieren könnte, solltest du trotzdem nicht außer acht lassen ;-)

        Es besteht auch über die Lebensdauer des Systems durchaus die Möglichkeit, dass eine unserer tollen Regierungen plötzlich Trimester einführt, damit das Abitur in 10 Jahren zu schaffen ist *gg*

        Nur zu dumm, dass die Lehrer dann auch mehr reinknolzen müssten. Wie sollen die das schaffen?

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
      2. Hallo wahsaga,

        Das war ja in der Tabelle schon berücksichtigt. Mir ging es in dem Beispiel darum zu veranschaulichen, welche Rolle der Stichtag spielt.
        Eine Korrektur für übersprungene/sitzen gebliebene Jahre muss man natürlich noch mit einrechnen.

        Grüße

        Daniel

      3. Hi,

        wenn du nie "sitzengeblieben" bist, ist das schön für dich - die möglichkeit, dass es anderen durchaus passieren könnte, solltest du trotzdem nicht außer acht lassen ;-)

        hey, da faellt mir gerade ein - ich hatte es schon fast vergessen - ich bin ja tatsaechlich von einem psychopatischen und verhaltensauffaeligen Mathematiklehrer etwa 6 Wochen vor dem Abiturtermin "abgeschossen" worden und musste dann Teile der "13" wiederholen. Uberfluessig zu sagen, dass ich dann im zweiten Versuch in "Mathe" als erster abgegeben habe (Note:2- - damit es nicht in die muendliche "Nachbearbeitung" geht - ja, alles geplant) und dann schnellstmoeglich die Arschloecher aus dem Paedabereich vergessen habe. (Amuesanterweise ist meine Frau auch Lehrerin und deren Eltern auch. Aber wegen unterschiedlicher Systemherkunft habe ich da mal ein Auge zugedrueckt. Im Osten war man irgendwie ehrlicher. Da waren die Lehrer die Progressiven und nicht wie bei uns DLD. ;-)

        Gruss,
        Ludger

    3. Dann musst Du nur noch bestimmen, welches Schuljahr heute ist (da spielt der Stichtag eine Rolle ...

      Genau das war der Grundgedanke meines bisherigen Designs. Das hast du soweit richtig erkannt.

      ... aber nur der diesen Jahres, d.h. wenn sich der mal ändert ist das auch kein Problem)

      Du hast tatsächlich recht. Das Schuljahr verlängert/verkürzt sich ja mit veränderlichem Stichtag für alle gleichermaßen, egal welche Klasse. Irgendwie ist mir dieses Detail vorher entgangen.

      Ebenfalls danke für die anderen Beiträge, auch wenn einiges über das hinausschießt, was ich eigentlich mit diesem System vorhab. ;)

  4. Hallo Blaubart

    Ich habe eine Frage zum Entwurf eines Datenbanksystems,

    Ich hebe den nächsten Satz hervor:

    das zu jedem Zeitpunkt angeben soll,

    Ich verstehe das so, dass man z.B. für den Termin 01.05.2002 ermitteln kann,

    in welcher (Schul-)Klasse sich die dort erfaßten Schüler befinden,

    Wenn das so ist, dann musst Du exakt die Jahre angeben, die wiederholt werden mussten (bzw. übersprungen wurden).

    wann sie eingeschult wurden, ob und wann sie ihren Abschluß gemacht haben usw. Allerdings soll vermieden werden, daß die Daten in jedem Schuljahr von Hand nachgebessert werden müssen. Das sollte nur in Ausnahmefällen (z.B. beim Wiederholen einer Klasse) nötig sein.

    name
    vorname
    eintrittsjahr
    ausgleich
    abschlussjahr

    In "ausgleich" wird als Zahl festgehalten, ob der Schüler bereits sitzengeblieben ist (-1 für einmal sitzengeblieben, -2 für zweimal usw.) oder Klassen übersprungen hat (+1, +2 usw.). Auf diese Weise läßt sich -- unter Berücksichtigung des aktuellen Jahres -- ziemlich einfach die jetzige Klassenstufe ermitteln. Problematisch ist dabei nur, daß das Schuljahr nicht mit dem Jahreswechsel beginnt. Dadurch ist also noch etwas Trickserei mit einem Stichtag (oder -monat) nötig.

    Das reicht somit nicht aus, um für _jeden_ Zeitpunkt den Zustand zu beschreiben. Du kannst den augenblicklichen Stand damit beschreiben, die Gegenwart. Du kannst nicht mit Sicherheit den Zustand zu einem vergangenen Termin beschreiben.

    Freundliche Grüße

    Vinzenz

    1. Hi,

      Das reicht somit nicht aus, um für _jeden_ Zeitpunkt den Zustand zu beschreiben. Du kannst den augenblicklichen Stand damit beschreiben, die Gegenwart. Du kannst nicht mit Sicherheit den Zustand zu einem vergangenen Termin beschreiben.

      nur die Vergangenheit kann man mit Sicherheit beschreiben, huestl.   ;-)

      Gruss,
      Ludger