Datenbankaufbau

Das relationale Schema der Stundenplanversion 2.0

"Index" und "Null erlaubt"-Werte in Klammern sind Ist-Werte von Sybase. Die Nullwerte wurden bei der Entwicklung etwas frei gehandhabt.
Die Fremdschlüssel sind ohne Löschweitergabe um nicht versehentlich Unterrichtsstunden zu löschen. Zum Löschen ist "Wartung" zu verwenden.
Durch Trigger wird verhindert, dass ein Dozent zum selben Termin an zwei Orten sein kann.
Eine Tabelle MSysConf ist für die Nutzung von SQL-Datenbanken durch MSAccess anzulegen z.B. für eigene Auswertungen durch MS Access. Siehe Microsofts Access Dokumentation.

ausklappen Tabelle Dozent

Dozent/Lehrer/Ausbilder usw. welcher Unterrichtstunden geben kann.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
DozentID VarChar(5) x - -(x) Namensabkürzung
Titel VarChar(20) - - x
Vorname VarChar(20) - - x
Name VarChar(20) - - -(x)
weiblich bit - - - als Herr/Frau angezeigt
FachbereichID Varchar(3) x Fachbereich x zum Filtern verwendet
Stundensatz money - - x für Vorbelegung beim erstellen neuer Unterrichtstunden. Die Währung wird nicht gespeichert und wird nur aus der Windows-Systemsteuerung übernommen.

ausklappen Tabelle Dozent_anwesend

Die Tabelle repräsentiert die Anwesenheit eines Dozenten und somit das eine Unterrichtsstunde zugewiesen werden kann. Durch setzen von "autom. Anwesenheit" im Programm wird beim anlegen einer Unterrichtsstunde auch eine entsprechende Zeile hier eingetragen.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
Tag DateTime - Dozent_Kalender x Datum
Stunde smallint - Dozent_Kalender x Stundennummer
DozentID VarChar(5) - Dozent_Kalender x Dozent/Lehrer

ausklappen Tabelle Dozent_Kalender

Die Tabelle repräsentiert einen Termin (anwesend oder nicht anwesend) eines Dozenten und somit auch das eine Unterrichtsstunde zugewiesen werden kann. Durch setzen von "autom. Anwesenheit" im Programm wird beim anlegen einer Unterrichtsstunde auch eine entsprechende Zeile zuerst hier eingetragen.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
Tag DateTime - Tag x Datum
Stunde Byte - Stunde x Stundennummer
DozentID VarChar(5) - Dozent x Dozent/Lehrer
Bemerkung VarChar(20) - - x Benennung des Termins

ausklappen Tabelle Ort

Ort/Zimmer/Raum in dem die Unterrichtsstunden stattfinden können.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
OrtsID VarChar(5) x - x Ortsabkürzung
Ortsbezeichnung VarChar(20) - - x
Plaetze Int - - x wird im Stundenplan nicht ausgewertet
FachbereichID Varchar(3) - Fachbereich x zum Filtern verwendet

ausklappen Tabelle Nutzung

Wird im Stundenplan als Fach bezeichnet.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
NutzungsID VarChar(7) x - -(x) Fachabkürzung
Nutzungsbezeichnung VarChar(55) - - x
FachbereichID Varchar(3) x(-) Fachbereich x zum Filtern verwendet
Soll Int - - x kann weggelassen werden! Für einfache Soll-Ist Vergleiche der Stundenzahlen in den Summen

ausklappen Tabelle SG

Seminargruppe/Klasse/Lehrgangsgruppe welche an Unterrichtstunden teilnehmen kann.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
SGID VarChar(5) x - -(x) Seminargruppenabkürzung
SGBezeichnung VarChar(20) - - x
FachbereichID Varchar(3) - Fachbereich x zum Filtern verwendet
OrtsID VarChar(5) - Ort x Vorbelegung bei neuem Unterricht

ausklappen Tabelle SG_anwesend

Tage an denen die Seminargruppe anwesend ist und somit Unterrichtsstunden geplant werden können. Die Nichtanwesenheit kann im Programm farbig hervorgehoben werden.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
Tag DateTime -(x1)(x) Tag x Datum der Anwesenheit. Die SG muss anwesend sein, damit Unterricht verplant werden kann.
SGID VarChar(5) -(x1) SG -(x) Seminargruppenabkürzung
Semester smallint - - x Semesternummer, welche in der "Übersicht Anwesenheit" ausgegeben werden kann und die Färbung der Balkengrafik beeinflusst

ausklappen Tabelle Fachbereich

Muss nicht als Fachbereich/Abteilung/Institut/Sektion aufgefasst werden sondern dient als Filter um nicht alle Werte in Listen anzuzeigen.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
FachbereichID VarChar(3) x - -(x) Fachbereichsabkürzung
Fachbereichsbezeichnung VarChar(30) - - x

ausklappen Tabelle Tag

Enthält den Betriebskalender. Sonntage werden ausgelassen.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
Tag DateTime x - -(x) Namensabkürzung
Bemerkung VarChar(20) - - x sobald ein Wert vorhanden ist z.B. eine Feiertagsbezeichnung wird der gesamte Tag markiert

ausklappen Tabelle Stunde

Enthält die möglichen Stunden pro Tag.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
Stunde smallint x - -(x) Stundennummer die angezeigt werden soll. niedrigste Zahl (z.B. 0 oder 1) wird erste Stundennummer
Anfang DateTime - - x Anfangszeit der Stunde, wird nur angezeigt aber nicht auf Ungültigkeit geprüft
Ende DateTime - - x Endezeit der Stunde, wird nur angezeigt aber nicht auf Ungültigkeit geprüft

ausklappen Tabelle Typ

Für zusätzliche Angaben wie Klausur, Prüfung, Labor usw., welche oben rechts in der Unterrichtsstunde angezeigt werden kann.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
TypID VarChar(3) x - - Abkürzung für den Typ wie Kl, Prü oder Lab
TypBezeichnung VarChar(30)
(50 MSAccess)
- - x

ausklappen Tabelle Unterricht

Die Unterrichtsstunde ohne die SG. Die SG werden über die Tabelle Zuhoerer verknüpft. Dadurch können mehrere SG an einer Unterrichtsstunde teilnehmen. Durch den Primärschüssel wird eine Unterrichtsstunde durch einen Tag, eine Stunde, an einem Ort definiert!

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
Tag DateTime -(x1) Tag, Dozent_anwesend -(x) Datum
Stunde smallint -(x1) Stunde, Dozent_anwesend -(x) Stundennummer
OrtsID VarChar(5) -(x1) Ort -(x) Ort bzw. Zimmer
DozentID VarChar(5) x(-) Dozent_anwesend x Dozent/Lehrer
NutzungsID VarChar(7) - Nutzung -(x) Fach
Bemerkung VarChar(20) - - x freie Bemerkung, die andersfarbig angezeigt werden kann
TypID varchar(3) - Typ x
Stundensatz money - - x

ausklappen Tabelle Zuhoerer

Die zur Unterrichtsstunde gehörenden SG. Alle Felder werden zum Primärschlüssel!

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
Tag DateTime -(x1)(x2) Unterricht, SG_anwesend -(x) Datum
Stunde smallint -(x1)(x2) Unterricht -(x) Stundennummer
OrtsID VarChar(5) x(x1)(x2) Unterricht -(x) Ort bzw. Zimmer
SGID VarChar(5) x(x1) SG_anwesend -(x) Seminargruppe

ausklappen Tabelle Logbuch

Die Tabelle zeichnet eine Historie mit allen Änderungsoperationen (INSERT, DELETE) der Unterrichtsstunden auf. Dies wird über Trigger realisiert. Daher geht dies in MS Access und mySQL 4.0 nicht.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
Nutzer char(16) - - - Datenbankbenutzer
Typ char(1) - - - i für Insert, d für Delete
Tag DateTime - - x Datum der Unterrichtsstunde
Stunde Byte - - x Stundennummer
OrtsID VarChar(5) - - x Ort der Unterrichtsstunde
Wert VarChar(5) - - x Seminargruppe oder Dozent
Erstellt DateTime - - x Zeitpunkt der Logbucheintragung

ausklappen Tabelle RechteOrt

Es wird anhand des angemeldeten Datenbankbenutzers geprüft, ob eine Unterrichtsstunde mit dem Ort angelegt werden darf. Ist kein Nutzer dem Ort zugeordnet, dürfen alle Datenbankbenutzer den Ort verplanen. Die Prüfung erfolgt über Trigger und ist daher nicht in MS Access und mySQL 4.0 möglich.

Spaltenname Typ (Sybase) Index Fremdschlüssel Null erlaubt Bemerkung
OrtsID VarChar(5) - kann zu Ort - Ort bzw. Zimmer
Nutzer VarChar(15) - kann zu DBMS spezifischer Tabelle - Datenbankbenutzer