Entwurf und Realisierung eines Datenbanksystems für das Fachsprachenzentrum der Universität Hannover Studienarbeit im Rahmen des Studiengangs ’Mathematik mit Studienrichtung Informatik’ an der Universität Hannover Betreuer: Prof. Dr. Udo Lipeck / Dr. Javier Garcı́a Daniela Mantel Mai 2001 Zusammenfassung Im Rahmen dieser Studienarbeit wurde für das Fachsprachenzentrum der Universität Hannover ein Datenbanksystem zur Erfassung von Teilnehmer- und Veranstaltungsdaten entworfen. Die Datenbank soll den Benutzern vor allem einen schnellen Überblick über die Leistungen der Kursteilnehmer geben und so die Erstellung von Zeugnissen und Zertifikaten unterstützen, sowie die Zusammenstellung der Daten für das Vorlesungsverzeichnis erleichtern. Für dieses Datenbanksystem wurde eine Benutzerschnittstelle programmiert und die Anmeldung zu Kursen des FSZ per Internet ermöglicht. Inhaltsverzeichnis 1 Einführung 1.1 Aufgabenstellung . . . . . . . . . . . . . . . 1.2 Datenanalyse . . . . . . . . . . . . . . . . . 1.2.1 Veranstaltungen . . . . . . . . . . . 1.2.2 Sprachrichtungen . . . . . . . . . . . 1.2.3 Lehrpersonen . . . . . . . . . . . . . 1.2.4 Teilnehmer . . . . . . . . . . . . . . 1.2.5 Prüfungen, Zeugnisse . . . . . . . . 1.2.6 Prüfungsleistungen der Teilnehmer . 1.2.7 Leistungsnachweise . . . . . . . . . . 1.2.8 Leistungsnachweise der Teilnehmer . 1.3 Anforderungen an die Benutzerschnittstelle 1.4 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 5 5 5 5 5 6 7 7 8 8 8 2 Modellierung 2.1 ER-Diagramme . . . . . . . . . . . . . 2.1.1 Veranstaltungen . . . . . . . . 2.1.2 Prüfungen . . . . . . . . . . . . 2.1.3 Integritätsbedingungen . . . . . 2.2 Relationenschema . . . . . . . . . . . . 2.2.1 Relationen zu den Entities . . . 2.2.2 Relationen zu den Beziehungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 10 11 12 12 12 15 . . . . . . . . . . . . . . . . . . . . . 3 Grundoperationen 16 3.1 Allgemeine Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 Grundoperationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3 Indexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4 Benutzerschnittstelle 4.1 Eingabe- und Übersichtsmasken 4.1.1 Teilnehmer . . . . . . . 4.1.2 Kurs . . . . . . . . . . . 4.1.3 Kursgruppe . . . . . . . 4.1.4 Prüfungsversuch . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 19 20 21 21 INHALTSVERZEICHNIS 4.2 4.3 3 4.1.5 Unicert Prüfung . . . . . . . . . . . 4.1.6 Weitere Such- und Eingabemasken . Übersicht der möglichen Datenmanipulation Das Anmeldungs-Applet . . . . . . . . . . . 5 Softwareentwurf 5.1 Komponenten . . . . . . . . . . . . 5.1.1 SQL-Datenbank . . . . . . 5.1.2 AttributeCombinations . . 5.1.3 DatabaseBasic . . . . . . . 5.1.4 FSZ . . . . . . . . . . . . . 5.1.5 FSZConfiguration . . . . . 5.1.6 FSZGUI . . . . . . . . . . . 5.2 Packages und Klassen . . . . . . . 5.2.1 Package fsz.util . . . . . . . 5.2.2 Package fsz . . . . . . . . . 5.2.3 fsz.gui . . . . . . . . . . . . 5.2.4 RegistrationApplet . . . . . 5.3 Realisierung der Grundoperationen 5.4 Das Klassendiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 22 24 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 27 28 28 28 28 28 29 29 29 30 30 30 32 6 Installation der Anwendung A Abbildungen A.1 Die Teilnehmermaske . . . . A.2 Die Kursmaske . . . . . . . A.3 Die Kursgruppenmaske . . . A.4 Die Prüfungsversuchmaske . A.5 Die Unicert-Maske . . . . . 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 34 35 35 36 36 Kapitel 1 Einführung 1.1 Aufgabenstellung Das Fachsprachenzentrum der Universität Hannover (FSZ) benötigt eine Datenbank zur Erfassung aller mit ihren Lehrveranstaltungen in Zusammenhang stehenden Daten. Diese umfassen: − alle Veranstaltungsdaten, die im Vorlesungsverzeichnis erscheinen, − Personaldaten der Teilnehmer an Kursen des FSZ, − Personaldaten der Lehrkräfte des FSZ, − Prüfungsleistungen der Teilnehmer, − Listen der von den Teilnehmern erworbenen Scheine. Die Datenbank soll in verschiedenen Anwendungsbereichen genutzt werden: − Aus ihr sollen, nach Eingabe der Daten durch die jeweiligen Dozenten bzw. das Sekretariat, das kommentierte sowie das kurze Vorlesungsverzeichnis erstellt werden. − Sie soll dem Sekretariat ermöglichen einen schnellen Überblick über die Leistungen der jeweiligen Teilnehmer zu erhalten und auf Grundlage der hier gespeicherten Daten Zeugnisse, Bescheinigungen u. ä. zu erstellen. − Es soll eine Verwaltung der Anmeldungen der Teilnehmer zu den Kursen stattfinden, d. h. die Anmeldungen via Internet sollen automatisch erfaßt werden und gruppenspezifische Listen aller Anmeldungen sollen abfragbar sein. Das Datenbanksystem soll auf einem Windows NT-Server installiert werden. Als DatenbankManagementsystem dient das SQL-System MySQL. Die Benutzerschnittstellen werden als Java-Applikationen auf den Clients installiert. 4 KAPITEL 1. EINFÜHRUNG 1.2 5 Datenanalyse Es lassen sich zunächst einige Datengruppen unterscheiden, die im folgenden näher beschrieben werden. 1.2.1 Veranstaltungen Es gibt Standardveranstaltungen, die in einem regelmäßigen Turnus stattfinden (jedes WS, jedes SS, jedes Semester). Jede Veranstaltung ist einer oder mehrerer Sprachrichtungen zugeordnet. Die Veranstaltungen sind zum Teil in mehrere Gruppen aufgeteilt. Eine Veranstaltung wird also auch im gleichen Semester von mehreren Lehrpersonen zu verschiedenen Zeiten abgehalten. Die Veranstaltungen, die in regelmäßigem Turnus stattfinden haben eine semesterunabhängige Belegnummer. Für die Veranstaltungen sind also zwei Datengruppen zu unterscheiden: − “dauerhafte“ Daten, also solche die dieser Veranstaltung semesterunabhängig zugeordnet werden, wie Belegnummer, Titel, Zielgruppe, Turnus etc. (eine genaue Aufstellung ist der Datenmodellierung zu entnehmen) − Daten, die einer Veranstaltung jeweils für ein Semester zugeordnet werden, z. B. Gruppe, Lehrperson, Raum, Zeit etc. 1.2.2 Sprachrichtungen Für die verschiedenen am FSZ gelehrten Sprachen gibt es unterschiedliche Sprachrichtungen: − allgemeinsprachlich − fachsprachlich (Rechtssprache, Wirtschaftssprache...) − fachspezifisch 1.2.3 Lehrpersonen Hier sind die Personalien, der am FSZ tätigen Personen zu erfassen, eine genaue Aufstellung ist der Datenmodellierung zu entnehmen. 1.2.4 Teilnehmer Teilnehmer sind sowohl Studierende der Universität Hannover als auch universitäts-externe Personen. Es sind alle nötigen Personalien zu erfassen (eine genaue Aufstellung ist der Datenmodellierung zu entnehmen). KAPITEL 1. EINFÜHRUNG 1.2.5 6 Prüfungen, Zeugnisse Das FSZ bietet im wesentlichen vier Ausbildungs- bzw. Abschlußmöglichkeiten an: − Unicert-Zertifikate − DSH-Prüfungen (Deutsche Sprachprüfung für den Hochschulzugang ausländischer Studierender) − Prüfungen im Rahmen anderer Studiengänge (fachsprachliche Ausbildung) − Veranstaltungen für das Studium Generale DSH-Prüfungen: Für die Anmeldung zur DSH-Prüfung sind keine Voraussetzungen (Leistungsnachweise, Teilnahme an Kursen) zu erfüllen. Die Teilnehmer müssen nicht an der Universität eingeschrieben sein. Die Prüfung besteht zunächst aus vier Teilen, die jeweils einzeln bewertet werden: − Leseverstehen − Hörverstehen − Textreproduktion − Grammatik Ein einzelner Prüfungsteil ist bestanden, wenn dort mindestens 10 Punkte erreicht werden. Wird eine Gesamtpunktzahl von 45 Punkten erreicht, so ist die Gesamtprüfung bestanden, der Teilnehmer muß keine weiteren Leistungen erbringen. Wird in diesem ersten Prüfungsabschnitt eine Punktzahl von 39 erreicht (jedoch weniger als 45) so erfolgt eine mündliche Prüfung des Teilnehmers, die mit “bestanden“ (20 Punkte) oder “nicht bestanden“ (0 Punkte) gewertet wird und für das Bestehen der Gesamtprüfung ausschlaggebend ist. Wird im ersten Prüfungsabschnitt eine Gesamtpunktzahl von weniger als 39 erreicht, so gilt die Gesamtprüfung als nicht bestanden. Der Teilnehmer muß dann den ersten Prüfungsabschnitt wiederholen. Hierbei kann jedoch eine Anrechnung einzelner bestandener Teile (mindestens 10 Punkte) erfolgen. Es können bis zu vier Prüfungsversuche unternommen werden. UNIcert-Zertifikate: UNIcert ist ein universitätsübergreifendes Zertifikationssystem für eine hochschulspezifische Fachsprachenausbildung. Es können Zertifikate in mehreren Stufen erworben werden: − Stufe I: allgemeinsprachliche Ausrichtung, Grundkenntnisse der Sprache − Stufe II: Weiterführung der allgemeinsprachlichen Ausbildung, Ansätze zur fächergruppenspezifischen Ausrichtung − Stufe III: Fortführung der fächergruppenspezifischen Ausbildung − Stufe IV wird am FSZ nicht angeboten, soll aber in der Datenbank vorgesehen sein KAPITEL 1. EINFÜHRUNG 7 Zulassungsvoraussetzung zum Erwerb der Zertifikate ist im Regelfall der Erwerb des Zertifikates der vorigen Stufe sowie der Besuch zugeordneter Veranstaltungen im Umfang von 8-12 SWS und ein Erwerb von Leistungsnachweisen. Eine Zulassung zu einer Stufe, bzw. in Ausnahmefällen einer Prüfung, kann aber auch nach einem Gespräch oder einem Test erteilt werden. Teilnehmer mit Abiturkenntnissen werden in der Regel automatisch in die Stufe III eingestuft. Die Prüfungsleistungen für die jeweilige Stufe sind (formal): − eine mündliche Prüfung, aufgeteilt in eine rezeptive und eine produktive sprachliche Aufgabe sowie ein Prüfungsgespräch − eine schriftliche Prüfung, aufgeteilt in zwei Klausuren, die direkt nacheinander stattfinden Die mündliche Prüfung wird jeweils von mindestens 2 Prüfenden abgenommen, sie wird mit einer Note (für alle Teile) bewertet. Die schriftlichen Prüfungen werden grundsätzlich von zwei Prüfern bewertet, die einzelnen Teile werden für sich gewertet, die Gesamtnote wird dann aus den Einzelnoten gemittelt. Prüfungsleistungen, die im Rahmen anderer Universitätsprüfungen erbracht wurden, können als Teile der UNIcert-Prüfungen anerkannt werden. Die Prüfung kann im Regelfall nur einmal wiederholt werden, eine nochmalige Wiederholung bedarf einer Zustimmung durch die Prüfungskommission. Wahlpflichtfach oder Prüfungsfach: Studierende anderer Fachbereiche können am FSZ im Rahmen ihres Studiums Prüfungen in Wahlpflicht- bzw. Pflichtfächern ablegen. Hierfür ist eine Anerkennung der jeweiligen Fachbereiche notwendig. Die Studierenden müssen hierfür an den entsprechenden Kursen teilnehmen und Teilnahme, bzw. qualifizierte Scheine als Leistungsnachweise erwerben. Die zu erbringenden Prüfungsleistungen werden von den jeweiligen Fachbereichen geregelt. Es handelt sich hierbei um Seminarleistungen, mündliche Prüfungen oder Klausuren. 1.2.6 Prüfungsleistungen der Teilnehmer Für die verschiedenen Prüfungen (UNIcert, DSH, ...) sollen die erbrachten Leistungen der Teilnehmer erfaßt werden. Hierzu gehören auch die Anmeldung zu Prüfungen sowie die Möglichkeit Vermerke über vorgelegte Atteste (bei nicht angetretener Prüfung) einzufügen. 1.2.7 Leistungsnachweise Es gibt mehrere Arten von Leistungsnachweisen. Zum einen sind dies Teilnahme- und qualifizierte Scheine. Voraussetzung zum Erwerb der Scheine setzt im allgemeinen eine regelmäßige Teilnahme an der betreffenden Veranstaltung voraus. Für einen qualifizierten Schein ist zudem noch eine spezielle Prüfungsleistung erforderlich. Es gibt eine Grundmenge von Prüfungsleistungen (Klausur, mündl. Prüfung...), die je nach Veranstaltung verlangt werden. Desweiteren werden hierunter auch Einstufungstest (in Klausur- oder mündlicher Form) verstanden. KAPITEL 1. EINFÜHRUNG 1.2.8 8 Leistungsnachweise der Teilnehmer Die von den Teilnehmern erworbenen Leistungsnachweise mit der entsprechenden Bewertung bei qualifizierten Scheinen werden ebenfalls erfaßt. 1.3 Anforderungen an die Benutzerschnittstelle Zunächst müssen natürlich Manipulations- und Eingabemöglichkeiten für alle Daten geschaffen werden. Des weiteren sollte es möglich sein Listen abzufragen, die alle Daten zu den einzelnen Datengruppen auf einen Blick anzeigen (also z.B. Liste aller erfaßten Teilnehmer, Dozenten, Kurse etc.). Zusätzlich werden folgende Abfragen gebraucht: − Liste aller Teilnehmer, die in einem bestimmten Zeitraum eine DSH-Prüfung absolvieren − Liste aller Teilnehmer, die in einem bestimmten Zeitraum eine Unicert-Prüfung abgelegt haben − Liste aller Teilnehmer, die sich zu einer bestimmten Gruppe eines Kurses angemeldet haben − Liste aller Teilnehmer an einer Gruppe eines Kurses − Liste aller Teilnehmer, die in einem bestimmten Kurs einen Schein erworben haben − Liste aller Kurse eines bestimmten Semesters − Liste aller Gruppen eines Kurses − Liste aller Gruppen eines Semesters − Liste aller Kurse/Gruppen einer bestimmten Sprache in einem Semester Es soll ermöglicht werden, diese Daten dann jeweils zu exportieren. 1.4 Überblick Diese Dokumentation ist wie folgt gegliedert: In Kapitel 2 wird für die Daten ein Datenbankmodell erstellt. Der zweite Abschnitt dieses Kapitels liefert dann das zu diesem Modell gehörende Relationenschema. Kapitel 3 gibt einen Überblick über die notwendige Schnittstelle zu MySQL und listet insbesondere die Grundoperationen , die zur Wahrung der Integritätsbedingungen des Modells notwendig sind. In Kapitel 4 wird die Benutzerschnittstelle an Hand der einzelnen Such- und Eingabemasken vorgestellt und das Zusammenspiel dieser Masken aufgezeigt. Kapitel 5 erläutert den Softwareentwurf. Hier werden die Grundkonzepte und die programmierten Packages vorgestellt. Genaue Schnittstellenspezifikationen werden hier nicht vorgenommen, diese sind der Programmdokumentation zu entnehmen. Kapitel 6 bietet dann noch eine Kurzanleitung zur Installation des Anwendungssystems. Kapitel 2 Modellierung 2.1 ER-Diagramme Das ER-Diagramm setzt sich aus den, in den beiden folgenden Abschnitten abgebildeten Teilen zusammen. 9 KAPITEL 2. MODELLIERUNG 2.1.1 Veranstaltungen 10 KAPITEL 2. MODELLIERUNG 2.1.2 Prüfungen 11 KAPITEL 2. MODELLIERUNG 2.1.3 12 Integritätsbedingungen Folgende Integrittsbedingungen gelten für die Datenbank: IB1 Ein Teilnehmer kann maximal vier nicht attestierte Prüfungsversuche für die DSHPrüfung unternehmen. IB2 Ein Teilnehmer kann ohne ausdrückliche Zustimmung der Prüfungskomission maximal zwei nicht attestierte Prüfungsversuche für jede UNIcert-Prüfung unternehmen, wobei hier jeweils eine Stufe einer bestimmten Sprachrichtung als Prüfung verstanden wird. IB3 Ein Teilnehmer kann nur dann einen Prüfungsversuch für eine UNIcert-Prüfung unternehmen, wenn er entweder die vorige Stufe in dieser Sprache bestanden hat oder für diese Stufe eingestuft wurde. IB4 In den Kursen können nur Leistungsnachweise erworben werden, die dort auch angeboten werden. IB5 Ein Teilnehmer kann in einem Kurs nur dann einen Leistungsnachweis erwerben, wenn er für diesen Kurs angemeldet ist. IB6 Die Matrikelnummer eines jeden Teilnehmers ist eindeutig. 2.2 Relationenschema 2.2.1 Relationen zu den Entities Die zu den Entities gehörenden Relationen sind (nach Einbindung der funktionalen Relationen): Lehrperson (LPNr Name Vorname Anrede Titel Amt Strasse PLZ Ort Telefon-dienst Fax-dienst Telefon-privat Fax-privat Email integer(3), Varchar(20), Varchar(20), Varchar(4), Varchar(15), Varchar(35), Varchar(30), Varchar(5), Varchar(25), Varchar(16), Varchar(16), Varchar(16), Varchar(16), Varchar(35)) Studiengang (SGNr Bezeichnung Fachbereich integer(3), Varchar(45), Varchar(45)) KAPITEL 2. MODELLIERUNG 13 Leistungsnachweis (LNNr Art integer(2), Varchar(35)) Teilnehmer (TNr Matrikelnummer Name Vorname Geburtsdatum Geburtsort Geschlecht Staatszugehoerigkeit Strasse PLZ Ort co Telefon Email studiert→ Studiengang Fachsemester HeimStrasse HeimPLZ HeimOrt HeimStaat Bemerkung unique(Matrikelnummer)) integer(5), integer(9), Varchar(20), Varchar(20), Date, Varchar(25), Char, Varchar(25), Varchar(30), Varchar(5), Varchar(25), Varchar(20), Varchar(16), Varchar(35), integer(3), integer(2), Varchar(30), Varchar(8), Varchar(25), Varchar(20), text, Sprachrichtung (SRNr Sprache Art Bezeichnung unique(Sprache, Art, Bezeichnung)) integer(3), Varchar(20), Varchar(40), Varchar(45), Standardkurs (SKNr Belegnr Kurstitel Art Voraussetzung Semesterturnus Stundenzahl integer(4), Varchar(6), Varchar(100), Varchar(20), Text, Varchar(6), integer(2)) Kurs (Semester SKNr → Standardkurs Zielgruppe Lernziele Materialien Kreditpunkte Beginn Anmeldung Ende Anmeldung Einstufungstest Varchar(10), integer(4), Varchar(50), Text, Text, integer(2), Date, Date, Varchar(40)) KAPITEL 2. MODELLIERUNG 14 Kursgruppe (GNr Gruppe SKNr → Kurs Semester → Kurs Raum 1 Tag 1 Zeit 1 Raum 2 Tag 2 Zeit 2 LPNr → Lehrperson Erg Aush von Erg Aush bis unique(Gruppe, Semester, Belegnr)) integer, char, integer(4), Varchar(10), Varchar(5), Varchar(2), Varchar(15), Varchar(5), Varchar(2), Varchar(15), integer(3) Date, Date, DSH Pruefung (DSHNr TNr → T eilnehmer Pruefungszeitraum Attest Leseverstehen Hoerverstehen Textproduktion Grammatik Datum muendl Ergebnis muendl Bemerkungen integer(5), integer(5), Varchar(10), Date, real, real, real, real, Date, real, Text) Unicert Pruefung (UNr Stufe SRNr→ Sprachrichtung setzt voraus → U nicert − P ruef ung integer(5), Varchar(5), integer(3), integer(5)) Pruefungsversuch (PVNr TNr → T eilnehmer UNr → U nicert − P ruef ung Versuch Nr Datum muendl Datum schriftl Attest Zust PrKommission schriftNote s bewertet durch1 → Lehrperson s bewertet durch2 → Lehrperson muendl Note integer(6), integer(5), integer(5), integer(1), Date, Date, Date, Char, real, integer(3), integer(3), real) KAPITEL 2. MODELLIERUNG 2.2.2 15 Relationen zu den Beziehungen Die Relationen zu den noch verbliebenen Beziehungen sind: meldet sich an (TNr → T eilnehmer GNr → Kursgruppe Datum Zeit integer(5), integer, Date, Time) gehoert zu (SKNr → Standardkurs SRNr→ Sprachrichtung integer(4), integer(3)) ermoeglicht (SKNr → Kurs Semester → Kurs LNNr → Leistungsnachweis Bedingung integer(4), Varchar(10), integer(2), Varchar(100)) setzt voraus in (SKNr → Standardkurs LNNr → Leistungsnachweis in SKNr → Standardkurs integer(4), integer(2), integer(4)) erwirbt (TNr → T eilnehmer GNr → Kursgruppe LNNR → Leistungsnachweis Note integer(5), integer(3), integer(2), real) m bewertet durch (PVNr → P rüf ungsversuch LPNr → Lehrperson integer(6), integer(3)) UP setzt voraus (UNr → U nicertP rüf ung SKNr → Standardkurs LNNR → Leistungsnachweis integer(5), integer(4), integer(2)) anerkannt fuer (SKNr → Standardkurs LNNR → Leistungsnachweis SGNr → Studiengang Bereich FB Pruefungsnr integer(4), integer(2), integer(3), Varchar(45), Varchar(6)) eingestuft durch fuer (TNr → T eilnehmer LPNr → Lehrperson UNr → U nicertP ruef ung integer(5), integer(3), integer(5)) Kapitel 3 Grundoperationen 3.1 Allgemeine Bedingungen Das verwendete mySQL-System besitzt einige Beschränkungen, so daß bestimmte Aufgaben, die eigentlich in den Bereich des Datenbanksystems fallen, von den Grundoperationen übernommen werden müssen: − Für Attribute, denen numerische Datentypen zugeordnet wurden, können zum Teil auch Werte eingetragen werden, die nicht diesem Datentyp entsprechen. So ist die Angabe einer Stellenzahl im Datentyp int nicht gleichbedeutend damit, daß hier nur begrenzte Stellenzahlen eingebbar sind. Insbesondere der Datentyp smallint ist vorsichtig zu verwenden, da die Eingabe eines Wertes ausserhalb des zulässigen Bereiches dazu führt, daß statt des eingegebenen Wertes das Maximum bzw. Minimum des zulässigen Bereiches eingetragen wird. − Das System beachtet keine foreign-key-constraints. Sie können zwar deklariert werden, aber werden in der derzeitigen Version nicht beachtet, also insbesondere nicht überprüft. − MySQL kennt keine Trigger. Insbesondere die Überwachung von Integritätsbedingungen kann also nicht innerhalb des Systems erfolgen. Alle Grundoperationen müssen also die foreign-key-Bedingungen prüfen soweit diese durch die Operation betroffen sind, sicherstellen, daß nur entsprechend dem Datentyp zulässige Daten eingefügt werden und die Einhaltung der Integritätsbedingungen gewährleisten. 3.2 Grundoperationen Für alle Relationen müssen search-, insert-, update-, delete-Operationen und eine Operation zum kaskadierenden Löschen zur Verfügung stehen. Soweit diese keine Integritätsbedingungen berühren oder modifizierte Operationen (im Sinne des Abschnitts 4.2) realisieren, werden sie hier nicht weiter erörtert. Die delete-Operationen lösen immer dann Exceptions aus, wenn andere Tupel durch Foreign-Key-Constraints auf die zu löschenden Daten verweisen. 16 KAPITEL 3. GRUNDOPERATIONEN 17 Die folgenden Grundoperationen werden benötigt (die Parameterübergabe “String[] values“ ist so zu verstehen, daß hier ein Array mit den Werten, die zu den Attributen der Relation gehören übergeben wird): insertStudent(Werte der Teilnehmer-Attribute) fügt einen Teilnehmer mit den übergebenen Daten ein. Eine Exception wird ausgelöst, falls die Matrikelnummer schon einem anderen Teilnehmer zugeordnet ist. updateStudent(Werte der Teilnehmer-Attribute, Werte des Primärschlüssels dieses Tupels) ändert die entsprechenden Teilnehmer. Eine Exception wird ausgelöst, falls die (geänderte) Matrikelnummer schon einem anderen Teilnehmer zugeordnet ist. insertCourse(String[] values) fügt einen Kurs mit den übergebenen Daten ein. Es wird ueberprueft, ob bereits ein passender Standardkurs existiert, sonst wird er ebenfalls eingefügt. updateCourse(String[] values) ändert den Kurs. Werden die Daten des Standardkurses geändert, so wird dieser verändert falls kein anderer Kurs auf ihn verweist, sonst wird ein neuer Standardkurs erzeugt. insertDSH(String[] values) fügt einen DSH-Prüfungsversuch ein. Eine Exception wird ausgelöst, wenn der Teilnehmer nicht existiert oder der Teilnehmer zu dieser Prüfung nicht mehr zugelassen ist. updateDSH(String[] values) ändert die entsprechenden DSH-Prüfungsversuche. Eine Exception wird ausgelöst, wenn der Teilnehmer nicht existiert oder der Teilnehmer zu dieser Prüfung nicht mehr zugelassen ist.. insertUPV(String[] values) fügt einen Unicert-Prüfungsversuch ein. Eine Exception wird ausgelöst, wenn der Teilnehmer oder die Unicert-Prüfung nicht existieren, der Teilnehmer die Zulassungsvoraussetzungen nicht erfüllt oder (durch Einstufung oder Prüfung auf voriger Stufe) nicht für die Stufe dieser Prüfung zugelassen ist. updateUPV(String[] values) ändert die Daten der entsprechenden Unicert-Prüfungsversuche. Exceptions werden wie bei insertUPV ausgelöst. insertCert(Teilnehmer, Kursgruppe, Art) fügt einen Leistungsnachweis für den Teilnehmer ein. Eine Exception wird ausgelöst, wenn der Teilnehmer oder die Kursgruppe nicht existieren oder der Teilnehmer nicht zu diesem Kurs angemeldet ist oder diese Art des Leistungsnachweises in dem Kurs nicht erwerbbar ist. deleteClassification(String[] values) löscht die Einstufung eines Teilnehmers für eine Unicert-Prüfung. Eine Exception wird ausgelöst, falls der Teilnehmer diese Prüfung bereits abgelegt hat. updateClassification(String[] values) ändert die Einstufung eines Teilnehmers für eine Unicert-Prüfung. Eine Exception wird ausgelöst, falls der Teilnehmer diese Prüfung bereits abgelegt hat. deleteCert(String[] values) löscht einen (in einem Kurs erwerbbaren) Leistungsnachweis. Eine Exception wird ausgelöst, wenn ein Teilnehmer bereits diesen Leistungsnachweiserworben hat updateCourseCert(String[] values) ändert einen (in einem Kurs erwerbbaren) Leistungsnachweis. Eine Exception wird ausgelöst, wenn ein Teilnehmer bereits diesen Leistungsnachweiserworben hat deleteRegistration(String[] values) löscht eine Anmeldung zu einer Kursgruppe. Eine Exception wird ausgelöst, wenn der Teilnehmer in dieser Gruppe einen Leistungsnachweis erworben hat. KAPITEL 3. GRUNDOPERATIONEN 18 updateRegistration(String[] values) ändert eine Anmeldung zu einer Kursgruppe. Eine Exception wird ausgelöst, wenn der Teilnehmer in dieser Gruppe einen Leistungsnachweis erworben hat. Folgende Operation wird zur Erzeugung der künstlichen Schlüssel benötigt: getKey(Relation) erzeugt einen künstlichen Schlüssel für diese Relation (diese muß einen int-Schlüssel haben), indem es das Maximum der keys ermittelt und inkrementiert. Alle genannten Methoden lösen natürlich immer dann eine Exception aus, wenn die Ausführung eines der von ihnen benutzten SQL-Statements nicht möglich ist, beispielsweise, weil keine Verbindung zur Datenbank existiert. 3.3 Indexe Für die oben erläuterten Methoden sowie feste Abfragen müssen einige Indexe eingerichtet werden: Auf der Relation Teilnehmer: − Matrikelnummer − Name Auf der Relation Lehrperson: − Name Auf der Relation Sprachrichtung: − Sprache Auf der Relation Standardkurs: − Belegnr Auf der Relation Kurs: − SKNr Auf der Relation Kursgruppe: − Semester, SKNr Auf der Relation DSH-Prüfung: − TNr − Prüfungszeitraum Auf der Relation Pruefungsversuch: − TNr Auf der Relation meldet sich an: − GNr Auf der Relation erwirbt: − GNr Kapitel 4 Benutzerschnittstelle Die Benutzerschnittstelle ist eine in Java programmierte GUI. Sie besteht aus einer Hauptmaske (Menü) und im wesentlichen einer Such- bzw. Eingabemaske in Formularlayout, die je nach Menupunkt variiert wird, sowie einer Übersichtsmaske, die in tabellarischer Form alle Suchergebnisse anzeigt, sofern es sich hierbei um mehr als einen Datensatz handelt. Auch diese wird den Anforderungen entsprechend variiert. Benutzereingaben und damit Datenänderungen sind nur in den Eingabemasken möglich. Die Übersichten bieten nur Anzeigemöglichkeiten sowie den Zugriff auf einen Datensatz durch Mouseklick auf die entsprechende Zeile, der dann in einer Eingabemaske angezeigt wird und hier bearbeitet werden kann. Die Masken sind nach Objektzusammenhängen eingeteilt.Zu je einem Komplex gibt es eine Such- und eine Übersichtsmaske, die die gleichen Metadaten umfassen. Die Masken werden im folgenden einzeln beschrieben. Abbildungen der Masken befinden sich im Anhang. 4.1 4.1.1 Eingabe- und Übersichtsmasken Teilnehmer Die Teilnehmermaske (siehe Anhang A.1) beinhaltet zunächst als Suchanforderung alle Personaldaten des Teilnehmers bis auf den Bereich Heimatadresse. Es können Daten eingegeben werden, die dann die Suchkriterien bilden. Das Ergebnis der Suche wird entweder in der Suchmaske, wenn es sich um einen einzelnen Datensatz handelt, oder in der Teilnehmer-Übersichtsmaske angezeigt. Ist ein Datensatz in der Maske angezeigt, so sind Zugriffe auf die Leistungsnachweise des Teilnehmers (Relation “erwirbt“), UnicertPrüfungsversuche, DSH-Prüfungen und Einstufungen des jeweiligen Teilnehmers möglich. Wird ein einzelner dieser Datensätze angewählt, so kann er in einer hierfür eingerichteten Maske die in einem neuen Frame aufgebaut wird bearbeitet werden. Ebenso ist die Erfassung eines neuen Datensatzes zu diesen Bereichen möglich. Die Maske umfaßt folgenden Bereich des ER-Modells: 19 KAPITEL 4. BENUTZERSCHNITTSTELLE 4.1.2 20 Kurs Die Kursmaske (siehe Anhang A.2) beinhaltet als Suchanforderungen die Kursdaten. Die Suchergebnisse werden wie bei der Teilnehmermaske entweder in der Suchmaske oder in einer Übersichtsmaske angezeigt. Wird ein Datensatz in der Suchmaske angezeigt, so ist der Zugriff, analog zu den Zugriffen in der Teilnehmermaske, auf die zugehörigen Gruppen und die in diesem Kurs zu erwerbenden Leistungsnachweise möglich. Die Maske beinhaltet auch die Daten aus den Tabellen “Standardkurs“ und “Sprachrichtung“. Hier können auch neue Standardkurse und Sprachrichtungen eingerichtet werden, allerdings unsichtbar für den Benutzer, dies geschieht automatisch, wenn die entsprechenden Daten für den Kurs geändert werden und ein entsprechender Datensatz in der Datenbank noch nicht vorhanden ist. Die Maske umfaßt folgende Bereiche des ER-Modells: KAPITEL 4. BENUTZERSCHNITTSTELLE 4.1.3 21 Kursgruppe Diese Maske (siehe Anhang A.3) ist nur von der Kursmaske aus erreichbar. Dies impliziert die Verknüpfung mit einem bestimmten Kurs, die Kursdaten werden also nicht mehr angezeigt. Die Maske umfaßt alle Daten der Tabelle “Kursgruppe“. Außerdem gelangt man von ihr zu der Anmeldeliste für diesen Kurs und zu einer Liste aller Teilnehmer, die in diesem Kurs einen Schein erworben haben mit den entsprechenden Daten für den Leistungsnachweis. Die Maske umfaßt folgende Bereiche des ER-Modells: 4.1.4 Prüfungsversuch Die Maske (siehe Anahng A.4) umfaßt zunächst alle Daten aus den Relationen “Pruefungsversuch“, “Unicert Pruefung“ und “m bewertet durch“. Die Relation “Unicert Pruefung“ ist von hier aus aber nicht bearbeitbar, das gewünschte Objekt ist vorher in der hierfür vorgesehenen Maske anzulegen. KAPITEL 4. BENUTZERSCHNITTSTELLE 22 Die Maske umfaßt folgende Bereiche des ER-Modells: 4.1.5 Unicert Prüfung Diese Maske (siehe Anhang A.5) dient zum Anlegen der verschiedenen Prüfungen im Rahmen von Unicert. Sie bietet Zugriff auf die Voraussetzungen, die jeweils zum Ablegen einer Prüfung erfüllt sein müssen. Die Maske umfaßt folgende Bereiche des ER-Modells: 4.1.6 Weitere Such- und Eingabemasken Für die noch verbliebenen Relationen, die von den bisherigen Masken nicht abgedeckt werden oder für die eine gesonderte Eingabe notwendig ist (weil sie beispielsweise durch eine der obigen Masken aufgerufen werden), werden folgende Masken angelegt: − DSH, für die Relation “DSH Pruefung“ − Dozent, für die Relation “Lehrperson“ − Scheinmöglichkeiten, für die Relation “ermoeglicht“ − FB-Anerkennung, für die Relation “anerkannt fuer“ − Einstufung, für die Relation “eingestuft durch fuer“ − Unicert Voraussetzung, für die Relation “UP setzt voraus“ KAPITEL 4. BENUTZERSCHNITTSTELLE − Studiengang, für die Relation “Studiengang“ − erworbene Scheine, für die Relation “erwirbt“ 23 KAPITEL 4. BENUTZERSCHNITTSTELLE 4.2 24 Übersicht der möglichen Datenmanipulation Relation \ Maske Teilnehmer Teilnehmer i,u,d Lehrperson Kurs Kursgruppe Prüfungsversuch 1) Studiengang 1) link(i,u*) Leistungsnachweis link(i,u*) Sprachrichtung i,u* Kursgruppe link Kurs i,u,d Standardkurs i,u* DSH Pruefung 1) i,u,d link Unicert Pruefung i,u,d Pruefungsversuch link i,u,d meldet sich an link(i,u*) gehoert zu ermoeglicht i,u* 1) link setzt voraus in erwirbt Unicert Prüfung link(i,u*) 1) link m bewertet durch UP setzt voraus anerkannt fuer link 1) link 1) 1) link(i,u*) link eingestuft durch fuer 1) link 1) Diese Relationen haben jeweils eine eigene Eingabemaske. Legende: KAPITEL 4. BENUTZERSCHNITTSTELLE 25 link: Die Maske verweist (per Button oder ähnlichem) auf die Eingabemaske der betreffenden Relation, wobei hier die Abgrenzungen übernommen werden, in dieser Maske sind dann insert update un delete möglich. i,u,d: insert, update und delete sind direkt für die Relation möglich. i,u*: Modifiziertes Insert und Update sind möglich. In dem Sinne, daß das Tupel der betreffenden Relation nur dann geändert wird, wenn kein weiterer Verweis darauf existiert. Ansonsten wird ein neues Tupel mit den gewünschten Daten angelegt und entsprechend verknüpft. So ist gewährleistet, daß keine überflüssigen Tupel gespeichert werden. Das Anlegen eines neuen Tupels ist ohne Einschränkungen (außer den von der Datenbank gegebenen) möglich. KAPITEL 4. BENUTZERSCHNITTSTELLE 4.3 26 Das Anmeldungs-Applet Das Applet dient der Anmeldung der Teilnehmer zu den Kursen. Nach Eingabe der Identifikationsdaten (Name, Vorname, Geburtsdatum, Matrikelnummer) und Auswahl einer Sprache werden alle Kurse des aktuellen Semesters angezeigt. Hier werden die Kurse, zu denen der Teilnehmer bereits angemeldet ist, markiert. Eine An- bzw. Abmeldung des Teilnehmers erfolgt dann einfach durch markieren des Kurses und Auswahl der gewünschten Gruppe. Kapitel 5 Softwareentwurf 5.1 Komponenten 5.1.1 SQL-Datenbank Die Datenbank übernimmt die eigentliche Speicherung der Daten. Sie ist nach dem vorgelegten Entwurf angelegt. 27 KAPITEL 5. SOFTWAREENTWURF 5.1.2 28 AttributeCombinations In dieser Komponente werden die verschiedenen anzuzeigenden bzw. zu bearbeitenden Datenkombinationen verwaltet. Die Kombinationen enthalten dabei Listen von Attributen mit zugeordneter Relation, zugehörigen Aliassen für Self-Joins und geltende Bedingungen. Einer Kombination ist jeweils eine Hauptrelation zugeordnet, die den Einstiegspunkt der Maske darstellt. Zu den Bedingungen gehören Angaben über den Primärschlüssel der Hauptrelation, Foreign-Key-Constraints, Unique-Bedingungen, Join-Bedingungen, eine Liste der auf die Hauptrelation verweisenden Relationen (für kaskadierendes Löschen) und eine Liste der abgeleiteten Relationen (für die modifizierten insert-, update- und delete-Operationen). Desweiteren werden in der AttributeCombination Angaben darüber gespeichert welche Attribute in den Masken anzuzeigen sind und in welcher Form diese Anzeige erfolgt. 5.1.3 DatabaseBasic DatabaseBasic ist ein Modul, daß den benutzten JDBC-Treiber erweitert. Hier werden grundlegende Such- und update-Operationen zur Weiterleitung an die Datenbank generiert. Der Komponente werden dabei AttributeCombinations und die zugeordneten Werte übergeben, daraus wird dann die benötigte Datenbankoperation erzeugt. Die Rückgabe der Suchergebnisse erfolgt als ResultBuffer. Ein ResultBuffer wird aus einem ResultSet zur Speicherung der Daten erzeugt. Er bietet über eine Indexierung den Zugriff auf die Zeilen des Suchergebnisses. Diese Klasse wird von der gesamten Anwendung zur Verwaltung der Anzeigen verwendet. 5.1.4 FSZ Diese Komponente baut die Verbindung zur Datenbank auf und generiert mit Hilfe von DatabaseBasic die von der GUI veranlaßten Datenbankoperationen. Sie ist insbesondere für die Einhaltung der Foreign-Key-Constraints und der Integritätsbedingungen zuständig. Das heißt sie überprüft zunächst alle Bedingungen, erzeugt möglicherweise weitere Operationen und leitet dann erst die Daten an ihre Instanz der DatabaseBasic zur Erstellung der Datenbankoperationen weiter. 5.1.5 FSZConfiguration Diese Komponente liefert alle für die FSZ-Datenbank notwendigen AttributeCombinations und die Spezifikationen der anzuzeigenden Masken (Button-Listen). 5.1.6 FSZGUI Diese Komponente ist für die Anzeige zuständig. Sie bedient sich dabei der AttributeCombinations als Layout-Vorlage. Im wesentlichen umfaßt sie, für das Innere des Frames, zwei Anzeigemöglichkeiten, zum einen eine Formularform (FSZMask) für die Anzeige und Bearbeitung einzelner Datensätze und eine tabellarische Form (FSZTable) für die Anzeige mehrerer Datensätze. Sie umfassen dabei auch jeweils eine Button-Liste mit zugeordneten ActionCommands. KAPITEL 5. SOFTWAREENTWURF 29 Die Frames in denen die Anzeige dann realisiert ist, reagieren jeweils auf die in ihnen durchgeführten Aktionen (Mouse- bzw. Buttonnutzung). Alle aktiven Frames nutzen dabei dieselbe Instanz der FSZ. Die Verwaltung der anzuzeigenden Frames wird über ein Chaining realisiert. Jeder Frame kennt den von ihm aufgerufenen Frame sowie den ihn aufrufenden (double-linked-List). Wird ein Frame geschlossen, so wird dieser Befehl rekursiv von den folgenden Frames ausgeführt. Wird von einem Frame aus eine Aktion ausgeführt, die die Anzeige der Daten in einem weiteren Frame erfordert, so werden zunächst alle folgenden Frames geschlossen und dann ein neuer Frame als Child erzeugt. Es werden also alle Daten, die für das inhaltliche Verständnis des aktiven Frames notwendig sind, angezeigt, aber es wird vermieden, daß zuviele unnötige Frames offen bleiben. 5.2 Packages und Klassen Im Abschnitt 5.4 befindet sich das Klassendiagramm zur folgenden Beschreibung. 5.2.1 Package fsz.util Das Package umfaßt folgende Klassen: − ResultBuffer: Diese Klasse stellt einen Buffer für die ResultSets zur Verfuegung. Dadurch ist die Tupelanzahl abfragbar und es kann mittels eines Indexes auf die einzelnen Tupel zugegriffen werden. Diese können auch verändert werden. − DatabaseBasic: Die Klasse dient den grundlegenden Aufrufen an die Datenbank. Sie erzeugt jeweils aus den übergebenen AttributeCombinations und Datenfeldern die benötigte SQL-Abfragen (bzw. update-Aufrufe) und übergibt sie der Datenbank. Die Ergebnisse der Abfrage werden dann als ResultBuffer zurückgegeben. − AttributeCombinations: Eine Liste von Attributen zusammen mit hier geltenden Constraints. Dazu umfaßt das Package eine Reihe von Exceptions, die je nach auftretenden Problemen genutzt werden (z. B. UniqueExceptions). Genaueres hierzu ist der Programmdokumentation zu entnehmen. 5.2.2 Package fsz Dieses Package beinhaltet alle Klassen die zur internen Datenverwaltung und Programmsteuerung erforderlich sind. Dieses sind im einzelnen: − FSZ: Die Klasse, die die Anforderungen der GUI entgegennimmt und (mit Hilfe von DatabaseBasic) die Befehle an die Datenbank weiterleitet. − FSZMain: Die Main-Klasse der Anwendung. − FSZConfiguration: Die Klasse, die die benötigten AttributeCombinations vorhält. KAPITEL 5. SOFTWAREENTWURF 30 Dazu umfaßt das Package einige Exceptions, die je nach auftretenden Problemen genutzt werden (z. B. IntegrityExceptions). Genaueres hierzu ist der Programmdokumentation zu entnehmen. 5.2.3 fsz.gui Das Package beinhaltet alle Klassen, die die Anzeige der Daten realisieren. Dies sind im einzelnen: − FSZFrame − FSZView: Die Oberklasse aller Inhalte für den Frame, sie verwaltet eine Buttonliste. − FSZMask: Eine Maske für die Anzeige von Formularen. Sie beinhaltet das Formular, eine Button-Leiste und (sofern benötigt) eine tabellarische Übersicht. − FSZForm: Der Formularbereich der FSZMask. − FSZTable: Der Tablebereich der FSZMask. − FSZRegistration: Die Anmeldemaske, Unterklasse des FSZView. − FSZMessage: Eine Klasse, die der Anzeige von Fehlermeldungen dient. Wird sie aufgerufen, so ist keine Aktion mehr möglich, bevor die Meldung bestätigt wird. − FSZChoiceMessage: Eine Klasse zur Anzeige von Warnmeldungen bzw. Nachfragen. Sie deaktiviert ebenfalls alle Aktionen. Hier ist jedoch die Wahl zwischen verschiedenen Benutzerreaktionen möglich. − FSZExport: Ein Frame zur Abfrage von Dateinamen für den Datenexport. − TableRow: Die Zeilen eines FSZTables. − TableField: Die Felder eines FSZTables. 5.2.4 RegistrationApplet Das Package besteht aus der eigentlichen Appletklasse sowie einer eingeschränkten Version der Klasse FSZ. In dieser Klasse werden nur die für die Anmeldung notwendigen Grundoperationen realisiert. Das Package ist nicht in die Package-Struktur der Applikation eingebunden. 5.3 Realisierung der Grundoperationen Soweit keine Integritätsbedingungen betroffen sind, werden alle Grundoperationen durch die folgenden drei Methoden der Klasse FSZ realisiert: insert(AttributeCombination attributes, String[] values) fügt die übergebenen Werte in die Hauptrelation der AttributeCombination ein. Falls notwendig werden auch Tupel in den abgeleiteten Relationen erzeugt. KAPITEL 5. SOFTWAREENTWURF 31 update(AttributeCombination attributes, String[] values, String[] keys) ändert die übergebenen Tupel der Hauptrelation der AttributeCombination, die durch die Primärschlüsselwerte aus keys identifiziert werden. Soweit möglich werden auch die Tupel der abgeleiteten Relationen verändert. Verweisen noch andere Tupel der Hauptrelation auf diese, so werden die benötigten Tupel erzeugt. delete(AttributeCombination attributes, String[] values) fügt die übergebenen Werte in die Hauptrelation der AttributeCombination ein. Falls notwendig werden auch Tupel in den abgeleiteten Relationen erzeugt. Die verschiedenen Operationen entstehen hier durch Übergabe der entsprechenden AttributeCombination. Zur Wahrung der Integritätsbedingungen sind zusätzlich die in Abschnitt 3.2 explizit erwähnten Grundoperationen direkt zu implementieren. Da über die Grundkombinationen hinaus weitere AttributeCombinations genutzt werden und Operationen auf diesen zum Teil Integritätsbedingungen betreffen, werden des weiteren folgende Methoden gebraucht: insertGroupCerts fügt einen (erworbenen) Leistungsnachweis für die Kursgruppe ein. Exceptions werden wie bei insertStudentCert ausgelöst. updateGroupCerts ändert einen (erworbenen) Leistungsnachweis für die Kursgruppe. Exceptions werden wie bei updateStudentCert ausgelöst. Die Klasse FSZ verwendet bei Aufruf einer der Methoden insert, update, delete mit einer von einer Integritätsbedingung betroffenen AttributeCombination automatisch die für diese AttributeCombination vorgesehene “sichere“ Methode. KAPITEL 5. SOFTWAREENTWURF 5.4 Das Klassendiagramm 32 Kapitel 6 Installation der Anwendung Das Programm wird als Jar-Archiv geliefert. Dieses Archiv beinhaltet auch den benötigten JDBC-Treiber. Die Installation ist für ein Windows NT System vorgesehen. Zunächst muß auf dem Server die Datenbank eingerichtet werden. Dies kann über den Aufruf des mitgelieferten Skripts “createFSZ.sql“ in MySQL erfolgen. Zum Installieren der Software auf den Client-Rechnern muß nur der Inhalt des Ordners “Programm“ auf den Rechner kopiert werden. Der Ordner enthält das Jar-Archiv, das Logo, das bei der Anmeldung angezeigt wird (logo.jpg) und eine Konfigurationsdatei (FSZProperties). In der Konfigurationsdatei kann, falls die Datenbank auf einen anderen Server verlagert wird, die Einstellungen für den anzuwählenden Server in der Zeile “url =“ geändert werden. Bei Auslieferung ist hier der lokale Rechner eingetragen, die URL muß bei Installation auf den Client-Rechnern auf den Web-Server des FSZ gestellt werden. Der mitgelieferte Ordner “docs“ enthält die Programmdokumentation der Anwendung. Die Dokumentation wurde mit javadoc erstellt, ist also mit einem beliebigen Web-Browser lesbar. 33 Anhang A Abbildungen A.1 Die Teilnehmermaske 34 ANHANG A. ABBILDUNGEN A.2 Die Kursmaske A.3 Die Kursgruppenmaske 35 ANHANG A. ABBILDUNGEN A.4 Die Prüfungsversuchmaske A.5 Die Unicert-Maske 36