Entwurf und Realisierung eines - dbs.uni

Werbung
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
Herunterladen