VISUALISIERUNG VON IMMATRIKULATIONSDATEN MIT HILFE VON SVG, PHP UND MYSQL - BACHELORARBEIT VON MUSTAPHA FYJRI GUTACHTER PROF. DR. OLIVER ...

Die Seite wird erstellt Wolf Metzger
 
WEITER LESEN
VISUALISIERUNG VON IMMATRIKULATIONSDATEN MIT HILFE VON SVG, PHP UND MYSQL - BACHELORARBEIT VON MUSTAPHA FYJRI GUTACHTER PROF. DR. OLIVER ...
Visualisierung von
Immatrikulationsdaten mit Hilfe von
     SVG, PHP und MySQL

               Bachelorarbeit
                    von
               Mustapha Fyjri

                  Gutachter
         Prof. Dr. Oliver Vornberger
         Juniorprof. Dr. Sigrid Knust

      Fachbereich Mathematik/Informatik
            Universität Osnabrück
                 22.02.2006
VISUALISIERUNG VON IMMATRIKULATIONSDATEN MIT HILFE VON SVG, PHP UND MYSQL - BACHELORARBEIT VON MUSTAPHA FYJRI GUTACHTER PROF. DR. OLIVER ...
1

                              Danksagung
An dieser Stelle möchte ich mich herzlich bei denjenigen bedanken, die mir
während der Vorbereitungsphase für die vorliegende Arbeit, aber vor allem auch
bei der Programmierung der Webanwendung, mit Rat und Tat zur Seite gestan-
den haben.

Zunächst danke ich Dipl.-Math. Patrick Fox und Dipl.-Kff. Heike Dalinghaus,
die sich mir gegenüber immer als sehr hilfsbereit erwiesen, mir vor allem bei
technischen Problemen zur Seite standen und sich immer ausreichend Zeit für
Besprechungen genommen haben.

Des Weiteren sei mein Dank an Annette und Dipl.-Kfm (FH) Alexander Steck
sowie Michail Klioutch gerichtet, die mir hilfreiche Anregungen gaben und die
Arbeit Korrektur gelesen haben. Nicht zu vergessen meine Frau Kathrin und
meine restliche Familie, sowohl in Deutschland als auch in Marokko, die mir in
schwierigen Phasen Mut zusprachen.

Nicht zuletzt ein großes Dankeschön an meinen Dozenten Prof. Dr. Vornber-
ger vom Institut für Informatik an der Universität Osnabrück, der mich während
der Vorbereitungsphase hilfreich unterstützt und mir durch seine Ideen weitere
Denkanstöße für diese Arbeit gegeben hat.

                                                Osnabrück, den 22 Februar 2006
                                                                Mustapha Fyjri
VISUALISIERUNG VON IMMATRIKULATIONSDATEN MIT HILFE VON SVG, PHP UND MYSQL - BACHELORARBEIT VON MUSTAPHA FYJRI GUTACHTER PROF. DR. OLIVER ...
2

Inhaltsverzeichnis

1 Einleitung                                                                          5
    1.1   Ziel der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . .      6
    1.2   Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . .        6

2 Grundlagen                                                                          7
    2.1   SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      7
          2.1.1   Syntax und Basiselemente . . . . . . . . . . . . . . . . . .         8
          2.1.2   Animationen . . . . . . . . . . . . . . . . . . . . . . . . .        9
          2.1.3   Interaktivität . . . . . . . . . . . . . . . . . . . . . . . . .   10
    2.2   PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     12
    2.3   ECMAScript      . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   13
    2.4   MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       13

3 Verfügbare Daten                                                                   15
    3.1   Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     15
    3.2   Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     16
    3.3   Ausgewählte Daten . . . . . . . . . . . . . . . . . . . . . . . . . .      19
          3.3.1   Kategorie Studierende . . . . . . . . . . . . . . . . . . . .       19
          3.3.2   Kategorie Absolventen . . . . . . . . . . . . . . . . . . . .       20

4 Erstellung der Anwendung                                                            22
    4.1   Webanwendungensschema . . . . . . . . . . . . . . . . . . . . . .           22
    4.2   Ermittlung der Daten . . . . . . . . . . . . . . . . . . . . . . . . .      23
          4.2.1   Auswahl der Daten . . . . . . . . . . . . . . . . . . . . . .       23
          4.2.2   Erstellung der Datenbankabfragen . . . . . . . . . . . . . .        24
          4.2.3   Datenbankabfragen zu PHP übergeben . . . . . . . . . . .           28
          4.2.4   Ausführung der PHP-Dokumente . . . . . . . . . . . . . .           28
VISUALISIERUNG VON IMMATRIKULATIONSDATEN MIT HILFE VON SVG, PHP UND MYSQL - BACHELORARBEIT VON MUSTAPHA FYJRI GUTACHTER PROF. DR. OLIVER ...
3

    4.3   Erstellung von SVG-Dateien . . . . . . . . . . . . . . . . . . . . .       30
          4.3.1   SVG durch PHP . . . . . . . . . . . . . . . . . . . . . . .        31
          4.3.2   SVG durch ECMAScript . . . . . . . . . . . . . . . . . . .         32
    4.4   Einbindung Externer SVG-Dateien . . . . . . . . . . . . . . . . .          33
    4.5   Darstellung der Abfrageergebnisse . . . . . . . . . . . . . . . . . .      35
          4.5.1   Kreisdiagramm . . . . . . . . . . . . . . . . . . . . . . . .      35
          4.5.2   Säulendiagramm . . . . . . . . . . . . . . . . . . . . . . .      36
    4.6   Präsentation der Benutzeroberfläche . . . . . . . . . . . . . . . . .    37
          4.6.1   Startseite . . . . . . . . . . . . . . . . . . . . . . . . . . .   38
          4.6.2   Hauptseite . . . . . . . . . . . . . . . . . . . . . . . . . . .   40

5 Schlussbetrachtungen                                                               42
    5.1   Flexibilität der Anwendung . . . . . . . . . . . . . . . . . . . . .      42
    5.2   Visualisierung von SVG . . . . . . . . . . . . . . . . . . . . . . .       42
    5.3   Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   42

A Inhalt der CD-Rom                                                                  44

B Literaturverzeichnis                                                               45

Erklärung
VISUALISIERUNG VON IMMATRIKULATIONSDATEN MIT HILFE VON SVG, PHP UND MYSQL - BACHELORARBEIT VON MUSTAPHA FYJRI GUTACHTER PROF. DR. OLIVER ...
4

Abbildungsverzeichnis

    2.1   SVG Basiselemente . . . . . . . . . . . . . . . . . . . . . . . . . .      10
    3.1   Datenmodell der Immatrikulationsdaten . . . . . . . . . . . . . .          17
    3.2   Datenmodell der Abschlussprüfungsdaten . . . . . . . . . . . . . .        18
    4.1   Anwendungschema . . . . . . . . . . . . . . . . . . . . . . . . . .        22
    4.2   Datenauswahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     24
    4.3   Ermittlung der Daten . . . . . . . . . . . . . . . . . . . . . . . . .     25
    4.4   Kreisdiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . .      36
    4.5   Säulendiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . .      37
    4.6   Startseite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   39
    4.7   Auswahlkriterien . . . . . . . . . . . . . . . . . . . . . . . . . . .     39
    4.8   Hauptseite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   41
VISUALISIERUNG VON IMMATRIKULATIONSDATEN MIT HILFE VON SVG, PHP UND MYSQL - BACHELORARBEIT VON MUSTAPHA FYJRI GUTACHTER PROF. DR. OLIVER ...
5

Quellcodeverzeichnis
    2.1   Struktur einer SVG-Datei . . . . . . . . . . . . . . . . . . . . . .      8
    2.2   SVG Basiselemente . . . . . . . . . . . . . . . . . . . . . . . . . .     9
    2.3   SVG Animationselemente . . . . . . . . . . . . . . . . . . . . . .        11
    2.4   Event-Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . .    11
    4.1   Methode zum Sammeln/Verschicken der Abfragen            . . . . . . . .   26
    4.2   SQL-Anfragen-Methode . . . . . . . . . . . . . . . . . . . . . . .        27
    4.3   Methode zur Datenermittlung . . . . . . . . . . . . . . . . . . . .       28
    4.4   Kreisdiagramm.php . . . . . . . . . . . . . . . . . . . . . . . . . .     29
    4.5   querymisdb-Methode . . . . . . . . . . . . . . . . . . . . . . . . .      30
    4.6   Erzeugung von SVG durch PHP . . . . . . . . . . . . . . . . . . .         31
    4.7   Erzeugung von SVG durch ECMAScript . . . . . . . . . . . . . .            33
    4.8   Einbinden von externen SVG-Dateien . . . . . . . . . . . . . . . .        34
VISUALISIERUNG VON IMMATRIKULATIONSDATEN MIT HILFE VON SVG, PHP UND MYSQL - BACHELORARBEIT VON MUSTAPHA FYJRI GUTACHTER PROF. DR. OLIVER ...
1 Einleitung                                                                     6

1    Einleitung

Im Sommersemester 2004 hat der Verfasser der vorliegenden Bachelorarbeit an
der Vorlesung Computergerafik“ unter der Leitung von Herrn Prof. Dr. Oliver
               ”
Vornberger am Institut für Informatik an der Universität Osnabrück teilgenom-
men. Daran schloss sich ein Computergrafikpraktikum an, das der Verfasser ge-
meinsam mit einem Komilitonen erfolgreich absolvierte. Die Aufgabe während
des Praktkums bestand darin, das Spiel Sokoban“ mithilfe von SVG zu pro-
                                          ”
grammieren. Die Arbeit an dem Programm und die damit zusammenhängende
Beschäftigung mit der Programmiersprache SVG weckte beim Autor dieser Ar-
beit das Interesse, sich im fortlaufenden Studium der Informatik mit der Pro-
grammiersprache SVG intensiver zu beschäftigen. Die Auswahl des Themas für
die vorliegende Arbeit wurde in enger Abstimmung mit Herrn Prof. Dr. Vornber-
ger getroffen. Es war dem Verfasser wichtig, eine praxisnahe Arbeit zu erstellen,
in der er seine guten Kenntnisse in SVG und im Bereich von Datenbanken an-
wenden konnte.

Die Visualisierung der Immatrikulationsdaten durch diese Webanwendung ist so-
wohl für die Universität als auch für potentielle Studenten bzw. Absolventen von
Interesse. Man kann sich z.B. über die Verteilung der Studierenden bzw. Ab-
solventen nach Fachbereichen, Studienabschlüssen oder die Anzahl ausländischer
Studierender bzw. Absolventen informieren.

Bisher gab es keine frei zugängliche Seite im Internet, auf der man sich über
Immatrikulationsdaten Osnabrücker Studenten informieren konnte. Sollte sich
diese Anwendung in der Praxis bewähren, wäre es wünschenswert, dieses Inter-
netportal in die Homepage der Universität zu integrieren.

Diese Arbeit wurde mit Hilfe des Programms LaTeX erstellt. Programmbedingt
werden einige der vom Autor eingefügten grafischen Darstellungen nicht an ih-
rer ursprünglichen Stelle wiedergegeben. Der Autor verweist deshalb an manchen
Stellen explizit auf den Ort der Grafiken.

Sollte sich der Leser für das Ergebnis der vorliegenden Arbeit interessieren, so
VISUALISIERUNG VON IMMATRIKULATIONSDATEN MIT HILFE VON SVG, PHP UND MYSQL - BACHELORARBEIT VON MUSTAPHA FYJRI GUTACHTER PROF. DR. OLIVER ...
1 Einleitung                                                                     7

besteht die Möglichkeit, durch folgenden Link
http://www-lehre.inf.uos.de/~mfyjri/Bachelorarbeit/
die entsprechende Webseite zu erreichen.

1.1    Ziel der Arbeit

Das Ziel der vorliegenden Bachelorarbeit bestand darin, ausgewählte Immatriku-
lationsdaten der Studenten an der Universität Osnabrück in einer Webanwendung
zu präsentieren. Diese Anwendung sollte eine allgemein verständliche Benutzero-
berfläche haben, über die richtigen Daten verfügen und über eine überschaubare
Programmierlogik verfügen.

Die verwendeten Immatrikulationsdaten stammen von einer MySQL-Datenbank
des Rechenzentrums der Universität Osnabrück. Zur Visualisierung der ausgewähl-
ten Daten hat sich der Verfasser der Programmiersprache SVG bedient, da sich ih-
re Eigenschaften nicht nur gut zur Visualisierung von Geo-Informationssystemen
(GIS) eignen, sondern auch zur Visualisierung von Statistiken.

1.2    Aufbau der Arbeit

Die vorliegende Bachelorarbeit ist in fünf Kapitel gegliedert. Nach der Einleitung
erfolgt in den ersten beiden Kapiteln die theoretische Fundierung des Themas.
Der Verfasser beschäftigt sich dort mit den theoretischen Grundlagen der Pro-
grammiersprachen SVG, PHP, ECMAScript und MySQL, die für den praktischen
Teil und somit dem Hauptbestandteil seiner Bachelorarbeit, von Bedeutung sind.
Daran anschließend stellt der Autor die Datenbank des Rechenzentrums der Uni-
versität Osnabrück vor, weil sie die Quelle seiner Daten ist. Daran anschliessend
nähert er sich dann dem Hauptteil seiner Arbeit, der Webanwendung. In Kapitel
vier stellt er die Hauptanwendung mit ihren Elementen vor und beschreibt, wie
er bei der Erstellung vorgegangen ist. Kapitel fünf schließlich besteht aus der
Schlussbetrachtung und einem Ausblick in die Zukunft seiner Anwendung.
2 Grundlagen                                                                     8

2     Grundlagen

In diesem Kapitel werden die verwendeten Programmiersprachen SVG, PHP, EC-
MAScript und MySQL vorgestellt.

2.1    SVG

SVG steht für Scalable Vector Graphics und bedeutet skalierbare Vektorgrafi-
                                                         ”
ken“. Sie entstand seit August 1998, seitdem arbeitet das Web Consortium (W3C)
an seiner Spezifikation. Im September 2001 wurde die erste SVG-Empfehlung un-
ter dem Namen Scalable Vector Graphics (SVG) 1.0 Specification veröffentlicht.

Zur Zeit wird an der Version SVG 1.2 gearbeitet und steht aktuell als Entwurf
zur Verfügung. Parallel werden auch SVG-Versionen für mobile Geräte wie Mo-
biltelefone und PDA’s weiter entwickelt. Die Entwickler berücksichtigen dabei,
dass diese Geräte wenig Ressourcen zur Verfügung haben.

SVG ist eine Sprache zur Beschreibung von zweidimensionalen Grafiken, basie-
rend auf XML (Extensible Markup Language). SVG unterstüzt drei Typen von
grafischen Objekten: Vektorgrafikelemente (z.B. Geraden und Kreise), Bilder und
Text. Die grafischen Objekte können gruppiert, transformiert und/oder wieder
benutzt werden. Dies ist ein grosser Vorteil gegenüber den Rastergrafiken, die ei-
ne Punktmatrix beschreiben und wo jedes Pixel einzeln durch seine Koordinaten
und seinen RGB-Wert definiert ist.

Die SVG-Grafiken lassen sich stufenlos vergrössern und verkleinern und können
mit Hilfe von Texteditoren editiert werden. Im Gegensatz zu Macromedia Flash
ist SVG eine Open-Source-Software und Web-Standard geworden. Außerdem bie-
ten die SVG-Dateien Flexibilität und Einfachheit durch ihre Strukturierung und
ihren Textformat. Ein grosser Nachteil von SVG besteht darin, dass jeder Nutzer
schnell auf die Quelldaten zugreifen kann. Das ist in der Grafikdomain natürlich
nicht wünschenswert. Deshalb gibt es bereits die Vorgabe für zukünftige SVG-
Versionen, dass Verschlüsselungsmechanismen integriert werden sollen.[Fib2002]
2 Grundlagen                                                                 9

Im Folgenden werden nur die Eigenschaften von SVG erläutert, die für diese
Arbeit von Wichtigkeit sind. Außerdem bietet die Seite von Dr. T. Meinike dem
Leser eine Ausführliche und sehr nützliche Sammlung von SVG-Dateien.[Mei2006]

2.1.1   Syntax und Basiselemente

Der Kopf eines SVG-Dokumentes sollte immer die Sprache des Dokumentes (XML,
Version 1.0) und der DTD (SVG Version) beinhalten. Die Namensraum-Deklarationen
können vorgenommen werden, ist aber nicht unbedingt erforderlich. Dies wird am
folgenden Quellcode 2.1 dargestellt:

                  Quellcode 2.1: Struktur einer SVG-Datei

Nach dem Definieren der Deklarationen werden zwischen die -Tags die
Grafikelemente hinzugefügt. Es gibt die vier folgenden Typen von SVG-Tags:

   • Grafikelemente wie , ,  und 

   • Containerelemente wie , , ,  und 

   • Referezelemente für Grafiken sind  und

   • Elemente für die Textauszeichnung wie , ,  und 

Im Folgenden wird am Quellcode 2.2 dargestellt, wie einige der oben gennanten
Elemente in ein SVG-Dokument eingefügt werden können.
2 Grundlagen                                                                      10

 SVG: ist super ! 

                       Quellcode 2.2: SVG Basiselemente

Die Abbildung 2.1 auf der nächsten Seite zeigt, welche Grafik aus dem vorherigen
Quellcode entstanden ist. Dies ist ein Beispiel aus der Computergrafikvorlesung
im Sommersemester 2004 bei Herrn Prof. Dr. Vornberger.[CG2004]

2.1.2   Animationen

Die Animationen sind ein wichtiger Bestandteil der Programmiersprache SVG.
Sie unterstüzt die Fähigkeit, die Vektorgrafiken in zeitlicher Abhängigkeit zu mo-
difizieren. Die Animationen in SVG basieren auf dem XML-Multimediastandard
Synchronized Multimedia Integration Language (SMIL) und können in Bewegungs-
und Farb- bzw. Attributanimationen unterteilt werden.

Es gibt fünf verschiedene Animationsarten:

   • Bewegung entlang eines Pfades: 

   • Zeitliche Veränderung der Farbeigenschaften: 

   • Zeitliche Modifizierung der Transformationseigenschaften: 

   • Zeitliche Veränderung für fast jedes Attribut: 

   • Kürzere Version von :
2 Grundlagen                                                                      11

                       Abbildung 2.1: SVG Basiselemente

Der folgende Quellcode 2.3 auf der folgenden Seite zeigt eine Farbänderung mit
Hilfe von -Tag.

2.1.3   Interaktivität

Wie alle XML-Dokumente verfügen SVG-Dateien über ein DOM (Document Ob-
ject Model ), welches dem W3C-DOM sehr ähnlich ist. Durch das DOM ist es
möglich, auf alle Elemente und Attribute eines Dokumentes zuzugreifen und die-
se zu ändern. Diese Interaktivität wird von einer Skriptsprache, wie beispielsweise
Javascript, übernommen. Die Interaktion beginnt beim Auslösen eines Ereignises
und wenn darauf reagiert wird, kann die Reaktion eine Animation, aber auch der
Start eines Skriptes sein.

Skripte können in SVG-Dokumente entweder direkt eingebettet oder als externe
Skripte eingebunden werden. SVG bietet eine Vielzahl von Event-Attributen für
die Elemente z.B. onload, onmouseover oder onclick. Diese Attribute lösen dann
Ereignisse aus.[W3C2006]
2 Grundlagen                                                                   12

Weiter

                   Quellcode 2.3: SVG Animationselemente

Im folgenden Quellcode 2.4 wird eine Möglichkeit der Interaktion vorgestellt.
Zunächst wird in einer SVG-Grafik ein Rechteck angelegt. Dieses Rechteck verfügt
über den Event-Handler onclick als Attribut und soll auf das Klicken reagieren.
Dann ändert es seine Farbe mit Hilfe einer ECMAScriptmethode, die im Skript-
bereich definiert ist.

.....

......

......

                        Quellcode 2.4: Event-Handling
2 Grundlagen                                                                    13

2.2    PHP

PHP steht für Hypertext Preprocessor und ist eine serverseitige Skriptsprache, die
von Rasmus Lerdorf 1995 entwickelt wurde. Die aktuellen Versionen sind 5.1.2
(12. Januar 2006) und die verbesserte 4-Version vom 13. Januar 2006 lautet 4.4.2.
PHP wurde für die dynamische Generierung von Webseiten entwickelt und er-
laubt Datenbank- und Dateizugriffe. Mittlerweile läuft PHP auf sehr vielen Ser-
vern der Welt und wird wegen seiner Einfachheit und leichten Erlernbarkeit
geschätzt. Außerdem ist PHP eine Open-Source-Software (lizenzfrei), die die freie
Verwendung und Veränderung der Quelltexte erlaubt. Sie existiert für viele Be-
triebsysteme und wird um viele Funktionen zur objektorientierten Programmier-
sprache erweitert.[PHP2005]

Damit PHP-basierte Anwendungen funktionieren, muss zuerst PHP auf dem Ser-
ver installiert sein. PHP-Dateien können zwar mit einem normalen Texteditor
geschrieben werden, jedoch nicht ausgeführt werden. Die PHP-Dateien müssen
auf dem Server liegen, und wenn ein Client über seinem Browser diese Dateien
aufruft, werden sie im PHP-Interpreter ausgeführt. Die Ausgabe wird erzeugt
und zum Clientbrowser zurückgegeschickt . Als Ausgabe können PDF-Dateien,
Bilder oder Flash-Animationen u.a. neben HTML-Dateien erzeugt werden.

Die serverseitige Ausführung hat viele Vorteile, beispielsweise sind beim Client-
browser keine speziellen Fähigkeiten erforderlich und es können keine Probleme
auftreten, wie es beispielsweise bei JavaScript und den verschiedenen Browsern
der Fall ist. Außerdem bleibt der PHP-Quelltext der Seite auf dem Server und
der Besucher dieser Seite kann nur die generierten Daten einsehen. Gleiches gilt
für andere Ressourcen wie z. B. Datenbanken, die daher auch keine direkte Ver-
bindung zum Client benötigen. Damit erhöht sich z.B. die Sicherheit im Internet.

Nachteilig ist, dass jede Abfrage des Clients erst bei einem erneuten Aufruf der
Seite erfasst werden kann. Da PHP normalerweise in einer Webserverumgebung
läuft, unterliegt es auch dem zustandslosen HTTP. Allerdings wirkt PHP mit
seinem Sessionmechanismus dagegen an. Dazu wird auch jede PHP-Seite vom
Server interpretiert. Dies kann zu einer Serverbelastung führen.
2 Grundlagen                                                                      14

Diese Vor- und Nachteile sind nicht PHP-spezifisch, sondern treten bei grundsätz-
lich jeder Webanwendung auf. Zusätzlich liest, prüft und übersetzt der Interpreter
den Quelltext bei jedem Aufruf erneut. Dies mindert die Reaktionsgeschwindig-
keit des Servers und erhöht nochmals die Auslastung. Um dem entgegen zu wir-
ken, wurde eine Erweiterung namens MMCache entwickelt. Diese speichert eine
zur Ausführung vorbereitete Version des Programms zwischen und beschleunigt
somit den Zugriff auf diese Datei beim nächsten Aufruf. Der MMCache wird
inzwischen nicht mehr weiterentwickelt, seine Stelle nimmt der Nachfolger eAc-
celerator ein.[MMC2003]

2.3    ECMAScript

ECMA steht für European Computer Manufacturers Association. Sie ist eine pri-
vate Normungsorganisation zur Standardisierung von Computersystemen in Eu-
ropa. ECMA hat mit der Standardisierung von Javascript 1997 den Streit zwi-
schen den Firmen Microsoft und Netscape um Weiterentwicklung der Skriptspra-
che Javascript ausgelöst und einen neuen Standard namens ECMAScript erstellt.
Dieser Standard gruppiert Javascript und Jscript (eine Javascript ähnliche Vari-
ante von Microsoft) unter dem selben Dach.[ECMA2004]

Javascript ist von Netscape 1995 als clientseitige Skriptsprache zum Optimieren
der Internetseiten veröffentlicht worden. Als Stammname hieß die Sprache Li-
veScript. Die Sprachsyntax von LiveScript ähnelt der von Java und der Name
der Sprache wird wegen des Java-Booms aufgrund von Marketing-Aspekten in
Javascript umgewandelt.[Koch2003]

2.4    MySQL

MySQL ist ein Datenbankverwaltungssystem und eine Schutzmarke der schwedi-
schen Firma MySQL AB.

MySQL ist ein sehr schneller und robuster Multi-Thread und Multi-User SQL-
Datenbank-Server. SQL steht für Structured Query Language, strukturierte Abfrage-
2 Grundlagen                                                                15

Sprache für den Zugriff und die Manipulation von Datenbanksystemen. Des wei-
teren ist MySQL sehr beliebt bei den Datenbankprogrammierern und existiert
für viele Betriebssysteme. MySQL läßt sich gut mit Apache-Servern und PHP
kombinieren, man spricht von LAMP bzw. WAMP ( Linux-/Windows- Apache-
MySQL-PHP). Die MySQL Software steht unter einer Doppellizenz. Man kann
die Software entweder kostenlos verwenden (GNU GENERAL PUBLIC LICEN-
SE, http://www.gnu.org/licenses/) oder man kauft eine kommerzielle Lizenz, um
dann nicht durch die Bestimmungen der GPL gebunden zu sein.

Die MySQL-Datenbanken können durch viele Programmiersprachen erreicht und
abgefragt werden. Beispielsweise die Programmiersprachen C, C++, Eiffel, Ja-
va, Perl, PHP, Python und Tcl. Für jede dieser Sprachen steht eine spezifische
Schnittstelle bereit.

Ein grosser Nachteil von MySQL besteht in der unvollständigen Implementie-
rung des SQL-Standards vom ANSI (American National Standards Institute).
[MySQL2006]
3 Verfügbare Daten                                                             16

3     Verfügbare Daten

In diesem Kapitel werden die verfügbaren Daten vorgestellt, die sich in der
MySQL-Datenbank misdb des Rechenzentrums der Universität befinden. Vorab
wurde von Herrn Prof. Dr. Vornberger die Adresse der Datenbank sowie die Zu-
gangsdaten (Login und Passwort) mitgeteilt und ein Datenmodell in Form eines
Computerausdrucks ausgehändigt, welches die Struktur der Daten wiederspiegelt.

3.1    Datenbank

Wie bereits zu Beginn des Kapitels erwähnt, heisst die Datenbank misdb und
stammt aus dem MIS-Projekt (Management Information System) der Univer-
sität Osnabrück.

Das MIS-Projekt ( Entwicklung eines Management-Information-Systems zur Ver-
                    ”
besserung der Leitungsstrukturen“) wurde von 1998 bis 2000 vom Stifterverband
für die Deutsche Wissenschaft finanziell unterstützt. Die Universität Osnabrück
hat dieses Projekt in sachlicher und personeller Hinsicht vielfach unterstützt.
Hier sind vor allem die Fachgebiete BWL und Wirtschaftsinformatik des Fach-
bereichs Wirtschaftswissenschaften zu nennen. Die ersten Ergebnisse des MIS-
Projektes waren derart erfolgreich, dass die Universitätsleitung eigene Mittel zur
Verfügung gestellt hat, um das Projekt weiterzuentwickeln. In dem MIS-Projekt
wurde ein umfassendes, technisch-organisatorisches Basiskonzept mit Referenz-
           ”
charakter zur Integration und Distribution quantitativer und qualitativer Infor-
mationen entwickelt und auf allen Entscheidungsebenen der Universität Osna-
brück (Hochschulleitung, Dekanate, Fachgebiete) implementiert.“
Das MIS-Projekt enthält viele Daten zu verschiedenen Bereichen und Aktivitäten
der Universität (z.B. Haushalt der Universität, Personalwesen,...), die an dieser
Stelle nicht alle genannt werden können.[MIS2001]

Für die vorliegende Bachelorarbeit wurde eine neue Datenbank namens misdb er-
stellt und in einer MySQL-Datenbank des Rechenzentrums umgesetzt. Die misdb
enthält nur Informationen über Studierende und Absolventen. Zu diesen Infor-
mationen gehören beispielsweise Semester, Studiengang, Prüfungsfächer, Regel-
3 Verfügbare Daten                                                             17

studienzeitüberschreitungen, Prüfungsergebnisse, Herkunft der Studierenden, Ge-
burtsort, Hochschulzugangsberechtigung und Hörerstatus.

Nach Erhalt der Zugangsdaten und der Adresse der Datenbank, wurde vom Ver-
fasser ein Datenbanktest durchgeführt. Dafür wurde eine Anwendung erstellt,
die eine Verbindung zur Datenbank herstellte und eine Abfrage der Datenbank
durchführte. Dieser Datenbanktest erwies sich als erfolgreich und bewies, dass die
misdb-Datenbank existiert und auf die Abfragen reagieren würde.

3.2    Datenmodell

Die Abbildungen 3.1 und 3.2 auf der folgenden Seite stellen dar, wie die Daten
in misdb strukturiert sind. Außerdem erläuteren sie auch alle Relationen (Tabel-
len) mit ihren Attributen und Verweisen. Die linke Abbildung zeigt das Daten-
modell der Abschlussprüfungsdaten, die rechte Abbildung zeigt das Datenmodell
der Immatrikulationsdaten. Die Kommentierung der verwendeten Bezeichnungen
befindet sich im Anhang dieser Arbeit.
3 Verfügbare Daten                                              18

          Abbildung 3.1: Datenmodell der Immatrikulationsdaten
3 Verfügbare Daten                                                19

          Abbildung 3.2: Datenmodell der Abschlussprüfungsdaten
3 Verfügbare Daten                                                           20

3.3     Ausgewählte Daten

Die Datenbank misdb enthält eine Vielzahl von Informationen. In Absprache mit
Frau H. Dalinghaus, der zuständigen Administratorin der Datenbank und Herrn
Prof. Dr. Vornberger hat der Verfasser sich dazu entschieden, folgende Immatri-
kulationsdaten für die Webanwendung zu verwenden. Dabei muss zwischen den
Kategorien Studierende und Absolventen unterschieden werden. Zunächst beginnt
der Autor mit der Erklärung der Attribute in der Kategorie Studierende, daran
anschliessend definiert er die verwendeten Begriffe in der Kategorie Absolventen.
Bei der Beschreibung der Attribute hat sich der Verfasser an der MIS-Projekt-
Dokumentation orientiert.

3.3.1   Kategorie Studierende

Erfassungssemester: Auswahlmöglichkeit, für welches Semester Daten ange-
     zeigt werden sollen.

Abschlussart: Akademischer Grad, der am Ende des Studiums verliehen wird.

Studienfach: Bezeichnet das Studienfach, für das ein Studierender eingeschrie-
    ben ist. Zu beachten ist, dass Studienfach“ nicht gleich Studiengang“ ist,
                                   ”                        ”
    da Studierende bspw. beim Abschluss Magister oder Lehramt i.d.R. mit
    allen Teilfächern erfasst werden.

Studiengangzahl: Bezeichnet die Anzahl der Studiengänge, für die ein Studie-
    render einen Abschluss anstrebt.

Fachsemester: Bezeichnet das Semester, in dem ein Studierender eingeschrie-
    ben ist.

Alter: Gibt das Alter der Studierenden in Jahren an. Bei Studierenden wird
     die Differenz der Studienjahre gebildet, denen das aktuelle Semester bzw.
     das Geburtsdatum zuzuordnen ist.

Staatsangehörigkeit: Bezeichnet die Staatsangehörigkeit der Studierenden.

Fachzahl: Bezeichnet die Anzahl der Studienfächer in einem Studiengang, für
    die ein Studierender einen Abschluss anstrebt.
3 Verfügbare Daten                                                          21

Zulassungsart: Klassifizierung der Hochschulzugangsberechtigung.

Zulassungsort: Bezeichnet den Ort, in dem der Studierende seine Hochschul-
     zugangsberechtigung erworben hat.

Geschlecht: Bezeichnet das Geschlecht des Studierenden.

Beurlaubungsgrund: Gruppierung nach Gründen für die Beurlaubung eines
    Studierenden.

Exmatrikulationsgrund: Gruppierung nach Gründen für die Exmatrikulati-
   on eines Studierenden.

Hörerstatus: Gruppierung der Studierenden ensprechend ihrer semesterweisen
     Qualifizierung (z.B. Haupt- und Nebenhörer).

Meldestatus: Bezeichnet die Art des Immatrikulationsvorgangs“, z.B. Erst-,
                                    ”
    Neueinschreibung, Rückmeldung.

Regelzeitüberschreitung: Gibt je Studierendem die Anzahl der Semester an,
    um die die zugehörige Regelstudienzeit im aktuellen Semester überschritten
    ist.

3.3.2   Kategorie Absolventen

Prüfungssemester: Auswahlmöglichkeit, für welches Semester Daten ange-
     zeigt werden sollen.

Abschlussart: Akademischer Grad, der am Ende des Studiums verliehen wor-
    den ist.

Prüfungsfach: Bezeichnet das Studienfach, für das ein Absolvent eine Prüfung
     abgelegt hat.

Studiengangzahl: Bezeichnet die Anzahl der Studiengänge, für die ein Absol-
    vent einen Abschluss erreicht hat.

Prüfungsalter: Gibt das Alter der Absolventen in Jahren an. Bei Prüfungen
     wird die Differenz zwischen Prüfungs- und Geburtsjahren gebildet.
3 Verfügbare Daten                                                          22

Staatsangehörigkeit: Bezeichnet die Staatsangehörigkeit der Absolventen.

Fachzahl: Bezeichnet die Anzahl der Studienfächer in einem Studiengang, für
    die ein Absolvent einen Abschluss erreicht hat.

Zulassungsart: Klassifizierung der Hochschulzugangsberechtigung.

Zulassungsort: Bezeichnet den Ort, in dem ein Absolvent seine Hochschulzu-
     gangsberechtigung erworben hat.

Geschlecht: Bezeichnet das Geschlecht des Absolventen.

Fachkombination: Abfolge der Prüfungsfächer (Teilstudiengänge), z.B. die zwei/drei
    Fächer beim Magister-Abschluss oder die Fächer beim Lehramts-Abschluss.

Prüfungsergebnis: Ergebnis, mit dem ein Absolvent sein Studium abgeschlos-
     sen hat.

Regelzeitüberschreitung: Gibt je Absolventen die Anzahl der Semester an,
    um die die zugehörige Regelstudienzeit im Prüfungssemester überschritten
    war.
4 Erstellung der Anwendung                                                     23

4     Erstellung der Anwendung

In diesem Kapitel beschreibt der Verfasser, wie er bei der Erstellung der Anwen-
dung vorgegangen ist. Zur Veranschaulichung des Ablaufs einer Webanwendung,
zeigt er zuerst das Webanwendungsschema, daran anschliessend beschäftigt er
sich mit der Ermittlung zu verwendender Daten. Im Folgenden wird die Erstel-
lung und Einbindung von SVG-Dateien in die Anwendung erklärt. Abschliessend
beschäftigt er sich mit der Darstellung der Abfrageergebnisse und der Vorstellung
der Benutzeroberfläche.

4.1    Webanwendungensschema

Der Ablauf des Aufrufs einer PHP-Anwendung wird in Abbildung 4.1 gezeigt.
Vorausgesetzt wird eine Netzwerk- oder Internetinstallation und ein lauffähiger
Browser, der auch SVG visualisieren kann.

                                       Webserver
                                                                   Server
                                      (Apache, etc)

      Client
                     Internet            PHP
      Browser                            (Modul/Interpreter)   Anwendung

                                                               Datenbank

                       Abbildung 4.1: Anwendungschema
4 Erstellung der Anwendung                                                     24

Die Anwendung und die Datenbank müssen auf dem Server vorhanden sein und
PHP muss ebenfalls installiert sein. Nur so können die PHP-Skripte ausgeführt
werden.

Der Benutzer startet diese Webanwendung, indem er in seinem Browser die Adres-
se des Webservers eingibt. Damit sendet er die erste Anfrage. Der Webserver
nimmt diese Anfrage entgegen und übergibt sie an die Webanwendung. Der PHP-
Interpreter auf dem Webserver verarbeitet den Anwendungs-Code und erzeugt
daraus im Browser den SVG-Quellcode einer Webseite. Falls eine Datenbankab-
frage erforderlich ist, übernimmt der PHP-Interpreter diese Aufgabe und übergibt
die vom Datenbank-Server gelieferten Daten an den Webserver. Die generierte
Webseite ist die grafische Benutzeroberfläche der Webanwendung.

4.2     Ermittlung der Daten

Die Programmiersprache PHP übernimmt die Ermittlung der Daten. Wie be-
reits im Kapitel Grundlagen“ erwähnt wurde, verfügt PHP über eine Vielzahl
                ”
von Methoden zum Abfragen der Datenbanken und Rückübermittlung der Ant-
worten. ECMAScript übernimmt die Aufgabe der Erstellung der Abfragen nach
Wunsch des Anwenders.

Die Datenermittlung läuft in zwei Phasen, zuerst auf dem Browser des Clienten
und danach auf dem Server. Dies wird in den nächsten Unterabschnitten beschrie-
ben. Alle Operationen laufen im Hintergrund, bei erfolgreicher Datenermittlung
erscheint das Resultat auf der Anzeigefläche der Anwendung.

4.2.1   Auswahl der Daten

Beim Starten der Anwendung und nach der Auswahl der Statistiken auf der
Navigationsleiste hat man die Wahl zwischen den Kategorien Studierende“ und
                                                            ”
 Absolventen“. Nach entsprechender Auswahl sollen anschliessend Attribute aus-
”
gewählt werden, beispielsweise Erfassungssemester“ oder Studienfach“. Die An-
                                 ”                      ”
zahl der Attribute ist frei wählbar.
4 Erstellung der Anwendung                                                  25

Die folgende Abbildung 4.2 zeigt, wie der Benutzer seine gewünschten Daten
auswählen kann.

                        Abbildung 4.2: Datenauswahl

Die Kategorien können über Anklicken der Karteien augewählt werden. Die At-
tribute werden durch anklicken auf die Radiobuttons aktiviert. Hat der Benutzer
seine Entscheidung getroffen, dann klickt man auf den Button Weiter“ und ge-
                                                               ”
langt automatisch auf die Hauptseite.

4.2.2   Erstellung der Datenbankabfragen

Auf der Hauptseite werden dem Benutzer seine ausgewählten Attribute im From
von Comboboxen dargestellt. Jede Combobox enthält alle möglichen Werte, die
aus der misdb-Datenbank ermittellt werden. Nach der Auswahl der gewünschten
Werte in den Comboboxen muss der Anwender sich noch dafür entscheiden, wie
die Ausgabedaten gruppiert sein sollen. Ausserdem sollte man auch einen Dia-
grammtyp aussuchen, als Standard steht das Säulendiagramm zur Verfügung.

Abbildung 4.3 zeigt die Comboboxen, in denen der Anwender auswählen kann.
4 Erstellung der Anwendung                                                    26

                     Abbildung 4.3: Ermittlung der Daten

Die SQL-Abfragen werden aufgebaut mit Hilfe von mehreren Methoden. Beim
Klicken auf den Button Anzeigen“ wird eine ECMAScriptmethode gestartet.
                         ”
Diese soll die ausgewählten Informationen zum Aufbauen der SQL-Abfragen
sammeln. Zum Anzeigen des oben gennanten Ablaufs wird ein Beispielcode 4.1
präsentiert. Die ECMAScript-Variable stud absol“ steht für die ausgewählte Ka-
                                     ”
tegorie ( Studierende“ oder Absolventen“), dazu füllen die drei Variablen sql1“,
         ”                 ”                                              ”
 sql2“ und sql3“ die SQL-Klausel SELECT sql1 FROM sql2 WHERE sql3“ aus.
”           ”                     ”
Wenn der Anwender die Kategorie Studierende (stud absol=1 ) ausgewählt hat,
dann wird der Name der Studierendentabelle “FKT STUDIENGAENGE“ zu sql2
4 Erstellung der Anwendung                                                   27

hinzugefügt. Je nachdem, was der Benutzer in den Comboboxen selektiert hat,
wird eine Schleife zum Übermitteln der Wahl gestartet und eine andere Methode
aufgerufen (siehe unten).

function anfrage_schicken(){
  .......
if(stud_absol == 1){
    sql2 +="FKT_STUDIENGAENGE";
    sql3 +="1=1";
    for(var i=1 ; i
4 Erstellung der Anwendung                                         28

function sql1_ermittStud(string){
    var sqlstr="";
    switch(string){
case "Erfassungssemester" :
     sqlstr = "distinct SEM_BEZEICHNUNG,count(STG_MATRIKELNR)";
     sql2+= ",DIM_SEMESTER" ;
     sql3+= ",SEM_SEMESTER=STG_SEMESTER, group by SEM_SEMESTER";
     ueberschrift ="Studierende nach Erfassungssemester";
     break;
case "Abschlussart" :
     sqlstr = " distinct ABINT_DTXT,count(STG_MATRIKELNR)";
     sql2+=",DIM_ABSCHLUESSE" ;
     sql3+=",ABINT_ID=STG_ABSCHLUSS, group by ABINT_DTXT";
     ueberschrift ="Studierende nach Abschlussart ";
     break;
........
default : break;
    }
    return sqlstr;
}

function sql23_ermittStud(string1, string2){
    var sqlstr="";
    switch(string1){
case "Erfassungssemester" :
     sqlstr+=",SEM_SEMESTER=STG_SEMESTER,"
     +"SEM_BEZEICHNUNG=’"+string2+"’";
     sql2+= ",DIM_SEMESTER";
     break;
case "Abschlussart" :
     sqlstr+=",ABINT_ID=STG_ABSCHLUSS,ABINT_DTXT=’"+string2+"’";
     sql2+=",DIM_ABSCHLUESSE";
     break;
.........
default : break;
    }
    return sqlstr;
}
                 Quellcode 4.2: SQL-Anfragen-Methode
4 Erstellung der Anwendung                                                    29

4.2.3   Datenbankabfragen zu PHP übergeben

Im vorherigen Abschnitt wurde erklärt, wie die SQL-Abfragen zusammengesetzt
sind. Im nächsten Javascript-Beispielcode 4.3 wird nun die Übergabe von Ab-
fragen zu PHP-Dateien dargestellt. Die PHP-Dateien werden aufgerufen mit
Parametern hinter dem Fragezeichen. Mit Hilfe von Superglobalen Arrays z.B.
  $ POST“ und $ GET“, die seit PHP 4.1.0 zur Verfügung stehen, kann man
”                ”
auf die angehängten Informationen zugreifen. Beispielsweise ist $ GET“ ein as-
                                                                  ”
soziatives Array mit Variablen, das an das aktuelle Skript mit der GET-Methode
übergeben wurde. Das Array ist automatisch global in allen Gültigkeitsbereichen
und ist in allen Sichtbarkeitsbereichen eines Skripts verfügbar.[PHP2005]

function anfrage_schicken(){
  ......
  objekt=document.getElementById("box"+(eig_zahl+2).toString());
  if(objekt.getFirstChild().getData() == "Balkendiagramm")
   loadFile("balken_Diag.php?var1="+sql1+"&var2="+sql2+
"&var3="+sql3+"&var4="+ueberschrift);
else if(objekt.getFirstChild().getData() == "Kreisdiagramm")
loadFile("kreis_Diag.php?var1="+sql1+"&var2="+sql2+
"&var3="+sql3+"&var4="+ueberschrift);
......
}
              Quellcode 4.3: Methode zur Datenermittlung

4.2.4   Ausführung der PHP-Dokumente

PHP verfügt über standardisierte Methoden zum Abfragen vieler Arten von Da-
tenbanken. In unserem Fall ist misdb eine MySQL-Datenbank. Der Beispielcode
aus dem PHP-Skript dieser Anwendung stellt die Methode querymisdb() vor,
welche genau drei Parameter als Zeichenkette bekommt. Ausserdem enthält diese
Methode auch andere Informationen wie Datenbankadresse (URL), Benutzerna-
me und Passwort.

Vor der Beschäftigung mit den Datenbankoperationen wird der Mechanismus von
$ GET -Array in PHP duch ein Beispiel 4.4 aus dem Quellcode vorgestellt.
4 Erstellung der Anwendung                                                       30

Ein Aufruf kann folgendermassen aussehen:

("kreis_Diag.php?var1="+sql1+"&var2="+sql2+"&var3="+sql3+
"&var4="+ueberschrift")

                      Quellcode 4.4: Kreisdiagramm.php

Wie querymisdb() hier zeigen wird, werden die Methoden mysql pconnect($host,
$benutzer, $pwort), mysql select db($datenbank), mysql query() und mysql result()
benutzt. Die erste Methode dient zum Aufbau einer permanenten Verbindung
zum MySQL Server. Die zweite Methode bekommt als Parameter einen Daten-
banknamen, und versucht auf der gegebenen Datenbankadresse diese Datenbank
zu wählen. Die dritte Methode schickt die Anfrage, die sie als Zeichenkette erhält
an die Datenbank. Falls eine Antwort generiert wird, wird sie durch die vierte
Methode zurückgeliefert. Die for -Schleife im Programm versucht, aus dem Re-
sultat ein Array zu liefern. So wird es einfacher, auf die Daten zuzugreifen und
sie zu verarbeiten.

Die Variablen in PHP werden durch das $-Zeichen eingeführt.
4 Erstellung der Anwendung                                                    31

function querymisdb($selcols,$table,$equa) {

      $host = "********";
      $benutzer = "********";
      $pwort = "*******";
      $datenbank ="misdb";
      @mysql_pconnect($host, $benutzer, $pwort)
          or die ("Verbindung ist fehlgeschlagen !");
      @mysql_select_db($datenbank)
          or die ("Auswahl der Datenbank fehlgeschlagen!");
      $result=mysql_query("select $selcols from $table where $equa");
      if (!$result) {
          die(’Ungltige Abfrage: ’ . mysql_error());
      }
      else{
          $zeilenzahl=mysql_numrows($result);
          $spaltenzahl=mysql_numfields($result);
          for ($j=0; $j < $spaltenzahl; $j++) {
              for ($i = 0; $i < $zeilenzahl; $i++ ) {
                  $parameter[$j][$i]=mysql_result($result,$i,$j);
              }
          }
          return $parameter;
      }
}

                     Quellcode 4.5: querymisdb-Methode

4.3    Erstellung von SVG-Dateien

Man hat verschiedene Möglichkeiten, SVG-Dateien zu erstellen. Entweder direkt
mit einem Texteditor zu schreiben oder Dateien dynamisch durch unterschiedli-
che Programmiersprachen zu erzeugen. Dies kann serverseitig z.B. mit Hilfe von
PHP, JSP oder ASP, aber auch clientseitig beispielsweise mit Hilfe von Javascript
erfolgen. Im Folgenden werden einige Möglichkeiten vorgestellt.
4 Erstellung der Anwendung                                                     32

4.3.1    SVG durch PHP

Die Start- und Hauptseite sind im grössten Teil durch PHP erzeugt. PHP Skrip-
te werden auf dem Webserver beim Aufruf der Anwendung über einen Link aus-
geführt. Dieser Aufruf erzeugt daraufhin eine SVG-Datei. Hier wird vorausgesetzt,
dass PHP auf dem Webserver installiert und funktionsfähig ist. PHP erlaubt das
Einbetten von PHP-Codes in SVG-Dateien, die auf diese Weise dynamische In-
halte bekommen. Die Datenquelle kann auch aus anderen Dateien, Datenbanken
oder anderen Anwendungen bestehen. SVG und PHP können ineinander einge-
bettet sein.
Beispiel:

               Quellcode 4.6: Erzeugung von SVG durch PHP

Wie an diesem Beispiel verdeutlich wird, sind die SVG- und PHP-Codes zwar
ineinander eingebettet, aber voneinander getrennt. PHP-Code ist zwischen den
Klammern
4 Erstellung der Anwendung                                                    33

wird es in Laufzeit auf dem Server ersetzt. Beim Clienten kommt ein reiner SVG-
Code an, der im SVG-fähigen Browser angezeigt werden kann.

Durch den Befehl header(“Content-Type: image/svg+xml“); erfolgt zu Beginn des
PHP-Abschnittes eine Festlegung des Inhaltstyp des zu lieferenden Dokumentes.
So erwartet der Browser, dass das folgende XML-Dokument eine SVG-Grafik
ist. Danach wird anhand der Zeile print(‘ ‘); der XML-Header gesendet, der im Kopf jeder SVG-Datei stehen
muss. Man kann hier entweder den print- oder echo-Befehl benutzen, und auch die
oben gennante XML-Deklaration ausserhalb des PHP-Codes einsetzen. An dieser
Stelle sollte man vorsichtig sein, weil PHP die XML-Deklaration einschliessen-
den Klammern zu interpretieren versucht. Nach diesen Deklarationen werden die
PHP-Variablen initialisiert. Dann folgt die Doctype-Definition. Im Anschluss dar-
an erfolgt die Deklaration des SVG-Wurzelelementes und seiner Attribute (Höhe
und Breite). Diese Attribute bekommen ihre Werte aus dem PHP-Code nach der
Interpretation.
Folglich wird ein Rechteck mit normalem SVG-Syntax erzeugt. Im Anschluss dar-
an wird ein zweites Rechteck mit einer Parameterübergabe innerhalb des PHP-
Codes erzeugt.
Als Resultat der Ausführung dieses PHP-Skriptes auf dem Webserver erhält
der Benutzer eine SVG-Grafik auf dem Bildschirm mit zwei verschiedenfarbigen
Rechtecken (grün und schwarz). [Carto2006]

4.3.2   SVG durch ECMAScript

Im Gegensatz zu PHP wird ECMAScript serverseitig ausgeführt und dient zur
Interaktivität zwischen dem Benutzer und der Anwendung. Es ist häufig sinn-
voll, die SVG-Elemente dynamisch zu erzeugen. Dadurch können sie duch einen
Methodenaufruf angezeigt oder gelöscht werden. Zugleich werden diese Kompo-
nenten an einer anderen Stelle der Anwendung wieder benutzt.

Der Quellcode 4.7 wird zeigen, dass ECMAScript nicht nur für die Interaktivität
eines SVG-Dokumentes zuständig ist, sondern auch für die Erzeugung und/oder
Nachrüstung von SVG-Elementen. Diese Elemente können sowohl einfache Gra-
4 Erstellung der Anwendung                                                       34

fiken als auch komplexe Strukturen sein.

function baue_Kreis(parent,id,x_mitte,y_mitte,radius,farbe){

       var kreis = document.createElement( ’circle’);
        kreis.setAttribute(’id’,id.toString());
        kreis.setAttribute(’cx’,x_mitte);
        kreis.setAttribute(’cy’,y_mitte);
        kreis.setAttribute(’r’,radius);
        kreis.setAttribute(’stroke’,’black’);
        kreis.setAttribute(’fill-opacity’,’1’);
        kreis.setAttribute(’fill’,’farbe’);

        document.getElementById(parent).appendChild(kreis);

}

           Quellcode 4.7: Erzeugung von SVG durch ECMAScript

Ein Aufruf dieser Methode kann wie folgt aussehen:
baue Kreis(parent id,‘kreis1‘,100,100,50,‘yellow‘);
Aus diesem Aufruf wird ein gelber Kreis mit einer Identität ‘circle ‘, Mittelpunkt-
koordinaten (100;100), Radius (50) und einem schwarzen Rand erzeugt.

4.4    Einbindung Externer SVG-Dateien

Zum Nachladen und Einbinden externer SVG-Dateien werden mittels ECMAS-
cript zwei Methoden benutzt, getURL() und parseXML(). Sie stammen von der
Adobe Spezifikation und sind aktuell in fast allen Viewern implementiert. Allge-
mein dienen sie zum Einbinden von XML-Dateien.

Diese Methoden sind noch nicht standardisiert, aber eine Unterstützung ist in
der SVG Version 1.2 geplant:[Mei2004]

    • Die bisherigen ASV-Methoden getURL() und postURL() lassen sich durch
      die neuen URLRequest-Methoden nachbilden
4 Erstellung der Anwendung                                                      35

   • während parseXML() und printNode() dem Interface Global zugeordnet
     wurden

getURL() bzw. parseXML() ermöglichen das Nachladen von weiteren Daten in
SVG Dateien. Teile von Dateien werden als so genannte XML-Fragmente di-
rekt aufgerufen und eingefügt. Dabei spielt es keine Rolle, ob das nachzuladende
Fragment in einer Datei vorliegt oder durch ein serverseitiges Skript erzeugt wird.

In dieser Arbeit wird man auf zwei Arten von externen SVG-Dateien treffen. Zum
einen handelt es sich dabei um vorgefertigte SVG-Grafiken z.B. die Meldungen
(wie die Wartemeldung).

Zum anderen handelt es sich um SVG-Dateien, die erst nach einer Ausführung
eines PHP-Skriptes geliefert werden. Das PHP-Skript holt Informationen aus der
Datenbank ab und verarbeitet diese weiter.

function loadFile (dateiName) {
          getURL(dateiName, fileLoaded);
}

function fileLoaded (data) {

     if(data.success){
       var node=parseXML(data.content,document);
document.getElementById("view_Box").appendChild(node);
      }
      else{
alert(’schwerer Ladefehler’);
      }
}

             Quellcode 4.8: Einbinden von externen SVG-Dateien

Die Funktionsweise dieser Methoden wird als nächstes vorgestellt. Der Aufruf
der loadFile()-Methode mit einem übergebenen Dateinamen als Parameter wird
von einem Aufruf von getURL() gefolgt. Die Methode getURL() bekommt dann
diesen Dateiname und dazu auch eine Callback -Funktion (hier fileLoaded()) als
4 Erstellung der Anwendung                                                       36

Parameter übergeben. Die Callback -Methode bekommt den Dateinamen und wird
diese Datei auswerten.

Die Auswertung findet erst statt, wenn das Feld Dateiname.success des zurück-
gegebene Objekt true liefert, das heisst die Datei existiert und eingebunden wer-
den. Danach wird der Inhalt dieser Datei mit Hilfe von Dateiname.content in
einer Zeichenkette gespeichert. Dieser Inhalt wird mit Hilfe von der Methode
parseXML() im Dokumentkontext als XML-Knoten zurückgeliefert und wird mit
appendChild() an das SVG-Element ( view Box“) angehängt. Andersfall wird ei-
                                      ”
ne Fehlermeldung ausgegeben.

4.5     Darstellung der Abfrageergebnisse

Mithilfe von Diagrammen lassen sich Daten oder Informationen grafisch dar-
stellen. Der Begriff Diagrammm“ stammt aus dem Griechischen und bedeutet
                    ”
 geometrische Figur“.
”

Bei der Visualisierung der Immatrikulationsdaten hat sich der Verfasser für Säulen-
diagramnme und Kreisdiagramme entschieden, weil diese ihm für seine Arbeit
am geeignetsten erschienen. Im Folgenden werden einige Vorzüge dieser beiden
Diagrammtypen verdeutlicht und anhand von konkreten Beispielen aus der Ap-
plikation kurz vorgestellt.

4.5.1   Kreisdiagramm

Anhand eines Kreisdiagramms, kann man die prozentuale Verteilung graphisch
darstellen. Ein Kreisdiagramm ist zweidimensional, kreisförmig und teilt sich in
mehrere Segmente auf. Jedes einzelne Segement stellt einen Teilwert dar und der
gesamte Kreis schließlich präsentiert die Summe der Teilwerte. Wichtig für die
Lesbarkeit des Diagramms ist, dass alle Teilsegmente beschriftet sind. Kreisdia-
gramme eignen sich ideal für die Darstellung von Teilen einer Gesamtheit.

Der grösste Nachteil besteht darin, dass je mehr Segmente es gibt und je grösser
4 Erstellung der Anwendung                                                     37

die Unterschiede der prozentualen Anteile sind, desto unübersichtlicher wird es.
[Wiki2006]

                         Abbildung 4.4: Kreisdiagramm

4.5.2   Säulendiagramm

Das Säulendiagramm ist der am häufigsten verwendete Diagrammtyp. Es veran-
schaulicht die Kombination zweier Variablen. Generell eignen sich Säulendiagram-
me gut, um absolute Verhältnisse zu visualisieren. Bei einem Säulendiagramm
sind die Säulen senkrecht angeordnet.

Die Nachteile sind im Wesentlichen die gleichen wie beim Kreisdiagramm.
4 Erstellung der Anwendung                                                        38

                         Abbildung 4.5: Säulendiagramm

4.6    Präsentation der Benutzeroberfläche

Der Verfasser hat sich bei der grafischen Gestaltung seiner Webanwendung an
dem Internetauftritt der Universität Osnabrück orientiert, damit der Anwender
erkennt, dass ein unmittelbarer Zusammenhang besteht. Sämtliche verwendete
und abrufbare Daten haben schliesslich ihren Ursprung in einer Datenbank der
Universität Osnabrück.

Durch den in das Unilogo eingebauten Link auf der Start- und Hauptseite besteht
die Möglichkeit, schnell auf die Uni-Seiten zu wechseln. Die Startseite beinhaltet
eher beschreibende Elemente und die Auswahlmöglichkeit, die Hauptseite bein-
haltet die Ausgabe der Ergebnisse. Auf beiden Seiten befindet sich die Titelzeile
 Studentische Immatrikulationsdaten der Universität Osnabrück“. Um eine ein-
”
heitliches Erscheinungsbild zu erreichen, sind sämtliche Buttons gelb/orange un-
terlegt, der Hintergrund der Anzeigeflächen ist hellgelb gestaltet und die Steuerungs-
und Navigationskasten sind hellgrau unterlegt.
4 Erstellung der Anwendung                                                      39

4.6.1   Startseite

Der Benutzer gelangt beim Aufruf der Webanwendung auf die Startseite. Dort
wird er durch die Titelzeile mit dem Thema “Studentische Immatrikulationsda-
ten der Universität Osnabrück“ vertraut gemacht. Ausserdem wird er freundlich
begrüsst und eine Grafik verdeutlicht, dass diese Anwendung einen statistischen
Hintergrung hat.

Weiterhin befindet sich auf der Startseite (Abbildung 4.6) eine Navigationslei-
ste zur Auswahl mehrerer Optionen. Hier hat der Anwender die Wahl zwischen
folgenden Schaltflächen, die durch einfaches Anklicken aktiviert werden:

   • Startseite : Dient zur Rückkehr zur Startseite

   • Statistiken : Auswahl der gewünschten Parameter

   • Hilfe : Unterstützung zur Navigation

   • Beschreibung : Erklärung zu den Parametern

   • Autor : Informationen zur Bachelorarbeit

Um zur Hauptseite gelangen zu können, ist es unbedingt erforderlich, die gewünsch-
ten Parameter auszuwählen. Durch einfaches Klicken auf den Button Statisti-
                                                                          ”
ken“ gelangt man zu den Auswahlkriterien (siehe Abbildung 4.2 im Kapitel 4).
Wie im Kapitel 4 bereits kurz beschrieben, muss sich der Anwender zwischen
 Studierende“ und “Absolventen“ entscheiden. Dies geschieht durch einfaches
”
Klicken auf die entsprechende Schaltfläche. Hat sich der Anwender entschieden,
stehen ihm zur weiteren Auswahl verschiedene Radiobuttons zur Verfügung.
Wie die Abbildung 4.7 zeigt, sind diese mit Attibuten belegt.

Hat der Benutzer seine Auswahl getroffen, gelangt er durch einfaches Klicken auf
den Button Weiter“ zur Hauptseite.
           ”
4 Erstellung der Anwendung                            40

                       Abbildung 4.6: Startseite

                    Abbildung 4.7: Auswahlkriterien
4 Erstellung der Anwendung                                                        41

4.6.2   Hauptseite

Die Hauptseite ist in zwei Bereiche unterteilt. Die rechte Seite ist eine Steuerungs-
box, die linke Seite beinhaltet die grafische Darstellung der Abfrageergebnisse.

Um eine grafische Darstellung der Abfrageergebnisse zu erreichen sind zunächst
in der Steuerungsbox vom Anwender verschiedene Aufgaben zu erledigen. Im
folgenden stellt der Verfasser anhand von gebildeten Aufgabenbereichen die Rei-
henfolge dieser Aufgaben vor.

Aufgabenbereich 1 : Im oberen Bereich werden die auf der Startseite aus-
    gewählten Attribute durch Comboboxen und zwei Buttons Zurücksetzen“
                                                               ”
    und Attribute neu wählen“ angezeigt. Durch Anklicken der jeweiligen
          ”
    Combobox eröffnet sich dem Anwender die Möglichkeit, seine Auswahl wei-
    ter zu spezifizieren und sich zum Beispiel die genaue Abschlussart oder
    Alter der Studierenden anzeigen zu lassen (siehe Abschnitt Datenmodell
    3.2).

Aufgabenbereich 2 : Nach der im Aufgabenbereich 1 getroffenen Auswahl hat
    der Anwender nun die Möglichkeit, in diesem Bereich ein Gruppierungs-
    kriterium und einen Diagrammtyp für die grafische Darstellung der Abfra-
    geergebnisse auszuwählen. Dies geschieht durch einfaches Klicken auf die
    entsprechende Combobox.

Aufgabenbereich 3 : Abschliessend klickt der Anwender im unteren Bereich
    entweder auf den Button Anzeigen“, um sich die von ihm ausgewählten
                             ”
    Informationen anzeigen zu lassen oder er wechselt durch einfaches Klicken
    auf den Button Startseite“ zurück zur Startseite.
                   ”

Nachdem die oben genannten Aufgaben erledigt sind und die Datenbankabfrage
erfolgreich war, ist die Anwendung in der Lage, die Ergebnisse grafisch darzustel-
len. Dies geschieht im linken Teil der Applikation.
4 Erstellung der Anwendung                         42

                       Abbildung 4.8: Hauptseite
5 Schlussbetrachtungen                                                        43

5     Schlussbetrachtungen

5.1    Flexibilität der Anwendung

Die Anwendung erlaubt das nachträgliche Hinzufügen von anderen bzw. sämtli-
chen der in der Datenbank misdb vorhandenen Attribute. Sie läuft unabhängig
von der Datenbank. Die Aktualisierung der Daten erfolgt in jedem Semester und
hat keinen Einfluss auf die Funktionalität der Anwendung. Dies wird dadurch
erreicht, dass die Anwendung den Code durch dynamische Art erzeugt. Dy-
                                                                         ”
namische Art“ bedeutet z.B., dass die Datenbankabfrage unabhängig von dem
Inhalt der Daten erfolgt.

5.2    Visualisierung von SVG

Zum Zeitpunkt dieser Arbeit besteht die beste Möglichkeit zur Visualisierung von
SVG durch die Kombination Microsoft Internet Explorer (Version 6.0) und Adobe
SVG Plugin 3.03. Dieses Plugin ist zu bekommen unter [ASV3.03]. Im Vergleich
zu anderen SVG-Viewern unterstützt dieses Plugin die meisten Eigenschaften
von SVG. Soll die Visualisierung durch einen anderen Browser, z.B. Mozilla, Fi-
refox oder Opera erfolgen, ist damit zu rechnen, dass die Visualisierung Probleme
bereitet. Weitere Informationen können auf der Seite [SVGWiki2006] angesehen
werden.

5.3    Ausblick

Diese Webanwendung bietet Spielraum für das Einbauen weiterer Funktionen.
So könnte z.B. das Ausdrucken der Ergebnisse wünschenswert sein. Sollte der
Anwender seine Abfrageergebnisse archivieren wollen, wäre es von Vorteil, wenn
die Ergebnisse als Dateien exportiert werden könnten.

Um erkennen zu können, wie stark frequentiert die Seite ist, könnte ein Be-
sucherzähler integriert werden. Hieraus könnte man Rückschlüsse auf die Er-
reichbarkeit der Anwendung und das Interesse der potentiellen Nutzer ziehen.
Um Verbesserungsvorschläge oder Kritik erhalten zu können, wäre es gut, durch
5 Schlussbetrachtungen                                                        44

einen entsprechenden Link den für die Anwendung Verantwortlichen erreichen zu
können.

Sollte diese Anwendung bei den potentiellen Nutzern auf Interesse stossen, wäre
es wünschenswert, diese Seiten in die Webpräsenz der Universität Osnabrück zu
integrieren.
A Inhalt der CD-Rom                                                  45

A    Inhalt der CD-Rom

arbeit                schriftliche Ausarbeitung der Bachelorarbeit
arbeit/latex          Latex-Quellen und Grafiken
arbeit/pdf            PDF-Version

applikation           Anwendungsdaten der Applikation
applikation/          Quellcode der Anwendung

software              benötigte Software
software/             Adobe SVG Viewer 3.03
B Literaturverzeichnis                                                         46

B     Literaturverzeichnis

Die Literaturangaben im Literaturverzeichnis beziehen sich auf gedruckte Bücher
und auf Internetseiten. Es dürfte allgemein bekannt sein, dass Webseiten einer
schnellen Veränderung unterliegen und somit die Inhalte und Internetadressen
sich ändern können. Ebenfalls ist SVG als Programmiersprache relativ neu, so
dass noch nicht viele Bücher in gedruckter Form darüber vorliegen. Daher beziehe
ich mich in meinen theoretischen Ausführungen häufig auf gängige Webseiten zu
diesem Thema. Zum Zeitpunkt der Abgabe dieser Arbeit, im Februar 2006, waren
alle angegebenen Internetadressen noch funktionsfähig.

Literatur

[Fib2002] Fibinger, Iris
      SVG-Scalable Vector Graphics, Praxiswegweiser und Referenz für den neu-
      en Vektorgrafikstandard
      Markt+Technik Verlag, München 2002

[ECMA2004] ECMA International
    Standard ECMA-262: ECMAScript Language Specification
    http://www.ecma-international.org/publications/standards/
    Ecma-262.htm

[CG2004] Vornberger, Oliver
     Vorlesung Computergrafik (SS 2004)
     http://www-lehre.inf.uos.de/~cg/2004/

[Mei2006] Meinike, Thomas
     SVG - Learning By Coding
     http://svglbc.datenverdrahten.de/

[Koch2003] Koch, Daniel
     Javascript lernen: Anfangen, anwenden, verstehen
     ADDISON-WESLEY Verlag, München 2003
B Literaturverzeichnis                                              47

[KannEns2004] Kannengiesser, Matthias; Enseleit, Damir
     PHP 5, Praxisbuch und Referenz. Studienausgabe
     Franzis-Verlag, Poing 2004

[W3C2006] W3C Recommendation
    Scalable Vector Graphics (SVG) 1.1 Specification
    http://www.w3.org/TR/SVG11/

[MySQL2006] MySQL Documentation
    MySQL Reference Manual
    http://dev.mysql.com/doc/

[MIS2001] MIS-Projekt
     Entwicklung und Einführung eines Management-Informations-Systems
     (MIS) zur Verbesserung der Leitungs- und Entscheidungsgrundlagen
     http://sansibar.oec.uni-osnabrueck.de/pls/mss/fuwd?SelDB=
     UWDSTIFT

[Carto2006] Kartographen im Netz
      SVG tutorial, example and demonstration site
      http://www.carto.net/papers/svg/samples/

[PHP2005] Achour, M.; Betz, F.; Doval, A.; Lopes, N. et al.
    PHP Handbuch
    http://www.php.net/manual/de/ Stand 21 Dez. 2005

[MMC2003] Turck Software St. Petersburg
    Turck MMCache for PHP
    http://turck-mmcache.sourceforge.net/index_old.html

[Wiki2006] Wikipedia, die freie Enzyklopädie
     Diagramm
     http://de.wikipedia.org/wiki/Diagramm Stand 17 Jan. 2006

[Mei2004] Meinike, Thomas
     SVG auf dem Weg zum reichhaltigen Medienformat, Neuerungen in
     Version 1.2
     http://www.et.fh-merseburg.de/person/meinike/PDF/tekom2004_
     Wiesbaden_Meinike.pdf
B Literaturverzeichnis                                            48

[SVGWiki2006] Wikipedia, die freie Enzyklopädie
    Scalable Vector Graphics
    http://de.wikipedia.org/wiki/SVG Stand Februar 2006

[ASV3.03] Adobe Systems
     Adobe SVG Viewer download area
     http://www.adobe.com/svg/viewer/install/main.html Stand Februar
     2006
Erklärung

Ich versichere, dass ich die Arbeit ohne fremde Hilfe angefertigt habe und dass
wörtlich oder indirekt übernommenes Gedankengut nach bestem Gewissen als
solches kenntlich gemacht und keine anderen als die angegebenen Hilfsmittel und
Quellen verwendet habe.

Osnabrück, den 22 Februar 2006

                                                              ...........................
                                                                Mustapha Fyjri
Sie können auch lesen