Bauhaus-Universität Weimar Fakultät Bauingenieurwesen Lehrstuhl Informatik im Bauwesen DIPLOMARBEIT I MPLEMENTIERUNG ZUR EINER V ERWALTUNG UND VON A PPLIKATION A USWERTUNG V ERSUCHSDATEN Thomas Riedel Weimar, Dezember 2005 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Vorwort Vorwort Für die Hilfe und Unterstützung, die mir bei der Bearbeitung des Themas zu teil wurde, möchte ich mich bei Prof. Dr.-Ing. K. Beucke und Dipl.-Ing. E. Tauscher vom Lehrstuhl Informatik im Bauwesen sowie Dipl.-Ing. H. Müller von der Professur Verkehrsbau bedanken. Mein ganz besonderer Dank gilt sowohl meinen Eltern als auch meinen Großeltern, die es mir durch ihre jahrelange Unterstützung auch in schwierigen Situationen ermöglichten, mich persönlich und beruflich weitestgehend frei entwickeln zu können. Weimar, Dezember 2005 Thomas Riedel 1 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Inhaltsverzeichnis Inhaltsverzeichnis Vorwort.............................................................................................................................1 Inhaltsverzeichnis ............................................................................................................2 Abkürzungsverzeichnis ...................................................................................................4 1 Einleitung..................................................................................................................5 1.1 Gegenstand.........................................................................................................5 1.2 2 Ausgangssituation ....................................................................................................7 2.1 Prüfstand ............................................................................................................7 2.1.1 Versuchsdurchführung.............................................................................. 8 2.1.2 Weiterverarbeitung der Prüfdaten........................................................... 10 2.2 3 Aufbau der Arbeit ..............................................................................................6 Vorhandene Lösungen .....................................................................................12 2.2.1 Datenbank ............................................................................................... 12 2.2.2 Visualisierung ......................................................................................... 13 Lösungskonzept......................................................................................................15 3.1 Modifikationen an der Prüfdatei ......................................................................15 3.2 Datenbankentwurf............................................................................................19 3.2.1 Entity Relationship Modell..................................................................... 19 3.2.2 Konzept der Versuchsdatenbank ............................................................ 21 3.2.3 SQL......................................................................................................... 22 3.2.4 ODBC ..................................................................................................... 24 3.3 3.3.1 Charakteristik der zu visualisierenden Kurven ....................................... 27 3.3.2 Punktreduzierung mittels Anstiegsdifferenz........................................... 28 3.3.3 Punktreduzierung mittels Linienglättung................................................ 31 3.4 Synchronisation der Prüfdateien......................................................................37 3.5 Speicherung der Prüfdateien............................................................................38 3.5.1 4 Vorbetrachtung zur Visualisierung der Prüfdaten ...........................................27 GZIP Kompressionsformat ..................................................................... 39 Implementierung....................................................................................................40 4.1 Auswahl der Technologien ..............................................................................40 4.1.1 MS-Access .............................................................................................. 40 4.1.2 Java ......................................................................................................... 40 2 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten 5 6 Inhaltsverzeichnis 4.2 Versuchsdatenbank ..........................................................................................41 4.3 Java-Applikation..............................................................................................44 4.3.1 Funktionsweise ....................................................................................... 44 4.3.2 Struktur ................................................................................................... 45 4.3.3 Datenbankzugriff .................................................................................... 46 4.3.4 Datenbankverbindung - DbVerbindungsManager.java.............. 52 4.3.5 Einpflegen von Versuchsdaten - DbMaske.java .............................. 52 4.3.6 Einlesen der Prüfdatei - DbParser.java .......................................... 54 4.3.7 Komponenten der Nutzeroberfläche....................................................... 55 4.3.8 Koordinatensystem - package coordinateSystem ................... 56 4.3.9 Grafische Darstellung ............................................................................. 56 4.3.10 Synchronisierung .................................................................................... 58 4.3.11 Speicherung/Archivierung ...................................................................... 60 Zusammenfassung .................................................................................................62 Bedienungsanleitung..............................................................................................64 6.1 Installation .......................................................................................................64 6.1.1 Systemvoraussetzungen .......................................................................... 64 6.1.2 Installation .............................................................................................. 64 6.2 Bedienung ........................................................................................................65 6.2.1 Konfigurieren der Datenbankverbindung ............................................... 65 6.2.2 Einpflegen von Daten ............................................................................. 65 6.2.3 Einlesen einer Prüfdatei .......................................................................... 66 6.2.4 Grafische Darstellung ............................................................................. 67 6.2.5 Drucken und Speichern........................................................................... 69 6.2.6 Layout der Anwendung .......................................................................... 69 Abbildungsverzeichnis...................................................................................................70 Codelisting ......................................................................................................................72 Tabellenverzeichnis .......................................................................................................73 Literaturverzeichnis ......................................................................................................74 Anhang............................................................................................................................76 Selbständigkeitserklärung.............................................................................................77 Thesen .............................................................................................................................78 3 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Abkürzungsverzeichnis Abkürzungsverzeichnis API - Application Program Interface DB - Datenbank DBMS - Datenbankmanagementsystem ERM - Entity Relationship Modell GIS - Geo-Informationssystem JDBC - Java Database Connectivity JDK - Java Development Kit ODBC - Open Database Connectivity SQL - Standard Query Language URL - Uniform Resource Locator XML - Extensible Markup Language 4 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Einleitung 1 Einleitung 1.1 Gegenstand Für die effiziente Auswertung und Bearbeitung von Versuchsdaten ist deren Visualisierung notwendig und sinnvoll. In vielen Ingenieuranwendungen werden dazu grafische Darstellungen innerhalb von Koordinatensystemen verwendet. Dadurch sind Ingenieure in der Lage Zusammenhänge schnell und komfortabel zu erkennen und Probleme zu lösen. Um eine Analyse von Lagerelementen durchführen zu können (z.B. Brückenlager), werden an der Professur Verkehrsbau verschiedene Untersuchungen an Probekörpern mit Hilfe eines servohydraulischen Lagerprüfstandes vorgenommen. Die Probekörper werden dabei Belastungen ausgesetzt, die z.B. an realen Brückenlagern entstehen können. Durch die gewonnenen Erkenntnisse und Messdaten haben Ingenieure die Möglichkeit vorauszusagen, wie sich die verschiedenen Probekörper unter bestimmten Belastungssituationen verhalten. Die Analysen werden im Auftrag der Hersteller der jeweiligen Lagerelemente durchgeführt. Außerdem wird der Prüfstand innerhalb des Verkehrsbaulehrstuhles zu Forschungszwecken genutzt, die zur Neuentwicklung und Optimierung von Lagerelementen dienen. Die Verwaltung der unterschiedlichen Prüfvorgänge ist aufgrund der Vielfalt der Parameter, welche einen Versuchsdurchgang beschreiben können, sehr aufwendig. Zum Beispiel können Druckversuche, Schubversuche, Momentenversuche und andere frei definierbare Versuche Versuchsdurchgang an können dem Prüfstand mehrere durchgeführt Probekörper werden. beteiligt sein, An die jedem viele unterschiedliche Eigenschaften besitzen. Um die Archivierung der gesamten Prüfvorgänge zu erleichtern, wurde im Rahmen einer Studienarbeit [1] eine VisualBasic-Applikation auf Basis einer MS-Access Datenbank entwickelt. Mit Hilfe dieser Datenbank werden alle beschreibenden Versuchsdaten innerhalb der Datenbank gespeichert. Neben den Parametern die den Versuchsdurchgang beschreiben, fallen die eigentlichen Messdaten an, welche vom Prüfstand generiert werden. Das sind letztlich die Daten, welche von den Ingenieuren ausgewertet werden müssen, um zuverlässige Aussagen 5 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Einleitung über das Verhalten der Probekörper treffen zu können. Die Analyse der Messdaten erfolgt durch das Erzeugen von Kurvenverläufen innerhalb von Koordinatensystemen. Um die Visualisierung speziell an die Bedürfnisse des Verkehrsbaulehrstuhles anzupassen wurde eine Java-Applikation zur grafischen Darstellung entwickelt [2]. Die Evaluierung beider Arbeiten [1][2], lieferte Ansätze zur Verbesserung der Datenbank sowie der Java-Applikation. In dieser Diplomarbeit werden diese Vorschläge aufgegriffen, die Datenbank neu strukturiert und die momentan vorhandenen Insellösungen zur Bedienung der Datenbank in einer Java-Applikation vereint. 1.2 Aufbau der Arbeit Zunächst wird in Kapitel 2 ein Überblick über die Versuchsabläufe an der Prüfmaschine der Professur Verkehrsbau gegeben. Darauf folgend wird erläutert, wie die erzeugten Prüfdaten der Versuche weiterverarbeitet werden, und es werden Probleme aufgezeigt, die sich bei der Speicherung der Daten innerhalb der vorhandenen Datenbank sowie bei der grafischen Darstellung ergeben. Danach werden in Kapitel 3 Lösungskonzepte erarbeitet. Diese Betrachtungen umfassen drei Teilbereiche. Als erstes wird das Format der Prüfdateien des Prüfstands strukturiert und optimiert, damit mit der zu entwickelnden Java-Applikation ein automatisches Einlesen dieser Dateien umgesetzt kann. Danach wird ein Datenbankmodell entworfen, das den Anforderungen zum Speichern der Versuchsdaten gerecht wird. Daraufhin werden Überlegungen zur grafischen Aufbereitung der Messdaten vorgestellt und diskutiert. In Kapitel 4 werden die Lösungskonzepte aufgegriffen und anhand der Implementierung einer MS-Access Datenbank sowie einer Java-Applikation umgesetzt. Die entwickelte MS-Access Datenbank versuch.mdb sowie die implementierte JavaApplikation Viewer-Tool-2.0 sind auf der Begleit-CD zu dieser Arbeit zu finden. Als Entwicklungsumgebung für die Java-Applikation diente die Eclipse Platform Version 3.1.0. 6 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Ausgangssituation 2 Ausgangssituation Im folgenden Abschnitt wird ein Überblick über die Versuchsabläufe am Prüfstand des Verkehrsbaulehrstuhls gegeben. Weiterhin wird die Entstehung der Messdaten, sowie deren Weiterverarbeitung und Auswertung beleuchtet. Dabei werden momentan auftretende Probleme und Nachteile angeführt. 2.1 Prüfstand Der servohydraulische Prüfstand DPD-1500 an der Professur Verkehrsbau ist vielseitig einsetzbar. Einerseits werden im Auftrag der Hersteller der Probekörper Versuche zur Analyse der Eigenschaften dieser Probekörper durchgeführt, andererseits führen die Mitarbeiter der Professur Verkehrsbau eigene Forschungsversuche durch. Diese haben die Entwickelung neuer Brückenlager zum Ziel. Abbildung 2-1 soll dem Leser einen Eindruck von dem Prüfstand und den damit zu untersuchenden Probekörpern vermitteln. Abbildung 2-1 links: Prüfstand an der Professur Verkehrsbau; rechts Probekörper 7 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Ausgangssituation 2.1.1 Versuchsdurchführung Die gesamte Kontrolle und Steuerung der Versuchsdurchführung übernimmt ein am Prüfstand angeschlossener Computer. Nachdem der Probekörper zwischen den Druckplatten der Prüfmaschine justiert wurde, wird der Prüfstand in Position gefahren und der Probekörper wird einer bestimmten Belastung ausgesetzt. Abbildung 2-2 zeigt schematisch die Versuchsdurchführung. Abbildung 2-2 Skizze zur Versuchsdurchführung Mit Hilfe der Prüfmaschine werden reale Bedingungen simuliert, wie sie z.B. an Brückenlagern auftreten können. Die Zeitdauer der Belastung variiert und hängt vom jeweiligen Versuchstyp ab. Beispielsweise können sich Dauerschwellversuche über einen Zeitraum von mehreren Wochen erstrecken, während Druck- oder Schubversuche mit Belastungsdauern von maximal einer Stunde durchgeführt werden. Als Ergebnis dieser Versuche, liefert der Prüfcomputer Messdaten zurück, die in einfacher Textform in einer Prüfdatei gespeichert werden. Innerhalb dieser Prüfdatei werden Angaben wie Versuchsart, Datum und Uhrzeit des Versuches sowie Bezeichnungen und Einheiten der aufgezeichneten Messdaten festgehalten. Abbildung 2-3 zeigt den Inhalt einer standardmäßigen Prüfdatei für einen Druckversuch. 8 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Ausgangssituation Druckversuch Trelleborg-Zulassung Datum: 26.09.05 Zeit: 12:17:36 Zeit;Kraft;Pressung;Weg;Dehnung [s];[kN];[N/mm**2];[mm];[mm] 0.02; -0.03; -0.00; -0.00; 27.99; 0.04; -0.02; -0.00; -0.01; 27.99; 0.06; 0.00; 0.00; -0.01; 0.00; 0.01; -0.01; -0.00; -0.01; 0.00; 0.51; 0.01; 0.00; 0.31; 0.33; 1.01; 0.01; 0.00; 0.80; 0.82; ...; ...; ...; ...; ...; ...; ...; ...; ...; ...; Abbildung 2-3 Prüfdatei eines Druckversuches Es besteht die Möglichkeit, den Inhalt und die Form der Prüfdatei (Abbildung 2-3) über den Prüfcomputer zu konfigurieren. Dazu wird eine so genannte Drucksteuerdatei benutzt. Innerhalb dieser Drucksteuerdatei sind bestimmte Drucksteuerbefehle angegeben, die vom Prüfcomputer des Prüfstandes erkannt und verarbeitet werden können. Ein Standardbeispiel für eine solche Drucksteuerdatei zeigt Abbildung 2-4. $AS_KOPF Druckversuch Trelleborg-Zulassung Datum: #1 Zeit: #2 Zeit;Kraft;Pressung;Weg;Dehnung [s];[KN];[N/mm**2];[mm];[mm] $AS_ERGZ c:\pm\Dat\trell\trell.dat #3;#4;#5;#6;#7 $DR_VARS 1 10000 2 10010 3 11030 4 11000 5 11000 6 11010 7 11020 0 0 7 7 7 7 7 0 0 2 2 2 2 2 0 0 0 0 0 0 0 0.0 0.0 1.0 -0.001 -1.0 -1.0 -1.0 0 0 0 0 1 0 0 ; ; ; ; ; ; ; aktuelles Datum aktuelle Uhrzeit Versuchszeit Kraft 0:N, 1:N/mmý6 Kraft 0:N, 1:N/mmý Weg 0:mm, 1:%E(s) Dehnung Abbildung 2-4 Drucksteuerdatei für einen Druckversuch 9 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Ausgangssituation Die Befehle, die der Prüfcomputer verarbeiten kann, werden durch ein $ Zeichen eingeleitet. Im gezeigten Beispiel definiert $AS_KOPF den späteren Kopfbereich der Prüfdatei. Alle in Folge dieses Befehles geschriebenen Wörter werden in die Prüfdatei übernommen. Wie aus Abbildung 2-4 zu erkennen ist, sind das die Angaben, die den Versuch beschreiben. Diese sind beliebig anpassbar und werden an den Anfang der Prüfdatei geschrieben. Damit ist man der Lage, die jeweilige Prüfdatei auszukommentieren, um sie später einem Versuch zuordnen zu können. Wird ein neuer Drucksteuerbefehl erkannt, endet der Kopfbereich. Im abgebildeten Beispiel Abbildung 2-4 ist das der Befehl $AS_ERGZ. Er beschreibt den Pfad, wohin die Prüfdatei auf dem angeschlossenen Prüfcomputer gespeichert wird. Als zweites Werkzeug zur Formatierung der Prüfdatei stehen die so genannten Platzhalter zur Verfügung. Das sind Variablen, die beliebig definiert werden können. Diese werden an den Stellen platziert, an denen der Prüfcomputer aktuelle Messwerte des Versuches einfügen soll. Sie werden mit einem # (ASCII Code 043) Zeichen gekennzeichnet. Welche Messwerte sich hinter den Platzhaltern verbergen, wird am Ende der Datei definiert. Die Definition der Platzhalter wird über den Befehls $AS_ERGZ eingeleitet. Im abgebildeten Beispiel (Abbildung 2-4) sei auf den Platzhalter #3 verwiesen, der die aktuelle Versuchszeit beinhaltet. An der Position des Platzhalters #3 wird innerhalb der Prüfdatei die aktuelle Versuchszeit eingefügt. Mit Hilfe der Platzhalter ist man in der Lage, sämtliche zu einem bestimmten Versuch benötigten Messwerte zu definieren sowie deren Position innerhalb der Prüfdatei festzulegen. Auf die genaue Aufschlüsselung der Codierung der Platzhalter wird an dieser Stelle verzichtet und auf die Prüfstandeigene Dokumentation verwiesen, die am Verkehrsbaulehrstuhl vorliegt. Im Beispiel (Abbildung 2-4) wurden hinter den Zuweisungen Kommentarzeilen eingefügt, welche die Belegung der Platzhalter beschreiben. 2.1.2 Weiterverarbeitung der Prüfdaten Nach Beendigung des Versuchs müssen die Ergebnisse ausgewertet und protokolliert werden. Dazu werden momentan MS-Excel und MS-Word eingesetzt. Bei der Vielzahl der Versuche ist es jedoch schwierig, einen Überblick über die Gesamtheit der Prüfvorgänge zu erhalten. Um die Verwaltung der gesamten Prüfabläufe zu 10 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Ausgangssituation vereinfachen, wurde in einer Studienarbeit [1] eine Access Datenbank entwickelt und mittels einer Visual-Basic-Clientanwendung optimiert. Diese Datenbank steht serverseitig allen Mitarbeitern zur Verfügung und speichert alle Daten, die den Versuch beschreiben, ab - nicht aber die eigentlichen Prüfdaten. Letztere werden in die Datenbank importiert, und anschließend außerhalb der Datenbank gespeichert. Die Speicherung wird in einem speziellen Visual-Basic Binärformat1 vorgenommen. Dieses Binärformat wird von der Visual-Basic-Anwendung erzeugt und kann ausschließlich von dieser wiederhergestellt werden. Der Hintergrund der externen, binären Speicherung der Messdaten ist, die Datenbank nicht unnötig aufzublähen, da die Prüfdateien teilweise sehr groß werden können. Außerdem wird mit Hilfe des Binärformates eine erhebliche Speicherplatzeinsparung gegenüber dem Textformat der originalen Prüfdatei erzielt. In der Datenbank wird jedem Versuch ein Link auf die zugehörige, extern gespeicherte Binärdatei zugeordnet. Man ist mittels der VisualBasic-Anwendung in der Lage, nach Auswahl eines Versuches aus der Datenbank, die zugehörige Binärdatei wiederherzustellen. Nach dem Import der Binärdatei liegen die Messdaten in tabellarischer Form innerhalb der MS-Access Datenbank vor. In einer weiteren Studienarbeit [2] wurde eine Java Applikation entwickelt, welche die Darstellung der Messdaten ermöglicht. Dazu werden die wiederhergestellten Prüfdaten aus der MS-Access Datenbank gelesen und in Koordinatensystemen dargestellt. Mit der Java-Anwendung kann die Art der grafischen Darstellung komfortabel angepasst werden. Weiterhin sind Funktionalitäten zum Drucken und Speichern der visualisierten Messreihen vorhanden. 1 Das Binärformat ist ein Format in dem der Computer Daten speichern kann. Es kann alle Zeichen des Zeichensatzes enthalten, inkl. der Steuerzeichen. Im meisten Fällen ist der interne Aufbau der Formate nicht bekannt, d.h. die Formate können ausschließlich mit der Software mit welcher sie erzeugt wurden gelesen werden. 11 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Ausgangssituation 2.2 Vorhandene Lösungen Die Evaluierung der beiden Arbeiten lieferte Ansatzpunkte für Verbesserungen. Nachfolgend werden Probleme erläutert, die mit der momentan genutzten MS-Access Datenbank sowie der Java-Applikation auftreten 2.2.1 Datenbank Ein Hauptproblem der vorhandenen Datenbanklösung ergibt sich aus der Tatsache, dass den Versuchen nur eine Prüfdatei zugeordnet werden kann. Einige Prüfungen weisen aber mehrere Prüfdateien auf. Bei einem Schubversuch wird der Probekörper beispielsweise in vertikaler und horizontaler Richtung belastet. Am Prüfstand ist deswegen ein horizontaler bzw. ein vertikaler Messsensor angebracht. Jeder dieser Sensoren liefert eine Prüfdatei. Somit müssen dem Versuch mehrere Messreihen zugeordnet werden können. Diese Möglichkeit besteht mit der aktuellen Version der Datenbank nicht. Weiterhin können an einem Versuch auch mehrere verschiedene Probekörper beteiligt sein. Die gleichzeitige Zuordnung unterschiedlicher Probekörper zu einem Versuch wird ebenfalls nicht unterstützt. Ferner entspricht die Bedienung der vorhandenen Versuchsdatenbank mittels der Visual-Basic-Anwendung nicht der vorgesehenen Arbeitsweise. Im Augenblick ist die Erfassung der Probekörper innerhalb der Datenbank an die gleichzeitige Erfassung eines Versuches gebunden. Das ist deshalb ungünstig, da die Probekörper bei Lieferung zuerst erfasst, eindeutig gekennzeichnet und unabhängig von den Versuchen in die Datenbank eingepflegt werden sollen. Weiterhin stellt sich der Import der Messdaten ungünstig dar, weil dieser nur eine statische Anzahl von Messwertspalten innerhalb einer Prüfdatei zulässt (Prüfdatei s. Abbildung 2-3). Die Prüfdateien können aber bedingt durch die Art der Versuche unterschiedlich viele Messwertspalten aufweisen. So kann es beispielsweise bei älteren Prüfdateien vorkommen, dass diese 3 oder 4 Messwertspalten enthalten. Da der Importfilter der Visual-Basic-Anwendung 5 Spalten erwartet, ist das Einlesen dieser Dateien nicht möglich Aus diesem Grund ist es sinnvoll, den Import dieser Prüfdaten dynamisch zu gestalten. Weiterhin muss der Gesamtablauf einer Versuchsaufnahme effizienter gestaltet werden. Es ist sinnvoll, die Daten zum Versuch, die in der 12 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Ausgangssituation Datenbank gespeichert werden sollen, aus der Prüfdatei heraus zu erkennen und einzulesen. Ebenso ist zu überlegen, ob das Speichern der Prüfdaten in binärer Form sinnvoll ist, da es den Nachteil mit sich bringt, dass die so archivierten Daten nur von der Visual-Basic-Anwendung eingelesen werden können. Die aufgezeigten Probleme traten bei der Nutzung der Datenbank auf und sind im Rahmen der Diplomarbeit „Druckstauchungsverhalten bewehrter Elastomerlager“ von Sven Georgi [10], im Kapitel 4 beschrieben. 2.2.2 Visualisierung Nach der Aufnahme des Versuches in die Datenbank müssen die aufgezeichneten Messwerte analysiert werden. Um eine effektive Analyse vornehmen zu können, ist eine grafische Darstellung der Messwerte sinnvoll. Die Visualisierung der Messdaten ist jedoch nicht unproblematisch, da die Datenmengen der Prüfdateien teilweise sehr umfangreich sind. So kann mit MS-Excel, mit dessen Hilfe die momentane Auswertung der Prüfdaten realisiert wird, nur eine begrenzte Anzahl von Messreihenzeilen eingelesen werden. Bei größeren Prüfdateien stellt sich das als sehr ungünstig dar, weil man diese Dateien aufteilen muss und somit nur Abschnitte der Messreihen betrachten kann. Dadurch erhält man keinen Gesamtüberblick über den Kurvenverlauf der Messwerte eines Versuches. Das wäre jedoch von großem Vorteil, weil man dadurch schneller in der Lage wäre, eventuell interessante Stellen der Kurve zu lokalisieren. Mit der in einer Studienarbeit [2] entstandenen Java-Applikation können die Messdaten ebenfalls visualisiert werden. Dazu wird die Java-Applikation aus der MS-Access Anwendung heraus gestartet und die innerhalb von MS-Access vorliegenden, importierten Prüfdaten können grafisch dargestellt werden. Zur Darstellung werden aus den Prüfdaten erzeugte Kurvenverläufe genutzt, die innerhalb von Koordinatensystemen angezeigt werden. Bei der Visualisierung mittels der Java-Anwendung treten jedoch sehr schnell Performanceprobleme auf. Dies ist bedingt durch die sehr großen Datenmengen die vom Prüfstand geliefert werden. Als Beispiel sei erwähnt, dass die Prüfmaschine in einer Sekunde bis zu 100-mal die Zeit und damit die dazugehörigen Messwerte 13 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Ausgangssituation aufzeichnen kann. Wenn man bedenkt, dass ein Druckversuch bis zu einer Stunde andauert, würde das für diesen Fall 360.000 Messzeilen bzw. Wertepaare zur Folge haben. Diese Menge von Wertepaaren in Form einer Kurve zu visualisieren, ist mit der Java-Applikation oder MS-Excel nicht möglich. Innerhalb von MS-Excel stehen dem Anwender nur maximal 65536 Zeilen zur Aufnahme von Messwerten zur Verfügung. In der Java-Applikation führen Wertepaarmengen von dieser Größenordnung zu einem derartigen Performanceverlust, dass die Anwendung nicht mehr bedienbar ist. Momentan wird dieses Problem von der vorhandenen Java-Applikation gelöst, indem sie nicht jeden Punkt der Messreihe darstellt, sondern je nach Anzahl der Messreihen, beispielsweise nur jeden 10. Messpunkt. Das hat den Nachteil, dass eventuelle Ausreißerpunkte der Kurve nicht angezeigt werden oder sogar Maxima und Minima entfallen. Damit würde die erzeugt Kurve nicht den tatsächlichen Verlauf über die Messwertreihen kennzeichnen. Deshalb wird untersucht, ob mit geeigneten Algorithmen ein Verfahren entwickelt werden kann, mit dem die Kurve „ausdünnt“, d.h. die Punktmenge reduziert werden kann, ohne Ausreißerpunkte oder markante Punkte wie z. B. Wendepunkte, Maxima oder Minima einer Kurve zu verlieren. 14 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept 3 Lösungskonzept Ausgehend von den in Kapitel 2.2 beschriebenen Nachteilen, ergibt sich ein neues Anforderungsprofil an die Datenbank sowie die zu entwickelnde Applikation. Es ist ein Datenbankschema zu entwerfen, welches die vorhandenen Mängel beseitigt und eine flexiblere Nutzung der Datenbank zulässt. Dazu wird in einem ersten Schritt (Kapitel 3.1) der Prüfstand untersucht. Hintergrund der Untersuchung ist, die in der Prüfdatei (Abbildung 2-3 Prüfdatei eines Druckversuches) enthaltenen Daten so zu kennzeichnen, dass eine Applikation in der Lage ist, die Informationen zu den Versuchen aus den Prüfdateien einzulesen. Dadurch wird es möglich, eine Automatisierung bei der Versuchsaufnahme zu erreichen. Um jedoch sämtliche beschreibenden Parameter zu den Versuchen speichern zu können, muss ein neu strukturiertes Datenbankmodell angelegt werden. Ausgerichtet auf dieses Modell soll eine Applikation entstehen, die Funktionalitäten wie Hinzufügen, Löschen oder Anzeigen von Datensätzen bereitstellt. Vor allem die grafische Anzeige der Messdaten soll optimiert werden. 3.1 Modifikationen an der Prüfdatei Wie unter Kapitel 2.1.1 beschriebenen, erfolgt die Speicherung der Prüfdaten innerhalb der Prüfdatei. Deren Struktur wird nach einem Schema, das innerhalb der Drucksteuerdatei definiert ist, festgelegt. Sollen Informationen innerhalb dieser Prüfdatei kenntlich gemacht werden, gibt es die Variante sie mit einem eindeutigen Schlüsselwort zu beschreiben. Die zu entwickelnde Java-Applikation soll in der Lage sein, solch ein Schlüsselwort zu erkennen und die so gekennzeichnete Information auszulesen. Dazu muss das Schlüsselwort vor die jeweilige Information innerhalb der Prüfdatei gestellt werden, wodurch der Inhalt der nachfolgenden Zeichenkette beschrieben wird. Beim Design der Schlüsselwörter wurde darauf geachtet, dass diese „gut lesbar“ sind, d.h. die Namensgebung der Schlüsselwörter ist orientiert an der Bedeutung der jeweils gekennzeichneten Information. Die Struktur der Schlüsselwörter wurde an die XML Syntax (Extensible Markup Language) angelehnt. Das XML ähnliche Layout ist frei gewählt und wurde mit dem Hintergedanken eingeführt, dass eventuell andere Applikationen eine bereits „bekannte“ gut lesbare Datenstruktur 15 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept vorfinden und verarbeiten können. Tabelle 1 enthält die zu diesem Zweck eingeführten Schlüsselwörter. Information zum Versuch Eingeführte Schlüsselwörter zur innerhalb der Prüfdatei Beschreibung der Information Zeilenanfang Zeilenende Versuchsart <V_ART> </V_ART> Kurzbezeichnung des Prüfers <V_PRUEFER> </V_PRUEFER> Datum des Versuches <V_DATUM> </V_DATUM> Zeit des Versuches <V_ZEIT> </V_ZEIT> Versuchsanlass <V_ANLASS> </V_ANLASS> <V_PK_INR> </V_PK_INR> Kurzbezeichnung der Messreihe <V_DATENSATZ_KB> </V_DATENSATZ_KB> Bezeichnung der Prüfmaschine <V_PM> </V_PM> Bezeichnung der Spaltennamen <V_SPALTEN> </V_SPALTEN> Bezeichnung der Einheiten <V_EINHEITEN> </V_EINHEITEN> <PD> </PD> Interne Nummer des Probe­ körpers Die eigentlichen Messdaten des Versuches (Prüfdaten) Tabelle 1 Übersicht über die eingeführten Schlüsselwörter Um die Schlüsselwörter innerhalb der Prüfdatei unterzubringen, müssen sie in die Drucksteuerdatei (Abbildung 2-4 Drucksteuerdatei vor der Modifizierung) eingefügt werden, die das Aussehen der später erzeugten Prüfdatei festlegt. Über die Drucksteuerdatei werden die Schlüsselwörter bei der Versuchsdurchführung in die Prüfdatei geschrieben. Nach einigen Variationen bei der Anordnung der Schlüsselwörter innerhalb der Drucksteuerdatei, hat sich der in Abbildung 3-1 gezeigte modifizierte Aufbau bewährt. Die eingefügten Wörter sind blau hervorgehoben, die Drucksteuerbefehle sind schwarz und fettgedruckt. (Im gezeigten Beispiel wurden nicht alle definierten Schlüsselwörter verwendet.) 16 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept $AS_KOPF <V_ART>;Druckversuch;</V_ART> <V_ANLASS>;Trelleborg-Zulassung;<V_ANLASS> <V_DATUM>;Datum: #1;</V_DATUM> <V_ZEIT>;Zeit: #2;</V_ZEIT> <V_SPALTEN>;Zeit;Kraft;Pressung;Weg;Dehnung;</V_SPALTEN> <V_EINHEITEN>;[s];[kN];[N/mm**2];[mm];[mm];</V_EINHEITEN> $AS_ERGZ c:\pm\Dat\trell\trell.dat <PD>;#3;#4;#5;#6;#7;</PD> $DR_VARS 1 10000 2 10010 3 11030 4 11000 5 11000 6 11010 7 11020 0 0 7 7 7 7 7 0 0 2 2 2 2 2 0 0 0 0 0 0 0 0.0 0.0 1.0 -0.001 -1.0 -1.0 -1.0 0 0 0 0 1 0 0 ; ; ; ; ; ; ; aktuelles Datum aktuelle Uhrzeit Versuchszeit Kraft 0:N, 1:N/mmý6 Kraft 0:N, 1:N/mmý Weg 0:mm, 1:%E(s) Dehnung Abbildung 3-1 Modifizierte Drucksteuerdatei Es ist darauf zu achten, dass nach jedem einleitenden Schlüsselwort sowie vor jedem Endschlüsselwort ein Semikolonzeichen einzufügen ist. Weiterhin müssen die einzelnen Spaltennamen und Einheiten, die hinter den Schlüsselwörtern <V_SPALTEN > und <V_EINHEITEN> angegeben werden sowie die Probekörpernummern hinter dem Schlüsselwort <V_PK_INR> durch Semikolonzeichen getrennt werden. Das Einfügen der Semikolonzeichen ist erforderlich, um den Import in MS-Excel zu erleichtern, da die Auswertungen und Analysen noch vorrangig mit diesem System vorgenommen werden. Ebenso benutzt die später vorgestellte Java-Klasse das Semikolon als Trennzeichen. Es muss darauf geachtet werden, die versuchsbeschreibenden Informationen sowie die Schlüsselwörter, innerhalb des Kopfbereiches der Drucksteuerdatei anzugeben, der von dem Steuerbefehl $AS_KOPF eingeleitet wird. Wird nun bei der Versuchsdurchführung die abgeänderte Drucksteuerdatei (Abbildung 3-1) verwendet, erzeugt der Prüfcomputer des Prüfstandes die in Abbildung 3-2 gezeigte veränderte Prüfdatei. Der Unterschied zur bisherigen Prüfdatei ist, dass innerhalb der neu erzeugten Prüfdatei die Informationen zum Versuch sowie den Prüfdaten, mit den entsprechenden Schlüsselwörtern gekennzeichnet sind. Durch die vorgenommenen Veränderungen an der 17 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Drucksteuerdatei, ist innerhalb der Lösungskonzept Prüfdatei eine XML ähnliche, den Inhalt beschreibende Struktur vorhanden. <V_ART>;Druckversuch;<V_ART> <V_ANLASS>;Trelleborg-Zulassung;</V_ANLASS> <V_DATUM>;Datum: 26.09.05;</V_DATUM> <V_ZEIT>;Zeit: 12:17:36;</V_ZEIT> <V_SPALTEN>;Zeit;Kraft;Pressung;Weg;Dehnung;</SPALTEN> <V_EINHEITEN>;[s];[kN];[N/mm**2];[mm];[mm];</V_EINHEITEN> <PD>; 0.02; -0.03; -0.00; -0.00; 27.99;</PD> <PD>; 0.04; -0.02; -0.00; -0.01; 27.99;</PD> <PD>; 0.06; 0.00; 0.00; -0.01; 0.00;</PD> <PD>; 0.01; -0.01; -0.00; -0.01; 0.00;</PD> <PD>; 0.51; 0.01; 0.00; 0.31; 0.33;</PD> <PD>; 1.01; 0.01; 0.00; 0.80; 0.82;</PD> <PD>; ...; ...; ...; ...; ...;</PD> <PD>; ...; ...; ...; ...; ...;</PD> <PD>; ...; ...; ...; ...; ...;</PD> <PD>; ...; ...; ...; ...; ...;</PD> <PD>; 10.01; 4.01; 1.00; 0.80; 0.82;</PD> <PD>; 11.01; 5.01; 2.00; 0.80; 0.82;</PD> <PD>; 12.01; 6.01; 3.00; 0.80; 0.82;</PD> Abbildung 3-2 Neue Prüfdatei Für die neu strukturierte Prüfdatei ist es wesentlich einfacher, einen Importfilter oder Parser1 zu entwickeln, welcher die Prüfdaten aus der Datei herauslesen kann. Durch die gute „Lesbarkeit“ der Befehle, werden die Bedeutung und der Inhalt der umschlossenen Information sofort klar. Parser (deutsch „analysieren“) bezeichnet im Allgemeinen ein Programm, das in der Lage ist zu entscheiden ob eine Zeichenkette(in diesem Fall das Schlüsselwort) zu einer bestimmten Sprachsyntax gehört. 1 18 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept 3.2 Datenbankentwurf Um den Anforderungen gerecht zu werden, die sich aus der Speicherung der Prüfabläufe innerhalb einer Datenbank ergeben, ist es erforderlich ein neues Datenbankmodell zu entwickeln. Datenbankentwürfe werden in der Regel unter zu Hilfenahme des Entity-Relationship-Modells erstellt. Dieses Modell stellt einen Ausschnitt der realen Welt mit Hilfe eines grafischen Schemas dar, das mittels eines relationalen DBMS (Datenbankmanagementsystem) umgesetzt werden kann. 3.2.1 Entity Relationship Modell Das Entity–Relationship-Modell oder auch ER-Modell oder ERM, wurde erstmals von Peter Chen, in seiner Veröffentlichung „The Entity Relationship Model“ vorgestellt. Es wird in einer ersten konzeptionellen Phase als Basis für das Design einer Datenbank verwendet. Dabei sind die Begriffe Entität und Relationship folgendermaßen definiert: Eine Entität repräsentiert Objekte der Wirklichkeit, während ein Relationship (Beziehung) den Zusammenhang zwischen zwei Entitäten (Objekten) beschreibt. Eine Entität besitzt wiederum Attribute, welche die Eigenschaften des Objektes repräsentieren. Abbildung 3-3 zeigt die die Modellierungssyntax des ER-Modells. Abbildung 3-3 Modellierungssyntax des ER-Modells 19 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept Des Weiteren wird durch Kardialitäten die Anzahl der an einer Beziehung beteiligten Entitäten (Objekte) beschrieben. Diese werden an der Beziehung angegeben. Bei den Kardialitäten definiert man drei Abstufungen: • 1:1 Bei einer 1:1 Beziehung wird einer Entität genau eine andere Entität zugeordnet. (Ein häufig genanntes Beispiel in der Literatur hierzu ist „Ein Ehepartner ist mit genau einem anderen Ehepartner verheiratet“; in Deutschland) • 1:N ; N:1 Bei einer 1:N Entität werden genau einer Entität auf der einen Seite, eine oder mehrere Entitäten auf der anderen Seite zugeordnet. Dazu ein Beispiel in Anlehnung an die Versuchsdatenbank. Ein Prüfer kann einen oder mehrere Versuche durchführen. Jeder Versuch jedoch wird von genau einem Prüfer durchgeführt. (Prüfer 1:N Versuch) • N:M Bei diesem Beziehungstyp können auf beiden Seiten beliebig viele Entitäten stehen. Beispiel in Anlehnung an die Versuchsdatenbank: Ein Probekörper kann an mehreren Versuchen beteiligt sein. An einem Versuch sind mindestens einer oder aber mehrere Probekörper beteiligt. (Versuch N:M Probekörpern) Diese verschieden Beziehungstypen können in relationalen Datenbanksystem umgesetzt werden. In dieser Arbeit wird dazu aufgrund der unter Kapitel 4.1 genannten Gründe MS-Access von Microsoft verwendet. Um einen noch tieferen Einblick in die Problematik und den Aufbau des Entity– Relationship–Modells zu erhalten, sei auf weiterführende Literatur verwiesen [8]. 20 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept 3.2.2 Konzept der Versuchsdatenbank Als erster Schritt bei der Konzepterstellung wurde eine Anforderungsanalyse für die zu entwerfende Datenbank durchgeführt. Bezogen auf die erarbeiteten Anforderungen wurde ein komplett neues Datenbankschema entworfen. Diese neuen Anforderungen an die Datenbank ergaben sich aus den unter Kapitel 2.2 beschriebenen Mängeln der vorhandenen Datenbanklösung. Zunächst wurde mit Hilfe des ER–Modell Entwurfes die Problematik eines Versuchs schematisch abgebildet. Dabei werden die Beziehungen zwischen den einzelnen Tabellen (Entitäten) untereinander deutlich gemacht. Abbildung 3-4 zeigt das neu entworfene ER-Modell der Versuchsdatenbank. Auf die Zuordnung von Attributen soll bei folgendem Schema verzichtet werden, um die Übersichtlichkeit zu gewährleisten. Die Attribute der einzelnen Tabellen werden später unter Kapitel 4.2 vorgestellt. Abbildung 3-4 Modellentwurf der Versuchsdatenbank Anhand der Relationen zwischen Prüfer-Versuch und Versuch-Messreihe soll beispielhaft verdeutlicht werden, wie diese zu lesen sind (Tabelle 2 Seite 22): 21 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept Richtung Versuch nach Prüfer Richtung Prüfer nach Versuch Jeder Jeder Versuch wird von genau Prüfer leitet einen oder einem Prüfer geleitet. mehrere Versuche. Richtung Versuch nach Messreihe Richtung Messreihe nach Versuch Jeder Versuch erzeugt mindestens Jede eine oder aber beliebig Messreihe gehört zu genau viele einem Versuch Messreihen. Tabelle 2 Lesen der Relationen Mit Hilfe des abgebildeten ER - Modells ist man in der Lage, die Datenbank zu implementieren, unabhängig davon auf welches relationale DBMS die Wahl fällt. Für die Implementierung der Datenbank innerhalb der meisten relationalen Datenbanksysteme, kommt die standardisierte Sprache SQL (Structured Query Language) zum Einsatz. 3.2.3 SQL Unter diesem Punkt folgt ein kurzer geschichtlicher Abriss, sowie eine grobe Beschreibung der Programmiersprache SQL, ohne die Syntax genau zu erläutern. Es soll dem Leser ein Eindruck verschafft werden, was SQL beinhaltet, und zu leisten in der Lage ist. SQL gehört zu der Gruppe der deklarativen1 Programmiersprachen. Sie wurde in den siebziger Jahren von IBM entwickelt. Grundlage dazu bildete der Artikel „A Relational Model of Data for Large Shared Data Banks“ von Edgar F. Codd. Aufbauend auf diesem Werk, brachte IBM 1976 „SEQUEL /2“ (Structured English Query Language) 1 So bezeichnet man Programmiersprachen, die auf der Basis logischer Kalküle aufgebaut sind. (z. B. SQL, HTML) Im Gegensatz dazu, existieren imperative und objektorientierte Sprachen, wie z.B. C, C++ und Java. 22 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept heraus. Dieses Projekt wurde aber aus rechtlichen Gründen in „SQL” umbenannt. Im Jahre 1986 wurde erstmals eine Art Standard für die Programmiersprache SQL definiert. Infolge dessen wurde 1992 der SQL-92 Standard (SQL2) erschaffen. In ihm hielten zahlreiche Erweiterungen und Überarbeitungen Einzug. Die meisten aktuellen Datenbanksysteme haben den SQL-92 Standard implementiert und halten sich zum größten Teil an diesen. Weiterführend wurde 1999 mit SQL3 eine weitere Version definiert, welche die Einführung der Objektorientierung in SQL brachte. Diese Version stellte bei der Entwicklung der Programmiersprache einen großen Schritt nach vorn dar. Jedoch beinhaltete sie, neben vielen Verbesserungen auch eine Reihe von Widersprüchen und Fehlern. Diese zu korrigieren und weitere Features hinzuzufügen, waren die Gründe, die zur Entwicklung des mittlerweile fünften Standards dieser Sprache führten: SQL2003. Der SQL99 und SQL2003 Standard sind in kommerziellen relationalen Datenbanksystemen noch nicht sehr weit verbreitet. Die Sprache SQL gliedert sich in vier separate Schichten, die hier kurz vorgestellt werden sollen: • Data Query Language (DQL) SELECT Befehl – dient zum Erstellen von Abfragen in einer Datenbank und liefert eine Ergebnismenge zurück, die den angegebenen Bedingungen genügt. • Data Control Language (DCL) GRANT, REVOKE – dienen zur Definition von Rechten innerhalb der Datenbank • Data Manipulation Language (DML) INSERT, UPDATE, DELETE – dienen zur Datenmanipulation innerhalb der Datenbank. Mit Hilfe dieser Befehle können Daten aktualisiert, eingefügt oder gelöscht werden. 23 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten • Lösungskonzept Data Definition Language (DDL) CREATE, ALTER, DROP – sind Befehle zur Datendefinition. Mit Hilfe dieser Befehle können Tabellen, Referenzen und Attribute erstellt und definiert werden. Mit Hilfe der hier vorgestellten SQL Programmiersprache ist es möglich Datenbanken zu implementieren. Das ER-Modell spielt dabei eine bedeutende Rolle, da es gewissermaßen als Vorlage für den Entwurf dient, den es innerhalb eines DBMS umzusetzen gilt. Die meisten Datenbankhersteller erweitern die Grundfunktionalität von SQL durch eigene Befehlsdefinitionen, jedoch orientieren sich alle weitestgehend am SQL-92 Standard. DBMS, wie z. B. MS-Access, bieten dem Nutzer darüber hinaus grafische Oberflächen und Assistenten an, um die Erstellung von Tabellen, Attributen, Beziehungen und Abfragen zu erleichtern. 3.2.4 ODBC ODBC steht für „Open-Database-Connectivity“ oder eingedeutscht für „Offene Datenbank-Verbindungsfähigkeit“ und wurde von Microsoft 1992, unter Mitarbeit von verschiedenen Datenbanksystemherstellern definiert. Diese Schnittstelle nutzt SQL als Datenbanksprache und ermöglicht den Zugriff auf Daten innerhalb eines Datenbankmanagementsystems. Dazu wird dem Programmierer eine API (Application Program Interface) zur Verfügung gestellt, die ihm ermöglicht, Applikationen unabhängig vom benutzten DBMS zu implementieren. Die Abbildung 3-5 auf Seite 25 erläutert schematisch den Aufbau der ODBC-Schnittstelle. Die verschiedenen Applikationen können über den ODBC-Treiber-Manager, der fester Bestandteil des Betriebssystems Windows ist, Funktionen eines ODBC-Treibers anfordern. Dieser Treiber-Manager verwaltet die zu den verschiedenen DBMS gehörenden ODBC-Treiber. In der Regel ist für jedes Datenbanksystem ein Treiber vorhanden, da dieser sehr häufig von den Herstellern zur Verfügung gestellt wird. 24 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept Abbildung 3-5 ODBC Treiberstruktur Der ODBC-Treiber-Managers fungiert als Übersetzer zwischen den Applikationen und dem verwendeten DBMS. Dabei werden die, über die API Schnittstelle des TreiberManagers angeforderten SQL Anfragen der Applikationen, an den entsprechenden ODBC-Treiber des DBMS weitergeleitet. Dieser „übersetzt“ diese Befehle für das jeweilige DBMS. Er organisiert dabei z.B. die Ausführung der unterschiedlichen „Befehlsdialekte“ von SQL, welche die verschiedenen DBMS aufweisen. Die Vorgehensweise beim Zugriff auf Daten ist folgende: Die Applikation baut mit Hilfe des entsprechenden Treibers eine Verbindung zur Datenbank auf. Danach wird eine Anfrage auf der Datenbank ausgeführt und die Ergebnisse verarbeitet. Schließlich wird die Datenbankverbindung wieder geschlossen. Dabei ist es irrelevant ob der Zugriff auf die Datenquelle lokal oder im Netzwerk erfolgt. Die ODBC-Schnittstelle ist heute in der Windows-Welt weit verbreitet und hat sich dort als ein Standard zum Zugriff auf Datenbanken etabliert. Darüber hinaus wurde ODBC bereits auf andere Plattformen übertragen. Z.B. existieren Portierungen für Unix­ 25 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept Plattformen sowie für Linux- und Apple-Macintosh-Systeme. Diese werden nicht von Microsoft erstellt, sondern von den Herstellern der Betriebssysteme selbst übernommen. 26 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept 3.3 Vorbetrachtung zur Visualisierung der Prüfdaten 3.3.1 Charakteristik der zu visualisierenden Kurven Ausgehend von den Performanceproblemen (s. Kapitel 2.2.2), welche die erste Version des Viewer-Tools bei der Darstellung der Prüfdaten mit sich brachte, wird zunächst untersucht, inwieweit die Punktmenge der gesamten anzuzeigenden Kurve verringert werden kann, ohne die Grundstruktur der Kurve zu verlieren. Dazu wurden aus verschiedenen Versuchen Kurven erzeugt und untersucht. Beispielhaft wird anhand eines Druckversuchs und der sich daraus ergebenden Kraft-Zeit-Kurve, die Charakteristik der Kurvenverläufe erörtert. Die Gesamtdauer des im folgenden Beispiel gezeigten Versuchs belief sich auf rund 400s. Ausgehend von der Tatsache, dass pro Sekunde 100 Messwerte durch den Prüfcomputer in die Prüfdatei geschrieben werden, ergibt sich für den gesamten Versuch eine anzuzeigende Punktzahl von 40.000 Messwerten. Abbildung 3-6 Kurvencharakteristik zeigt den Kraftverlauf über die Dauer eines Druckversuches, sowie einen Teilbereich Kurve. Abbildung 3-6 Kurvencharakteristik Im oberen Diagramm ist der Gesamtüberblick über die Kurve dargestellt, im unteren Diagramm der Kurvenbereich von 80s-81s. In diesem Kurvenausschnitt ist kein regelmäßiger Verlauf der Kurve festzustellen. Die Kraft wird zwar mit ansteigender 27 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept Zeit größer, jedoch geschieht dies unter starker unregelmäßiger Oszillation (lat. oszillare – schaukeln) der Kurve. Verschiebt man den Kurvenbereich zwischen 200s-201s, stellt sich folgendes verändertes Bild des Kurvenverlaufes dar. Abbildung 3-7 Kurvencharakteristik 1 Die Kurve hat die Form ähnlich einer Sinusfunktion angenommen. Es ist ein sehr regelmäßiger und gleichmäßiger Verlauf der Kurve zu erkennen. Es treten also in den verschiedenen Bereichen unterschiedliche Kurvencharakteristika auf. Um die Darstellung der Gesamtansicht zu beschleunigen, muss die Punktmenge der angezeigten Kurve verringert werden. Dabei ist zu beachten, dass die Grundform der Kurve erhalten bleibt. Im Folgenden werden Wege aufgezeigt, die Kurve zu glätten bzw. „auszudünnen“ und dadurch deren Darstellung zu optimieren. 3.3.2 Punktreduzierung mittels Anstiegsdifferenz Als erstes wurde der Versuch unternommen über der Differenz von Anstiegen benachbarter Punkte eine Verringerung der Punktanzahl zu erreichen. Abbildung 3-8 erläutert das Prinzip. 28 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept Abbildung 3-8 Anstiegsdifferenz; links P2 wird gezeichnet; rechts P2 wird nicht gezeichnet P1 sei der letzte gezeichnete Punkt der Kurve. P2 ist der betrachtete Punkt, für den entschieden werden soll ob er gezeichnet werden muss, und P3 ist der Nachfolgerpunkt von P2. Zuerst wird der Anstieg der Geraden P1/P2 sowie der Anstieg der Geraden P2/P3 berechnet. Die Berechnung erfolgt nach (1). m = Δx Δy (1) Danach wird der Betrag der Differenz der beiden Anstiege gebildet (2) und über diesen Wert d entschieden, ob der aktuell betrachtete Punkt P2 gezeichnet werden muss oder nicht. d = m − m 1 2 (2) Ist der Betrag der Differenz der Anstiege m1 und m2 (d) ungleich null, so liegen die Punkte P1, P2 und P3 nicht auf einer Geraden(Abbildung 3-8 links). In diesem Fall muss der aktuell betrachtete Punkt P2 zur Darstellung der Kurve gezeichnet werden. (P2 wird damit zum neuen „letzten gezeichneten Punkt der Kurve“). Wenn d gleich null ist (Abbildung 3-8 rechts), liegen die Punkte P1, P2 und P3 auf einer Geraden. Punkt P2 muss zur grafischen Darstellung der Geraden P1/P2/P3 nicht berücksichtigt werden. (P1 bleibt „letzter gezeichneten Punkt“) Im nächsten Schritt wird P3 neuer betrachteter Punkt. Von ihm ausgehend werden wieder die Anstiege zum letzten gezeichneten Punkt 29 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept P1 und seinem Nachfolgerpunkt ermittelt. Ist der Betrag der Anstiegsdifferenz d wieder null, so entfällt P3 und der Nachfolger von P3 wird neuer betrachteter Punkt. Über einen variabel einzustellenden Wert wird eine Fehlertoleranz f eingeführt. Wenn der Betrag der Differenz der Anstiege d kleiner als der Wert der Fehlertoleranz f ist, wird dieser Fall behandelt, als wäre die Differenz der Anstiege null und der betrachtete Punkt entfällt zur Darstellung. Die Einführung der Fehlertoleranz bewirkt, dass bei geringen Anstiegsdifferenzen, d. h. wenn die Punkte „fast“ auf einer Geraden liegen, diese entfallen und nicht gezeichnet werden. Dadurch reduziert sich die Menge der Punkte, die zur Darstellung der Kurve nötig sind. Dies wiederum führt zu einer Beschleunigung der grafischen Darstellung, da weniger Punkte gezeichnet werden müssen. Mit diesem Verfahren wird der originale Kurvenverlauf sehr gut angenähert. Der Algorithmus wurde am Beispiel einer Sinuskurve mittels MS-Excel und einem Visual-Basic Makro getestet. 5% Fehlertoleranz 25 % Fehlertoleranz 6 6 4 4 2 2 0 0 0 1 2 3 4 5 6 0 -2 -2 -4 -4 -6 -6 1 2 3 4 5 6 Abbildung 3-9 Punktreduzierung mittels Anstiegsverfahren Abbildung 3-9 zeigt eine Sinuskurve in Form einer durchgehenden Linie im Hintergrund. Diese Kurve besteht aus 500 Wertepaaren. Die Kreuze, die über die Kurve gelegt wurden, beschreiben die Punktmenge der „ausgedünnten“ Kurve nach Optimierung mittels des eben beschriebenen Verfahrens. Bei einer Fehlertoleranz von 5% (f=0,05 Einheiten) werden zur Darstellung der Kurve nur noch 313 Punkte benötigt (Abbildung 3-9 linke Darstellung). Bei einer Toleranz von 25% (s. Abbildung 3-9 30 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept rechte Darstellung) sogar nur noch 121 Punkte. Wie aus Abbildung 3-9 zu erkennen ist, werden die „fast“ geraden Stücke der Kurve sehr gut angenähert. In den Bereichen der Maxima und der Minima der Kurve wird eine dichtere Punktmenge beibehalten, was zur Darstellung dieser Kurvenbereiche notwendig ist. Eventuelle Ausreißerpunkte bleiben bei der Anwendung dieser Methode erhalten. Bei weiteren Betrachtungen stellte sich heraus, dass dieses Verfahren nur in den Bereichen der Kurve gute Ergebnisse liefert, wo ein regelmäßiger, gleichmäßiger Kurvenverlauf vorliegt (Abbildung 3-7, Seite 28). In den Kurvenbereichen mit starken unregelmäßigen Oszillationen (Abbildung 3-6, Seite 27), bringt diese Optimierung keine erhebliche Verminderung der Punktmenge mit sich. Bedingt durch die starken Schwankungen der Kurve (Abbildung 3-6, Seite 27), wird der Betrag der Differenz der betrachteten Anstiege d (Formel (2)) größer null, und damit werden die Punkte in diesem Bereich gezeichnet. Die Definition einer Fehlertoleranz bringt keine Verbesserungen, da d in diesen Kurvenbereichen für fast jeden betrachteten Punkt relativ groß wird. 3.3.3 Punktreduzierung mittels Linienglättung Eine weitere Möglichkeit die Punktmenge zu reduzieren ist ein Verfahren einzusetzen, dass als Linienglättung bezeichnet wird. Die Linienglättung spielt in der Kartographie oder innerhalb von GIS-Systemen (Geo - Informationssystem) eine große Rolle. Es gibt verschiedene Vorgehensweisen um eine Linienglättung zu erreichen. Bei allen ist das Hauptaugenmerk darauf gelegt die Linie „auszudünnen“, d.h. die charakteristischen Punkte der Linie sollen erhalten bleiben, wobei überflüssige Punkte entfernt werden können. Hier soll ein Verfahren zur Untersuchung von Punkten in unmittelbarer Nachbarschaft betrachtet werden, das auch als Pfeilhöhenverfahren bezeichnet wird. (Abbildung 3-10 zeigt den Ansatz) 31 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept Abbildung 3-10 Pfeilhöhenverfahren allgemein Bei diesem Verfahren werden drei aufeinander folgende Punkte betrachtet. P1 ist der zuletzt gezeichnete Punkt der Kurve, P2 der betrachtete Punkt der Kurve und P3 der Nachfolger von P2. Zunächst wird die Geradengleichung der Geraden P1/P3 aufgestellt. Danach wird der Betrag des lotrechten Abstandes d von P2 zu der Geraden P1/P3 berechnet. Die Bildung des Betrags ist nötig, da der betrachtete Punkt P2 auch auf der anderen Seite der Gerade P1/P3 liegen könnte. Dieser Abstand d wird auch als Pfeilhöhe bezeichnet. Ist der Abstand d größer als eine festgelegte Toleranz f, muss P2 gezeichnet werden, da er zu weit von der Geraden entfernt ist. Anderenfalls liegt der Punkt P2 so nah an der Geraden P1/P3, das er entfallen kann, und es wird mit der Betrachtung des nächsten Punktes fortgefahren. Dieser Algorithmus ermöglicht eine sehr gute Dezimierung der Punktmenge der Kurve unter Beibehaltung der Grundform. Die Formel zur Berechnung des Abstandes d wird über die Gleichung des Abstandes eines Punktes zu einer Geraden, und der Gleichung der Geraden in Hessescher Normalform hergeleitet. 0 = x ∗ cos(α ) + y ∗ sin (α ) − p (3) In die Gleichung (3) der Geraden werden die Koordinaten von P1 x1 und y1 eingesetzt und für α der Anstieg der Geraden P1/P3, welcher sich berechnet aus: 32 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten ⎛ Δx ⎞ ⎟⎟ ⎝ Δy ⎠ α = arctan⎜⎜ Lösungskonzept (4) Wenn (3) nach p umgestellt wird und P1 und α eingesetzt wird ergibt sich: p = x1 ∗ cos(α ) + y1 ∗ sin (α ) (5) Für den Abstand d gilt somit: d = x 2 ∗ cos(α ) + y 2 * sin (α ) − p (6) In (6) sind x2 und y2 die Koordinaten des Punktes P2, der Abstand zur Gerade P1/P3 hat. Anhand von Abbildung 3-11 wird skizzenhaft die Vorgehensweise des Algorithmus verdeutlicht. Abbildung 3-11 Pfeilhöhenverfahren Beispiel 33 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept Es sei P1 der letzte gezeichnete Punkt der Kurve, P2 der betrachtete Punkt der Kurve (für den eine Entscheidung getroffen werden soll ob er gezeichnet wird oder nicht) und P3 sein Nachfolger. Im konkreten Beispiel auf Seite 33 Abbildung 3-11 arbeitet der Algorithmus wie folgt: Es wird ausgehend von P1 die Gerade zu P1/P3 gebildet. Danach wird festgestellt, dass der Abstand von P2 zur Geraden P1/P3 größer als die festgelegte Toleranz ist und P2 muss gezeichnet werden. Im darauf folgenden Schritt ist P2 letzter gezeichneter Punkt und es wird P3 betrachtet. Dazu wird die Gerade P2/P4 gebildet. Nun wird festgestellt, dass der Abstand von P3 zur Geraden P2/P4 kleiner ist als die Toleranz. Daher entfällt P3 (P2 bleibt letzter gezeichneter Punkt). Darauf folgend wird die Gerade P2/P5 gebildet und der Abstand von P4 zu P2/P5 überprüft. Dieser Abstand ist größer als die Toleranz und P4 wird gezeichnet. Neben der Originalkurve bestehend aus 6 Punkten, ist die neu entstandene Kurve, die nur noch aus 4 Punkten besteht, abgebildet. Betrachtet man die Charakteristik der Kurve des in Abbildung 3-6 abgebildeten Bereiches, so ist zu vermuten, dass mit Hilfe dieses Algorithmus eine gute Glättung bzw. Ausdünnung der Kurve erreicht werden kann. Anhand von verschieden Toleranzwerten d, wurde getestet, inwieweit sich der Kurvenverlauf verändert. Die drei folgenden Abbildungen zeigen die Beispielkurve (Kapitel 3.3.1) für verschiedene Toleranzwerte. Abbildung 3-12 Original Kurve besteht aus 40.000 Punkte 34 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept Abbildung 3-13 Kurve mit Toleranz 1.0 besteht aus 429 Punkten Abbildung 3-14 Kurve mit Toleranz 3.0 besteht aus 141 Punkten Wie man aus Abbildung 3-12 bis Abbildung 3-14 entnehmen kann, bleibt mit steigendem Toleranzwert die Grundform der Kurve erhalten. Dabei reduzieren sich aber die zur Darstellung benötigen Punkte extrem. Während die Originalkurve noch 40.000 Messwerte beinhaltet, sind bei einem Toleranzwert von 1.0 lediglich 429 Punkte zur Darstellung notwendig. Bei einem höheren Toleranzwert von 3.0 reduziert sich die anzuzeigende Punktmenge sogar auf 141 Punkte. 35 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept Diese starke Reduzierung der anzuzeigenden Punkte der Kurve hat einen hohen Geschwindigkeitszuwachs bei der Visualisierung zur Folge, da je nach gewählter Toleranz nur noch sehr wenige Punkte gezeichnet werden müssen. Mit Hilfe dieser Darstellung ist zwar keine genaue Auswertung einzelner Punkte möglich, aber man kann sich einen Gesamtüberblick über den Kurvenverlauf verschaffen und eventuell interessante Bereiche auswählen und genauer untersuchen. Eine Möglichkeit dazu wäre, in die Kurve hineinzuzoomen und einen Teilbereich mit höchster Genauigkeit darzustellen. Eine Analyse der Punkte innerhalb der Gesamtansicht ist ohnehin nicht effektiv möglich, da bei der Darstellung aller 40.000 Messwerte mehrere Punkte innerhalb eines Bildschirmpixels liegen und nicht lokalisierbar sind. Dieses Problem ist in Abbildung 3-12 Seite34 erkennbar. Aufgrund der Tatsache, dass durch diesen Algorithmus eine sehr starke Reduzierung der Punktmenge erreicht wurde, wird bei der Erstellung der im nächsten Kapitel beschriebenen Java-Applikation diese Methode umgesetzt. 36 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept 3.4 Synchronisation der Prüfdateien In dem neuen Datenbankmodell ist die Möglichkeit vorgesehen einem Versuch mehrere Messreihen zuzuordnen. Diese Messreihen kommen von verschieden Sensoren am Prüfstand. Bedingt durch den Aufbau des Prüfvorgangs haben die Messreihen einen gewissen Zeitversatz, d. h. die Aufzeichnung der Messdaten innerhalb der Prüfdatei 1 ist zeitversetzt zu der Aufzeichnung der Messdaten in der Prüfdatei 2. Beide Messreihen starten mit dem Zeitwert null. Zum besseren Verständnis dieses Problems wird beispielhaft ein Schubversuch an einem Lagerpaar herangezogen. Zu diesem Versuch existieren 2 Messreihen. Zum einen eine vertikale, welche aus einer Druckbelastung hervorgeht und zum anderen eine horizontale, welche aus der Schubbelastung hervorgeht. Tabelle 3 zeigt ein mögliches Aussehen der Messreihen. Messreihe 1 vertikal Messreihe 2 horizontal Start Aufzeichnung: 15:30:45 Uhr Start Aufzeichnung: 15:30:50 Uhr Zeit [s] Zeit [s] Kraft [kN] Weg [mm] Kraft [kN] Weg [mm] 0 0 0 0 0 0 1 0 0 0,25 10 1 2 100 1 0,5 20 2 3 200 2 0,75 30 3 ... ... ... ... ... ... ... ... ... ... ... ... 20 0 0 4,47 5 1 - - - 5 -5 0 Tabelle 3 Mögliches Aussehen von Messreihen Die beiden Messreihen haben eine Zeitdifferenz von 5 Sekunden. Möchte man jetzt den Weg der Messreihe 1 über den Weg der Messreihe 2 darstellen, müssen beide Messreihen zunächst über die Zeit synchronisiert werden. Da zu den Zeitwerten der Messreihe 1 keine passenden Zeitwerte der Messreihe 2 vorhanden sind, muss zwischen 37 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept zwei bestehenden Zeitwerten der Messreihe 2 interpoliert werden. Dazu wird ein lineares Interpolationsverfahren verwendet. 3.5 Speicherung der Prüfdateien In der bestehenden Access-Client-Applikation werden die Prüfdaten extern (wie unter Kapitel 2.2 beschrieben) in einem Binärformat gespeichert, das nur mit der bestehenden Visual-Basic-Applikation wiederhergestellt werden kann. Durch das unleserliche Binärformat ist kein Einblick mehr in die originale Prüfdatei möglich. Das ist nachteilig, wenn man bedenkt man, dass eventuell weitere Applikationen entwickelt werden könnten, für die ein Zugriff auf die originalen Prüfdaten eines Versuches notwendig werden könnte. Aus diesen Überlegungen heraus wurde die Speicherung der originalen Prüfdatei, die in Textform vorliegt, realisiert. Ein weiteres Argument für die binäre Speicherung der Prüfdaten, war der stark reduzierte Speicherplatzbedarf der erzeugten Binärdatei im Gegensatz zu der originalen Prüfdatei. Um dieses Argument zu entkräften, wird die Prüfdatei mit allgemein üblichen Kompressionsalgorithmen komprimiert. In der später beschriebenen Java-Applikation wird auf das GZIP-Format (Kapitel 3.5.1) für die Kompression zurückgegriffen. Damit bleibt die Möglichkeit erhalten, auf die originale Prüfdatei zugreifen zu können. Das ermöglicht es wiederum anderen Applikationen diese Datei zu lesen und die Prüfdaten innerhalb dieser Datei auszuwerten. Durch das verwendete GZIP-Format wird die Größe der Datei auf ca. 20% reduziert, was als ausreichend betrachtet werden kann. Die Visual-BasicAnwendung reduziert die Größe der Originaldatei durch das Binärformat auf ca. 35%. Ein weiterer Nachteil des Binärformates ist es, dass es bei Beschädigung nicht repariert werden kann und somit die Daten verloren sind. Im Gegensatz dazu sind eventuell defekte Archive widerherstellbar und man kann zumindest einen Teil der Daten retten. Aus den genannten Gründen wird die Speicherung in Textform und Komprimierung mittels GZIP, der binären Speicherung der Prüfdatei vorgezogen. 38 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Lösungskonzept 3.5.1 GZIP Kompressionsformat GZIP ist ein Kompressionsformat, das von Jean-Loup Gailly entwickelt wurde. Es ist auf fast allen Betriebssystemen frei verfügbar. Es ist frei von patentierten Algorithmen und bietet eine gute Kompression. Viele Kompressionsprogramme unterstützen dieses Format. Als Beispiel sei hier auf das frei erhältliche 7-Zip Programm (www.7-zip.org) verwiesen. GZIP ist nicht zu verwechseln mit dem ZIP Format unter Windows, das einen anderen kostenpflichtigen Komprimieralgorithmus verwendet. Java bietet in seinem aktuellen JDK (Java Development Kit) komfortable Klassen zur Behandlung des GZIP Formats an. 39 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung 4 Implementierung 4.1 Auswahl der Technologien 4.1.1 MS-Access Das Datenbankschema wurde mittels MS-Access umgesetzt. MS-Access ist vollständig kompatibel zu dem SQL92-Standard, und es ist möglich, mit einem breiten Spektrum von Programmiersprachen über die von Microsoft bereitgestellte ODBC-Schnittstelle (Kapitel 3.2.4) auf dieses DBMS zuzugreifen. Diese Kriterien erfüllen auch andere relationale DBMS, wie mySQL oder Oracle und es wäre durchaus möglich die Datenbank in diesen DBMS zu implementieren. Die Wahl fiel auf MS-Access, weil dieses System am Verkehrsbaulehrstuhl zum Einsatz kommt. 4.1.2 Java Die Wahl der Programmiersprache für die Clientanwendung fiel auf JAVA von SUN Microsystems. Als neue und moderne Programmiersprache bietet sie dem Anwender einige Vorteile. Zu nennen ist hierbei die Objektorientierung der Sprache sowie die eigenständige Verwaltung des Hauptspeichers durch den Garbage-Collector. Dieser verwaltet den Speicher der in Java benutzten Objekte. Er fungiert quasi als eine Art „automatischer Mülleimer“. Er stellt zur Laufzeit eines Programms fest, welche Objekte nicht mehr benötigt werden und gibt deren Speicherplatz frei. Diese Aufgabe muss in anderen Sprachen vom Programmierer gelöst werden, wobei sehr häufig Fehlerquellen entstehen. Ein weiterer Aspekt ist die einfache Möglichkeit mit Hilfe der JDBC-API (Kapitel 4.3.3) von Java, auf relationale Datenbanken zugreifen zu können. 40 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung 4.2 Versuchsdatenbank In einem ersten Schritt wurden nach dem in Abbildung 3-4 auf Seite 21 gezeigtem ERModell für die jeweiligen Entitäten Tabellen entworfen. Diese Entitäten bzw. Tabellen wurden mit Attributen versehen, welche die Entitäten beschreiben. So hat beispielsweise die Entität PRUEFER mehrere verschieden Attribute. Ein sehr wichtiges Attribut einer Tabelle ist der Primärschlüssel. Dieses Attribut dient der eindeutigen Identifikation eines Datensatzes innerhalb einer Tabelle. Der Begriff Datensatz bezeichnet eine Zeile innerhalb einer Tabelle. Eine Tabelle kann beliebig viele Datensätze beinhalten. Der Primärschlüssel kann innerhalb der Tabelle festgelegt werden oder von dem benutzten DBMS automatisch erzeugt werden. In den meisten Fällen handelt es sich um einen Zähler, welcher sich pro Datensatz um eins erhöht. Bei der Implementierung der Versuchsdatenbank mittels MS-Access, wurde zu jeder Tabelle solch ein Primärschlüssel definiert, der automatisch für jeden Datensatz einen eindeutigen Index erzeugt. Neben dem Begriff des Primärschlüssels, gibt es noch den Begriff des Fremdschlüssels. Ein Fremdschlüssel einer Tabelle verweist auf einen Primärschlüssel einer anderen Tabelle. Er wird benötigt um die unter Kapitel 3.2.1 aufgeführten Beziehungstypen zwischen den einzelnen Tabellen innerhalb von rationalen Datenbanken zu realisieren. Abbildung 4-1 auf Seite 42 zeigt eine Übersicht über die Tabellen inklusive der zugehörigen Attribute, die innerhalb der Versuchsdatenbank angelegt wurden. Die Primärschlüssel der Tabellen sind dabei mit PK, die Fremdschlüssel mit FK gekennzeichnet. 41 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung Abbildung 4-1 Datenbankschema nach ER Modell Die Beziehungen zwischen den Tabellen VERSUCH - PROBEKOERPER, und VERSUCH - MESSREIHE entsprechen dem Typ N:M (Kapitel 3.2.1). Innerhalb von relationalen DBMS werden solche Beziehungen mittels Relationstabellen abgebildet. Relationstabellen sind Verknüpfungstabellen, deren Felder sich auf andere Tabellen beziehen. Beispielsweise enthält die Tabelle VERSUCH_MESSREIHE_REL zwei Felder, zum einen ein Feld zur Aufnahme des Primärschlüssels der Tabelle VERSUCH, und zum anderen ein Feld für den Primärschlüssel der Tabelle MESSREIHE. Beide Felder sind innerhalb der Verknüpfungstabelle als Fremdschlüssel deklariert. Mit Hilfe dieser Verknüpfungs- oder auch Zuordnungstabelle genannt, ist man in der Lage einem Versuch beliebig viele Messreihen zuzuordnen. Die Beziehung zwischen den Tabellen VERSUCH - PROBEKOERPER ist auf die gleiche Art und Weise abgebildet. Ein weiterer Beziehungstyp wird mittels der 1:N Beziehung beschrieben. Dabei wird in der Tabelle auf der N-Seite der Beziehung ein zusätzliches Attribut zur Aufnahme des 42 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Primärschlüssels der Tabelle auf Implementierung der 1-Seite zugeordnet. Innerhalb der Versuchsdatenbank findet man diesen Beziehungstyp zwischen den Tabellen PRUEFER (1) und VERSUCH (N) sowie HERSTELLER (1) und PROBEKOERPER (N). Abbildung 4-2 soll das Verständnis unterstützen. Abbildung 4-2 Beziehung1:n Die neu entworfene Datenbank ist so in der Lage, den Anforderungen zur Speicherung aller Parameter eines Versuches gerecht zu werden. Jetzt können den Versuchen beliebig viele Messreihen sowie Probekörper zugeordnet werden. Die Namensgebung der Attribute der einzelnen Entitäten wurde von der Bedeutung ihres Inhaltes abgeleitet. 43 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung 4.3 Java-Applikation 4.3.1 Funktionsweise Die entwickelte Java-Applikation beinhaltet mehrere Funktionsbereiche. Abbildung 4-3 soll diese schematisch darstellen. Abbildung 4-3 Aufgabengebiete der Applikation Insgesamt sind drei Aufgabengebiete zu erkennen, welche die Java-Applikation abdecken muss. Die Applikation muss die modifizierte Prüfdatei (Kapitel 3.1) die vom Prüfstand erzeugt wird einlesen, alle versuchsbeschreibenden Informationen erkennen, und in die Datenbank schreiben. Die Prüfdaten, die zu visualisieren sind, sollen extern gespeichert werden. Dazu wird die gesamte Prüfdatei mittels GZIP komprimiert und außerhalb der Versuchsdatenbank in dem Unterordner \DATEN, der auf derselben Ebene wie die Datenbank liegt, gespeichert. Innerhalb der Versuchsdatenbank wird in der Tabelle MESSREIHE in dem Attribut DATEIVERWEIS_EXT, der Verweis auf die 44 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung dem Versuch zugehörige Messdatei gespeichert. Als weiterer Aufgabenbereich ist das Einpflegen von Daten unabhängig von der Versuchsaufnahme zu realisieren. Dazu gehören die Eingabe von Probekörpern und deren Herstellern sowie die Registrierung von Prüfern, welche die Versuche leiten. Ebenfalls in diesen Bereich fällt die Pflege des Datenbestandes, was die Aktionen: Löschen, Hinzufügen und Ändern von Datensätzen beinhaltet. Als letzter Bereich ist die Visualisierung der Daten aufzuzählen. Um die grafische Darstellung der Versuche zu ermöglichen, muss der Versuch ausgewählt werden und die zugehörige Prüfdatei, welche die Messdaten enthält, eingelesen werden. Danach werden die wiederhergestellten Messdaten in Koordinatensystemen grafisch aufbereitet. Ausgehend von diesen drei Hauptbereichen wird die Java-Applikation aufgebaut. Für die einzelnen Aufgaben werden Klassen entworfen von denen im Folgenden einige vorgestellt werden. 4.3.2 Struktur Unter diesem Punkt wird die Struktur des neuen Viewer-Tools-2.0 vorgestellt. Beim Aufbau des Viewer-Tools wurden Klassen gleichen Kontextes in Paketen gruppiert. Ingesamt verfügt das Viewer-Tool-2.0 über drei Pakete, die anschließend kurz beschrieben werden. Abbildung 4-4 Struktur des Viewer Tools Als größter Teil der Applikation sind in dem Paket gui alle Klassen zusammengefasst, die zur grafischen Darstellung benötigt werden. Es beinhaltet Dialoge zum Einpflegen der Versuchsdaten in die Datenbank sowie Klassen, welche die grafische Darstellung 45 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung der Prüfdaten realisieren. In dem Paket tools sind Klassen zusammengefasst, die Funktionen wie Drucken, Speichern oder das Einlesen der Prüfdateien bereitstellen. Das Paket db enthält die Funktionalitäten zur Konfiguration und zur Herstellung der Datenbankverbindung. 4.3.3 Datenbankzugriff JDBC steht für „Java Database Connectivity“ und ist eine API der Java Plattform. Es stellt, ähnlich ODBC unter Windows, eine Schnittstelle für den Zugriff auf Datenbanken dar. Innerhalb der JDBC-API sind Java-Klassen zusammengefasst, die durch ihre Methoden Funktionalität zum Kommunizieren mit relationalen Datenbanken aus JavaApplikationen heraus zur Verfügung stellen. Das Aufgabengebiet von JDBC geht dabei vom Herstellen und Verwalten der Datenbankverbindungen, über das Weiterleiten von SQL-Abfragen an die Datenbank, bis hin zur Umwandlung der Abfrageergebnisse in eine für Java nutzbare Form. Das JDBC-Klassenpaket ist von SUN Microsystems entwickelt worden und wird jeweils mit dem aktuellen JDK mitgeliefert. Die drei Hauptkomponenten von JDBC sind: • JDBC – API Mit JDBC-API wird die Programmierschnittstelle für den Entwickler zum Datenbankzugriff bezeichnet. Innerhalb dieser Schnittstelle wird ausschließlich festgelegt und definiert, durch welche Methoden auf relationale Datenbanken zugegriffen werden kann. Die API wurde komplett mittels Java – Interfaces definiert, welche im Paket java.sql zusammengefasst sind. • JDBC – Treibermanager Der JDBC–Treibermanager verwaltet verschiedene JDBC-Treiber zur Laufzeit des Programms. Theoretisch können bei ihm beliebig viele JDBC–Treiber angemeldet werden. Somit ist man in der Lage, innerhalb einer Java-Applikation mit mehreren verschiedenen DBMS zu kommunizieren. 46 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten • Implementierung JDBC – Treiber Die Implementierung der JDBC-API für ein konkretes DBMS bezeichnet man als JDBC-Treiber. Innerhalb dieses Treibers ist der Programmcode implementiert, welcher den Zugriff auf das DBMS regelt. Diese Treiber sind nicht im Standard JDK von Java enthalten. Gegenwärtig existieren für fast alle DBMS angepasste JDBC–Treiber, die von den Herstellern oder Drittanbietern zur Verfügung gestellt werden. Tabelle 4 enthält einige Treiberklassennamen. DBMS JDBC - Treiberklassenname MySQL com.mysql.jdbc.Driver Oracle oracle.jdbc.driver.OracleDriver IBM DB COM.ibm.db2.jdbc.net.DB2Driver IDS Server ids.sql.IDSDriver Tabelle 4 Auswahl von Datenbanktreibern Aufgrund dessen, dass zum Zeitpunkt der Entwicklung von JDBC nur für sehr wenige DBMS angepasste JDBC–Treiber zur Verfügung standen, die ODBC-Schnittstelle jedoch von fast jedem Datenbanksystem unterstützt wurde, definierte SUN einen so genannten JDBC-ODBC-Brückentreiber (oft auch bezeichnet als JDBC-ODBC-Bridge). Dieser Treiber setzt auf die ODBC-Schnittstelle von Microsoft auf (Abbildung 4-5 links Seite 48) und ermöglicht dadurch den Zugriff auf jede beliebige ODBC-Datenquelle. Dabei übersetzt er JDBC-Befehle in ODBC-Befehle. Mit der Entwicklung dieses Treibers ermöglichte es SUN, ein breites Spektrum von Datenbanken mittels Java anzusprechen. Dieser Brücken-Treiber ist Teil des JDK, dass von SUN Microsystems zur Verfügung gestellt wird. 47 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung Da die speziell angepassten Treiber für JDBC von den Datenbankherstellern oder von Drittherstellern kostenpflichtig sind und das verwendetet DBMS MS-Access die ODBC-Schnittstelle unterstützt, wurde in der vorliegenden Arbeit der JDBC-ODBCBrücken-Treiber verwendet. Nachteil dieses Treibers ist die geringere Geschwindigkeit beim Zugriff auf die Datenbank sowie der geringere Funktionsumfang gegenüber den speziell auf die DBMS getrimmten Treibern. Die SQL-Grundfunktionalität des JDBC­ ODBC-Brücken-Treibers zum Abfragen, Löschen oder Einpflegen von Daten ist ausreichend. Vorausschauend ergibt sich ein weiterer Vorteil aus der Benutzung dieses Treibers. Man ist in der Lage, das DBMS, mit dem die Versuchsdatenbank entwickelt wurde, auszutauschen. Konvertiert man die Datenbank beispielsweise von MS-Access zu mySQL, kann man mit dem JDBC-ODBC-Brücken-Treiber weiterhin ohne Probleme auf die mySQL-Datenbank zugreifen, da dieses DBMS ebenfalls die ODBCSchnittstelle von Microsoft unterstützt und ODBC-Treiber zur Verfügung stehen. Anhand des JDBC-ODBC-Brücken-Treibers soll nun aufgezeigt werden wie sich der Datenbankzugriff mittels Java vollzieht. Abbildung 4-5 zeigt die am Datenbankzugriff beteiligten Schichten. Abbildung 4-5 Datenbankzugriff mittels JDBC-ODBC- bzw. JDBC-Oracle-Treiber 48 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung Für den Datenbankzugriff innerhalb einer Java-Applikation sind grundsätzlich folgende Schritte auszuführen: 1. Laden des JDBC-Datenbanktreibers 2. Verbindung zur Datenbank über den entsprechenden JDBC-Treiber für das verwendete DBMS aufbauen (hier MS Access) 3. Erzeugen einer SQL-Anweisung 4. Ausführen der SQL-Anweisung 5. Ergebnis der Anweisung empfangen, wenn der SQL Befehl ein Ergebnis zurück gibt (SELECT Befehl) 6. Schließen der Datenbankverbindung Ebenso wie die in Tabelle 4 vorgestellten Treiber, liegt der JDBC–ODBC–BrückenTreiber in Form einer Javaklasse vor. Er wird mit der statischen Methode forName() der Klasse Class geladen. Die Java Syntax für das Laden des JDBC-ODBC-BrückenTreibers zeigt Codelisting 1. Codelisting 1 Laden des JBDC-ODBC-Brücken-Treibers Ist der Treiber erfolgreich geladen, wird er beim DriverManager von Java registriert. Wenn die Treiberklasse nicht gefunden wird, wird eine ClassNotFoundException generiert. Da eine Java-Applikation unter Umständen mit verschiedenen Datenbanken kommunizieren muss, besteht die Möglichkeit, beim DriverManager mehrere Treiber anzumelden. Um diese zu verwalten, führt der von JDBC bereitgestellte DriverManager eine Liste. Jede Art von Zugriffen, die eine Java-Applikation mit einer Datenbank aufbauen will läuft über den DriverManager. Nach dem Laden des 49 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung Treibers wird die Verbindung zur Datenbank aufgebaut. Dazu steht innerhalb von Java ein Connection-Objekt zur Verfügung. Dessen Referenz wird über die Methode getConnection() der Klasse DriverManager zurück geliefert. Codelisting 2 Verbindungsaufbau mittels DriverManager Wie man aus dem Codelisting 2 entnehmen kann, erwartet die Methode üblicherweise eine URL1 (Uniform Resource Locator), einen Benutzernamen und ein Passwort. Die URL wird in Form eines Strings übergeben und repräsentiert den vollständigen Pfad zu der zu öffnenden Datenbankdatei (Datenquelle). Ferner beinhaltet dieser String (Abbildung 4-6) die Information, um was für ein DBMS es sich handelt, und es wird der benötigte Treiber geladen. „jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ\=E\…Pfad zur Datenbank…\Versuchsdatenbank.mdb“ Abbildung 4-6 URL-Verbindungsstring Über das Connection-Objekt werden alle Datenbankanfragen und die daraus resultierenden Ergebnisse abgewickelt. Ist die Verbindung hergestellt, kann über die Objekte des Typs Statement (einfacher SQL-Befehl), PreparedStatement (vorkompilierter SQL-Befehl) oder CallableStatement (Aufruf einer Prozedur) mit der Datenbank kommuniziert werden. In Codelisting 3 werden die Schritte zum 1 Uniform Resource Locator (deutsch „einheitliche Ortsangabe für Ressourcen“) definiert eine Ressource über ihren Zugriffsmechanismus und ihren Ort im Netzwerk 50 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung Verbindungsaufbau, vom Laden des Treibers bis zum Erhalten des Ergebnisses einer SQL-Abfrage, in Java- Syntax dargestellt. Codelisting 3 Übersicht über die Schritte des Datenbankzugriffs Mit der Methode executeQuery() der Klasse Statement werden die SQLAbfragen ausgeführt. Der Rückgabewert dieser Methode ist vom Typ ResultSet. In diesem ist das Ergebnis der SQL-Abfrage gespeichert. Mittels verschiedener get() Methoden kann auf das Objekt des Typs ResultSet zugegriffen werden. Im abgebildeten Codelisting 3 liefert die Methode getString(“NAME“) die Zeichenkette, die in der Spalte NAME, der Tabelle PRUEFER in der Versuchsdatenbank gespeichert ist. Um im Objekt des Typs ResultSet über die Zeilen zu navigieren, existieren verschiedene Methoden. Diese sind innerhalb der Java Dokumentation ausführlich beschrieben. Anzumerken ist, dass die Definition der URL auch mit dem in Windows enthaltenen Werkzeug ODBC-Datenquellen-Administrator vorgenommen werden kann. Dazu wird mit Hilfe dieses Werkzeugs ein ODBC-Datenquellenname definiert, der den Pfad zur Datenbank und den Typ des Datenbanksystems beinhaltet. Beim Verbindungsaufbau wird dann statt der kompletten URL (Abbildung 4-6 Seite 50), der Name der definierten Datenquelle angegeben. In der vorliegenden Arbeit wurde auf diese Möglichkeit 51 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung verzichtet. Es wurde dem Nutzer vielmehr ermöglicht, innerhalb der Java-Applikation die entsprechenden Parameter zum Zugriff auf die Datenbank einzustellen. 4.3.4 Datenbankverbindung - DbVerbindungsManager.java Um den unter Kapitel 4.3.3 beschriebenen Datenbankzugriff unter Java innerhalb des Viewer-Tools-2.0 zu realisieren, wurde die Klasse DbVerbindungsManager.java aus dem Paket de.uni-weimar.viewer.db implementiert. Diese Klasse stellt die Verbindung zur Datenbank her. Sie lädt die benötigten Einstellungen, die für den Verbindungsaufbau notwendig sind aus der Datei „Verbindung.ini“. Innerhalb dieser Datei wird die URL, der Benutzername und das Passwort sowie der Java Klassenname des zu benutzenden Datenbanktreibers gespeichert. Vorteilhaft wirkt sich dieses Design aus, wenn sich an den Zugriffsparametern etwas ändert. Zum Beispiel könnte die Versuchsdatenbank an einen anderen Ort verschoben werden. Der Anwender ist nun in der Lage, durch einfaches Editieren der Datei „Verbindung.ini“ die nötigen Einstellungen anzupassen, ohne im Quellcode Veränderungen vornehmen zu müssen. Dazu wird innerhalb des Viewer-Tools-2.0 ein grafischer Dialog bereitgestellt (DbVerbindungsDialog.java), über den man die nötigen Angaben komfortabel einstellen kann. 4.3.5 Einpflegen von Versuchsdaten - DbMaske.java Um in die einzelnen Entitäten der Versuchsdatenbank Daten eingeben zu können, wurden im Unterpaket gui.formulare Klassen zusammengefasst, welche die benötigten Funktionalitäten bereitstellen. Die Vorgehensweise bei der Bedienung der Datenbank erfordert es, einige Daten unabhängig von der Versuchsaufnahme einpflegen zu können. Zu diesen Daten gehören Angaben zu den Prüfern der Versuche, zu den Probekörpern sowie zu den Herstellern der Probekörper. Dazu wurde die Klasse DbMaske.java implementiert. Die Klasse erzeugt, anhand der Anzahl der Attribute einer Entität der Versuchsdatenbank, eine grafische Maske zur Dateneingabe. Die Grundstruktur (Abbildung 4-7) dieser Eingabemaske ist für die verschiedenen Entitäten 52 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung der Datenbank gleich. Je nach Anzahl der Attribute der zu bearbeitenden Entität wird im Bereich der Detailansicht die Anzahl der benötigten Felder zur Dateneingabe sowie deren Beschriftungen von der Klasse automatisch angepasst. Abbildung 4-7 Datenbankeingabeformular Im linken Teil des Fensters wird dem Nutzer ein Überblick über die gesamten Datensätze der betrachteten Entität der Datenbank gegeben. Im rechten Teil werden die jeweiligen Werte der Attribute zu dem in der Gesamtübersicht markierten Datensatz angezeigt. Weiterhin ist unterhalb der Gesamtansicht ein Feld angeordnet, das zur Suche innerhalb der Tabelle der Gesamtübersicht dient. Es fungiert als ein Filter für die erste Spalte der Tabelle. Wird beispielsweise die Tabelle PRUEFER der Versuchsdatenbank bearbeitet, wird in der ersten Spalte der Tabelle der Gesamtübersicht der Name des Prüfers angezeigt. Gibt man nun in dem Filterfeld eine Zeichenkette ein, werden ausschließlich die Namen derjenigen Prüfer angezeigt, deren Name mit der gleichen Zeichenkette beginnt. 53 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung Über den Konstruktor der Klasse DbMaske.java kann die Eingabemaske angepasst werden. Dazu wird beim Instanzieren der Klasse, der Name der Entität(String tabelle) der Versuchsdatenbank sowie die Attribute(String spaltenname) die innerhalb der Gesamtansicht benötigt werden, im Konstruktor übergeben. Der Konstruktor wird aufgerufen durch: DbMaske(JFrame frm, String titel, String tabelle, String spaltennamen) Durch dieses Design ist es möglich, die Eingabemaske an die verschiedenen Entitäten der Versuchsdatenbank anzupassen. Im rechten, unteren Teil der Eingabemaske ist die Funktionalität für das Hinzufügen, das Löschen und das Ändern von Datensätzen implementiert. 4.3.6 Einlesen der Prüfdatei - DbParser.java Die in Kapitel 3.1 auf Seite 15 vorgestellte Modifikation der Prüfdatei ermöglicht das einfache Einlesen des Inhaltes der Prüfdateien. Um diese Funktionalität zur Verfügung zu stellen, ist innerhalb des Packages tools die Klasse DbParser.java implementiert worden. Die Klasse kann die modifizierten Prüfdateien einlesen und auswerten. Dazu wird die Prüfdatei zeilenweise eingelesen und nach den in Tabelle 1 definierten Schlüsselwörtern durchsucht. Wird eines dieser Schlüsselwörter gefunden, kann die nachfolgende Information gelesen und zugeordnet werden. Ist die Prüfdatei erfolgreich eingelesen, stehen die Daten des Versuches der Java-Applikation zur Verfügung. Zu diesem Zweck stehen zwei Methoden der Klasse DbParser.java zur Verfügung. Zum einen die Methode parseVD(File pruefdatei), welche die den Versuch beschreibenden Daten einliest und die Methode parsePD(File pruefdatei), welche die Prüfdaten zur grafischen Darstellung einliest. Dazu muss der jeweiligen Methode der Klasse DbParser.java als Parameter der Dateiname der einzulesenden Prüfdatei mitgegeben werden. Nach dem Einlesen der Prüfdatei, kann mittels get() Methoden der Klasse auf die eingelesenen Werte zugegriffen werden. 54 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung 4.3.7 Komponenten der Nutzeroberfläche Der umfangreichste Teil des Viewer-Tools-2.0 besteht aus der grafischen Oberfläche der Applikation. Sie stellt dem Anwender über eine Menüleiste sowie eine Toolbar Funktionalität zur Verfügung. Bei der Anordnung und dem Entwurf der Komponenten wurden die von Java bereitgestellten Layout- und Containerklassen genutzt und erweitert. Darüber hinaus wurde ein package aus einer Studienarbeit [3] genutzt, das ein Objekt in Form eines Koordinatensystems zur grafischen Darstellung bereitstellt. Im Hauptfenster der Applikation wurde eine SplitPane angeordnet, die wiederum zwei spezielle Containerobjekte (ViewerCoordinateSystem.java) beinhaltet. Diese Containerobjekte repräsentieren Koordinatensysteme zur grafischen Darstellung. Sie wurde mit neuen Eigenschaften versehen, und an die speziellen Anforderungen an die Auswertung der Prüfdaten angepasst. Nachfolgende Abbildung 4-8 zeigt die Anordnung der Komponenten im Hauptfenster des Viewer-Tool-2.0. Abbildung 4-8 Komponentenanordnung im Hauptfenster der Applikation 55 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung 4.3.8 Koordinatensystem - package coordinateSystem Zur grafischen Aufbereitung der Daten wurde ein Paket genutzt und erweitert, welches im Rahmen einer früheren Studienarbeit von Stefan, Lobers [3] entstand. Dieses Paket beinhaltet Klassen, die es ermöglichen Komponenten innerhalb eines Koordinatensystems in einer immer optimalen Sicht für den Anwender darzustellen. Es umfasst die sehr aufwendigen Skalierungsvorgänge der grafischen Anzeige, die völlig vor vom Nutzer verborgen bleiben, d.h. im Hintergrund ablaufen. Für das Viewer-Tool­ 2.0 wurden einige Klassen aus diesem Paket angepasst. So wurde die Klasse ViewerCoordianteSystem, von der im Paket coordinateSystem ([3] Kapitel 4.2.4.2) befindlichen Klasse ValueCoordinatSystem([3] Kapitel 4.2.4.2) abgeleitet, d.h. deren Funktionalität geerbt. Durch das Interface CoordinateComponent ([3] Kapitel 4.2.4.3) ist die für die Visualisierung von Objekten innerhalb des Koordinatensystems notwendige Objektstruktur definiert. Die Objekte werden an das Koordinatensystem übergeben und zeichnen sich selbst. Für das Viewer-Tool-2.0 wurden neue Komponenten entwickelt, die dieses Interface implementieren und damit ohne Probleme auf dem bereitgestellten Koordinatensystem gezeichnet werden können. Eine ausführliche Beschreibung der Funktionsweise dieser Klassensammlung ist in der Studienarbeit „Implementierung eines Programms in Java zur Ermittlung von charakteristischen Kenngrößen“ von Stefan Lobers [3], im Kapitel 4, unter den Punkten 4.2.4 – 4.2.4.4 zu finden. 4.3.9 Grafische Darstellung Bei der Darstellung der Prüfdaten war das größte Problem, die Geschwindigkeit der grafischen Anzeige in den Griff zu bekommen. Mit der ersten Version des Viewer-Tools war man zwar in der Lage die Daten komfortabel zu visualisieren, was Art und Weise der Darstellung betraf, jedoch trat bei größeren Messreihen ein erheblicher Performanceeinbruch der Applikation auf, bis hin zu deren Unbedienbarkeit. Die Ursache hierfür liegt darin begründet, dass bei der momentan vorhandenen Version des Viewer-Tool zum Zeichnen der Kurve eine Vielzahl von Komponenten innerhalb des 56 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung Koordinatensystems erzeugt wird. Die Kurve besteht also aus sehr vielen Linienabschnitten. Da das Koordinatensystem die Eigenschaften besitzt sich beim Hinzufügen von Komponenten selbst neu zu zeichnen und zu skalieren, waren bereits bei ca. 3.000 Werten die Grenzen des Hardwaresystems ausgelotet. Ein Versuch zur Lösung dieses Problems wurde in der ersten Version des Viewer Tools realisiert. Dazu wurde in Abhängigkeit von der Menge der darzustellenden Punkte nur jeder x-te Punkt gezeichnet. Dadurch erreichte man zwar eine Reduzierung der Punktmenge und eine damit verbundene Beschleunigung der Darstellung, verlor dabei aber charakteristische Punkte der Kurve. Das hatte zur Folge, dass die Kurve nur noch wenig Ähnlichkeit mit dem originalen Kurvenverlauf hatte. Der erste Unterschied zur vorhandenen Version des Viewer-Tools, liegt in der Vorgehensweise zur Erzeugung der Komponente zur Darstellung der Kurve. Während die Kurve in der ersten Version des Tools aus vielen kleinen Komponenten (Linien) zwischen aufeinander folgenden Punkten erzeugt wurde, besteht die neue Kurvenkomponente aus einer einzelnen Komponente (GesamtKurve_Comp.java). Das heißt, die Kurve wird einmal komplett erzeugt und an das Koordinatensystem übergeben. Dieser Vorgang ist drastisch schneller als das Hinzufügen von mehreren kleineren Linienabschnitten, da sich das Koordinatensystem nur einmal skalieren und neu zeichnen muss. Die Komponente zur Darstellung der Gesamtansicht wird durch die Klasse GesamtKurve_Comp.java repräsentiert. Sie kann sich durch ihre Methode drawComponent() selbst zeichnen. Die Punkte zur Darstellung der Kurve bezieht die Klasse aus einem Objekt des Typs Vector, der alle zu zeichnenden Punkte enthält und bei der Instanzierung übergeben wird. Durch diese Veränderung ist die neue Java-Applikation in der Lage deutlich mehr Punkte darzustellen, ohne einen Performanceeinbruch hervorzurufen. Bei gleich bleibender Darstellungsgeschwindigkeit können statt bisher ca. 3.000 Punkte, 40.000 Punkte einer Messreihe angezeigt werden. Der nächste Unterschied zur momentan vorhandenen Lösung ist die Wahl des Algorithmus zur Punktreduzierung. Zur Anwendung im neuen Viewer-Tool-2.0 kam der Algorithmus, der als Linienglättung (Kapitel 3.3.3) vorgestellt wurde. Mit dessen Hilfe 57 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung wurde eine erhebliche Reduzierung der Punktemenge erreicht, die zur Darstellung der Gesamtübersicht der Kurve notwendig ist. Die Kurve bleibt jedoch in ihrer Grundform erhalten. Dazu wurden verschiedene Tests mit unterschiedlichen Toleranzwerten durchgeführt (s. Kapitel 3.3.3). In der neuen Java-Applikation wurde außerdem die Möglichkeit vorgesehen, die Genauigkeit mit der die Kurve gezeichnet werden soll einzustellen und je nach Größe der Messreihe anzupassen. Der Algorithmus wurde innerhalb der Klasse ConfigCoordinateSystem.java in der Methode zeichneGesamteKurve() umgesetzt. Dieser Algorithmus wird ausschließlich zum Zeichnen der Gesamtansicht der Kurve verwendet. Innerhalb der Anwendung werden stets die Originaldaten vorgehalten. Um es dem Anwender zu ermöglichen einen bestimmten Teilbereich einer Kurve genauer zu untersuchen, wurde ein weiteres Koordinatensystem unterhalb der Gesamtdarstellung angeordnet. Innerhalb dessen kann der genaue Verlauf eines Kurvenbereiches analysiert werden. Dazu wird dem Anwender die Möglichkeit eingeräumt sich einen beliebigen Kurvenabschnitt auszuwählen. Im Unterschied zur Gesamtdarstellung fehlt in diesem Koordinatensystem kein Punkt der Kurve. Sie bildet somit den exakten Kurvenverlauf der Messdaten ab. Dadurch ist eine genaue Analyse der Kurve in dem Bereich möglich. Der Bereich ist vom Anwender frei wählbar. Dabei kann er sich an der Gesamtübersicht der Kurve orientieren, die ihm im oberen Koordinatensystem zu Verfügung gestellt wird. Weiterhin kann er entscheiden ob zusätzlich zur Liniendarstellung der Kurve noch die einzelnen Punkte angezeigt werden. Es ist möglich, die Koordinaten der dargestellten Punkte durch anklicken des jeweiligen Punktes abzufragen. Somit ist der Nutzer in der Lage, sehr große Messreihen zu visualisieren und spezielle Bereiche genauer zu untersuchen. 4.3.10 Synchronisierung Wie bereits unter Kapitel 3.4 beschrieben, haben bestimmte Versuche bedingt durch ihre Charakteristik mehrere Prüfdateien zur Folge. Bei einem Schubversuch existieren z.B. in der Regel zwei Prüfdateien – eine für die horizontale Belastung und eine für die vertikale Belastung. Da aus versuchstechnischen Gründen die Messsensoren nicht 58 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung gleichzeitig gestartet werden können, tritt zwischen den Aufzeichnungen der Prüfdateien ein gewisser Zeitversatz auf. Der Zeitversatz der Prüfdateien wird beim Einpflegen des Versuches in die Versuchsdatenbank, der jeweiligen Prüfdatei durch den Anwender zugeordnet und gespeichert. Die Abtastzeitpunkte der Messsensoren sind ebenfalls unterschiedlich. Dadurch entstehen unterschiedliche Zeitabstände bei der Aufzeichnung der Messwerte innerhalb der Prüfdateien. Dadurch wird es notwendig die Messreihen zu synchronisieren. Wird ein Versuch innerhalb der Java-Applikation zur grafischen Darstellung ausgewählt, werden die Prüfdateien dekomprimiert und mittels der Methode parsePD(File pruefdatei) eingelesen. Die Daten der Messreihen stehen in der Java-Applikation in Form eines Vectorobjektes zur Verfügung. Den Aufbau zeigt Abbildung 4-9. Abbildung 4-9 Datenmodell der Messreihen nach Import Möchte der Anwender eine Wertespalte der Messreihe 1 über eine Wertespalte der Messreihe 2 darstellen, müssen die Messreihen anhand der Zeitspalte der Hauptmessreihe synchronisiert werden. Diese Aufgabe übernimmt die Methode synchronisiere(Vector v) der Klasse CoordinateSystemConfig.java. 59 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung Die Daten werden ausschließlich synchronisiert, wenn Spalten aus verschiedenen Messreihen ausgewählt werden, zum Beispiel wenn der Weg der Nebenmessreihe über die Zeit der Hauptmessreihe dargestellt werden soll. Zu dem Zeitwert der Hauptmessreihe (1,0s) ist kein zugehöriger Wert in der Spalte Weg der Nebenmessreihe vorhanden. Es muss daher für den Zeitpunkt der Hauptmessreihe (1,0s) ein Wert der Nebenmessreihe Spalte Weg interpoliert werden (x). Die Interpolation wird linear vorgenommen und von der Methode: interpoliere(double x1, double x2, double y1, double y2, double x) Diese Methode is in der Klasse CoordinateSystemConfig.java umgesetzt. Die lineare Interpolation ist die einfachste Form der Interpolation und geht von einer Geraden zwischen den Eingangswerten aus. f ( x ) = y1 + ( y 2 − y1 ) ( ∗ x − x1 ) ( x2 − x1 ) (7) Sollen Spalten aus ein und derselben Messreihe dargestellt werden, wird auf die Originalwerte innerhalb der Messreihe zurückgegriffen, und die Interpolation kann entfallen. 4.3.11 Speicherung/Archivierung Um die Speicherung der Prüfdateien umzusetzen, wurde auf die von Java bereitgestellte GZIP-Funktionalität zurückgegriffen. Damit kein Dateiname doppelt vergeben werden kann, wurde ein eindeutiger Name für die gespeicherte Prüfdatei erzeugt. Der Name wird nach folgendem Schema gewählt: Beispieldateiname : v348mr430testCR60.gz 60 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Implementierung Abbildung 4-10 Namenszusammensetzung der gespeicherten Prüfdatei Innerhalb des gepackten Archivs liegt die originale modifizierte Prüfdatei in Textform vor und kann nach dem Wiederherstellen des Archivs mit einem herkömmlichen Texteditor gelesen werden. Die Prüfdateien können dadurch nach ihrer Speicherung weiterhin von Drittanwendungen gelesen werden. Sie sind somit nicht mehr abhängig von der Anwendung mit der sie gespeichert wurden, wie es bei der vorhandenen VisualBasic-Applikation der Fall ist. Selbst bei Verlust der Datenbank wäre man in der Lage, anhand der Dateinamen zu rekonstruieren, welche Messreihen einem Versuch zugeordnet waren. Da die Prüfdateien in Originalform gespeichert sind und die versuchsbeschreibenden Daten teilweise innerhalb dieser Dateien enthalten sind, hat man durch diese Art der Speicherung neben der Datenbank eine zusätzliche Sicherung gegen Datenverlust. 61 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Zusammenfassung 5 Zusammenfassung Mit der vorliegenden Arbeit ist der Versuch unternommen worden, eine Lösung zu erarbeiten, die es ermöglicht die verschiedenenartigen Versuchsdurchführungen zu verwalten und zu archivieren sowie die anfallenden Prüfdaten zu visualisieren. Insbesondere die Visualisierung der Prüfdaten ist ein erheblicher Bestandteil bei der Auswertung der Versuche und unerlässlich für die zuverlässige Analyse der Probekörper. In diesem Zusammenhang wurden mehrere Teilbereiche bearbeitet. Das Format der vom Prüfstand erzeugten Prüfdatei wurde optimiert, um ein automatisiertes Verarbeiten der Daten zu ermöglichen. Innerhalb der Prüfdateien wurde jede den Versuch beschreibende Information durch neu eingeführte Schlüsselwörter eindeutig gekennzeichnet. Durch das Hinzufügen dieser zusätzlichen Informationsebene entstand eine neue Struktur der Prüfdatei. Dadurch ist eine wesentlich effizientere Weiterverarbeitung z.B. durch Computerprogramme möglich. Der Entwurf der Versuchsdatenbank für die Verwaltung und Archivierung der Versuche wurde mit dem DBMS MS-Access implementiert. Das vorgestellte Konzept der Datenbank ist jedoch mit jedem relationalen DBMS umsetzbar. Mit der entstandenen Versuchsdatenbank können alle Parameter der verschiedenen Versuchstypen aufzunehmen und abzuspeichern. Die Prüfdateien der Versuche sind nicht innerhalb der Datenbank abgelegt. Sie werden außerhalb der Datenbank mittels GZIP komprimiert und abgespeichert. In der Datenbank wird nur der Verweis zu den Prüfdateien abgelegt. Durch diese Art der Archivierung bleibt die originale Prüfdatei erhalten und kann bei Bedarf von Drittanwendungen gelesen werden. Eine Client-Software zur Bedienung der Datenbank wurde mittels Java umgesetzt. Sie stellt dem Nutzer eine grafische Oberfläche für die Bedienung der Datenbank sowie zur Visualisierung der Prüfdaten zur Verfügung. Sie ist in der Lage, die modifizierten Prüfdateien einzulesen und in der Datenbank abzuspeichern. Ferner wurden Funktionalitäten implementiert, die es ermöglichen die Prüfdaten zu visualisieren. Dazu wird dem Nutzer eine Gesamtansicht sowie eine Bereichsansicht des aus den Prüfdaten resultierenden Kurvenverlaufes zur Verfügung gestellt. 62 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Zusammenfassung Trotz der Effizienz der entwickelten Java-Applikation bleibt kritisch anzumerken, dass zur Erhöhung der Komfortabilität für den Nutzer weitere Funktionalitäten ergänzt werden könnten, so z.B. durch ein komplexes Formular für die Suche innerhalb der Datenbank. Die Datenbank und die optimierten Prüfdateien bilden die Grundlage für die Entwicklung von Client-Anwendungen. Bei Kenntnis der Struktur der Datenbank sowie der Bedeutung der Schlüsselwörter können ohne Schwierigkeiten weitere Programme zur Bedienung der Datenbank und zum Auswerten der Prüfdateien entwickelt werden, d.h. das Lösungskonzept ist nicht zwingend an die Programmiersprache Java gebunden. 63 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Bedienungsanleitung 6 Bedienungsanleitung 6.1 Installation 6.1.1 Systemvoraussetzungen Zum Ausführen der Viewer-Tool-2.0 Applikation wird eine Installation des JavaRuntime-Environment 5.0 oder höher für Windows vorausgesetzt. Dieses steht kostenlos unter http://java.sun.com zum Download bereit. Weiterhin ist ein installierter ODBCAccess-Treiber erforderlich, der für den Zugriff auf die Versuchsdatenbank benötigt wird. Dieser ist auf Windowssystemen Bestandteil des Betriebssystems. Eine Anzeige der installierten ODBC-Treiber unter Windows XP kann mit dem ODBCDatenquellenadministrator vorgenommen werden: Start > Systemsteuerung > Verwaltung > Datenquellen (ODBC). Mit einem Klick auf die Registerkarte Treiber, bekommt man eine Liste der im System installierten ODBC-Treiber angezeigt. Wenn kein geeigneter Treiber installiert sein sollte, kann man das aktuelle MDAC-Paket (Microsoft Data Access Components) herunterladen und installieren. Die MDAC-Pakete sind kostenlos und können von der Microsoft-Internetseite unter http://msdn.microsoft.com/data/mdac/downloads/ bezogen werden. Sie enthalten die aktuellsten ODBC-Treiber von Microsoft. 6.1.2 Installation Das Viewer-Tool-2.0 ist auf der Beigelegten CD im Ordner Installation zu finden. Es wird durch das Ausführen der Datei viewer_windows_2_0.exe auf dem Computer installiert. Ebenfalls befindet sich die Versuchsdatenbank (versuch.mdb) im Ordner Datenbank auf der Begleit-CD ROM. Die Versuchsdatenbank muss inklusiver des Ordners \Daten an eine beliebige Stelle des lokalen Rechners oder auf ein Netzlaufwerk kopiert werden. 64 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Bedienungsanleitung 6.2 Bedienung 6.2.1 Konfigurieren der Datenbankverbindung Beim ersten Start des Programms ist es notwendig die Datenbankverbindung zu konfigurieren. Die nötigen Einstellungen nimmt man im Dialog Verbindungseinstellungen vor. Diesen erreicht man nach dem Start des Programms, über das Datei-Menü, unter dem Menüeintrag Einstellungen oder über die Toolbar. Abbildung 6-1 Verbindungseinstellungsdialog Der sich öffnende Dialog zeigt im Abschnitt „Java Datenbank Treiber“ den momentan verwendeten Treiber in Form des vollständigen Klassenpfads an. In dieser Arbeit ist es der von Sun bereitgestellte JDBC-ODBC-Brücken-Treiber, der für den Zugriff auf Accessdatenbanken genutzt wird. In der Datenbank URL wird der Pfad zur Datenbank gespeichert, den man mit dem Button Datenbank auswählen einstellen kann. Weiterhin sind ein Benutzername und das Passwort für den Zugriff auf die Datenbank anzugeben. 6.2.2 Einpflegen von Daten Ist die Datenbankverbindung korrekt installiert, kann man unter dem Menüpunkt Daten einpflegen, die Tabellen der Versuchsdatenbank mit Daten füllen. Dazu stehen drei Menüpunkte zur Verfügung, welche die jeweiligen Eingabemasken für die 65 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Bedienungsanleitung Dateneingabe aufrufen. Bei der Prüfereingabe öffnet sich der in Abbildung 6-2 gezeigte Dialog. Abbildung 6-2 Dialog zur Eingabe von Prüfern Auf der linken Seite wird in Form einer Tabelle ein Gesamtüberblick über die Einträge der Tabelle PRUEFER gegeben. Auf der rechten Seite sind die Detailangaben des jeweiligen selektierten Eintrags zu sehen. Weiterhin sind im unteren Teil Funktionselemente zum Hinzufügen, Löschen und Ändern von Daten untergebracht. Unter der Gesamtansicht befindet sich ein Suchfeld, das als Filter für die Tabelle fungiert. In Abbildung 6-2 werden innerhalb der Gesamtansicht nur Prüfer deren Name mit dem Buchstaben “K“ beginnt angezeigt. So kann man diesen Filter weiter verfeinern, oder das Feld leer lassen, was eine Anzeige von allen Datensätzen zur Folge hat. Die Eingabemasken zur Aufnahme von Probekörpern sowie deren Hersteller sind auf dieselbe Art und Weise aufgebaut. 6.2.3 Einlesen einer Prüfdatei Zum Einpflegen eines Versuches steht unter dem Menü Daten einpflegen der Menüeintrag Versuch zur Verfügung. Mit Hilfe dieses Dialoges kann eine Hauptprüfdatei ausgewählt und importiert werden. Als Hauptprüfdatei wird die jeweils erste eingelesene Prüfdatei bezeichnet. Aus dieser Datei werden die den Versuch beschreibenden Daten eingelesen. Sind die Daten eingelesen, so hat der Nutzer die 66 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Bedienungsanleitung Möglichkeit Änderungen sowie Ergänzungen an den eingelesenen Daten vorzunehmen. Ebenso besteht die Möglichkeit, weitere Prüfdateien dem Versuch zuzuordnen. Abbildung 6-3 Dialog zum Einpflegen von Versuchen Mit den Schaltflächen Ok oder übernehmen werden die Versuchsdaten in die Datenbank geschrieben und die Prüfdateien außerhalb der Datenbank im Ordner /Daten komprimiert und gespeichert. 6.2.4 Grafische Darstellung Zur grafischen Anzeige der Prüfdaten sind zwei Koordinatensysteme innerhalb des Hauptfensters angeordnet worden. Im oberen System wird die Gesamtansicht der Kurve zur Verfügung gestellt und im unteren ein Teilbereich der Kurve, der beliebig ausgewählt werden kann. Zuvor muss man über das Menü Grafische Darstellung und den Menüeintrag Versuch auswählen einen Versuch zur grafischen Darstellung auswählen. Nach dem Einlesen der Prüfdaten des Versuches öffnet sich ein 67 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Bedienungsanleitung Konfigurationsfenster mit dessen Hilfe der Anwender in der Lage ist, die Art und Weise der Darstellung anzupassen. Abbildung 6-4 Grafische Nutzeroberfläche für die Visualisierung Das Fenster zur Konfiguration der grafischen Anzeige gliedert sich in drei Bereiche. Im oberen Teilbereich werden Angaben zu dem Versuch angezeigt, um dem Anwender einen Überblick zu verschaffen um welchen Versuch es sich handelt. Im mittleren Bereich wird die Darstellung der Gesamtkurve eingestellt. Man kann die Koordinatenachsen mit beliebigen Wertereihen belegen sowie die Genauigkeit der angezeigten Kurve beeinflussen. Dazu wird mit dem Schieberegler Genauigkeit der Wert der Abweichung bestimmt. Bei einem Wert von null werden alle Punkte der Kurve gezeichnet. Je größer der Wert eingestellt wird umso ungenauer wird der Kurvenverlauf, da die Kurve aus immer weniger Punkten besteht. (Der angezeigte Wert ist der Toleranzwert des Abstandes in Einheiten) Der Wert Bei sehr großen Messreihen kann so die Geschwindigkeit der Darstellung angepasst werden. Mit dem aktivieren der Checkbox kann man sich innerhalb des oberen Koordinatensystems die Angaben zum Versuch einblenden lassen. 68 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Bedienungsanleitung Der untere Bereich des Konfigurationsfensters ist zum Einstellen des Teilbereiches der Kurve vorgesehen. Hier ist man ebenfalls in der Lage die Koordinatenachsen beliebig zu belegen. Des Weiteren kann man einen Zeitbereichbereich angeben, für den der genaue Kurvenverlauf angezeigt wird. Wenn der gewünschte Zeitbereich eingestellt ist, kann man mit dem Schiebregler die gesamte Kurve abfahren. Wird ein neuer Bereich eingestellt aktualisiert sich der Schieberegler automatisch und springt an die Anfangsposition des angegebenen Bereiches. Weiterhin kann im unteren Koordinatensystem zusätzlich die Punktdarstellung der Kurve aktiviert werden. Ist die Punktdarstellung aktiv können durch Anklicken der einzelnen Punkte die Wertepaare dieser abgefragt werden. 6.2.5 Drucken und Speichern Nachdem das Viewer-Tool-2.0 an die Bedürfnisse des Nutzers angepasst ist, besteht die Möglichkeit den Bildschirminhalt auszudrucken oder als Grafikdatei abzuspeichern. Dazu stehen im Menü Datei die Menüeinträge Grafik speichern und drucken zur Verfügung. Das Viewer-Tool-2.0 kann die Datei als JPEG, BMP oder im PNG Format speichern. Beim Drucken wird die Größe des Hauptfensters automatisch auf den bedruckbaren Bereich skaliert. 6.2.6 Layout der Anwendung Es steht das Windows, Motif - und Metal Look&Feel zur Verfügung. Das Viewer-Tool startet standardmäßig mit dem System - Look&Feel und passt sich damit dem aktuellen Profil der Umgebung an. Das Look&Feel kann zur Laufzeit des Programms umgeschaltet werden. Diese Eigenschaft des Programms ermöglicht es dem Nutzer sich in seiner gewohnten Systemumgebung zu bewegen. Dazu steht im Menü Datei, unter dem Menüeintrag Einstellungen der Menüpunkt L&F zur Verfügung. 69 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Abbildungsverzeichnis Abbildungsverzeichnis Abbildung 2-1 links: Prüfstand an der Professur Verkehrsbau; rechts Probekörper........ 7 Abbildung 2-2 Skizze zur Versuchsdurchführung............................................................ 8 Abbildung 2-3 Prüfdatei eines Druckversuches ............................................................... 9 Abbildung 2-4 Drucksteuerdatei für einen Druckversuch................................................ 9 Abbildung 3-1 Modifizierte Drucksteuerdatei................................................................ 17 Abbildung 3-2 Neue Prüfdatei........................................................................................ 18 Abbildung 3-3 Modellierungssyntax des ER-Modells ................................................... 19 Abbildung 3-4 Modellentwurf der Versuchsdatenbank.................................................. 21 Abbildung 3-5 ODBC Treiberstruktur............................................................................ 25 Abbildung 3-6 Kurvencharakteristik .............................................................................. 27 Abbildung 3-7 Kurvencharakteristik 1 ........................................................................... 28 Abbildung 3-8 Anstiegsdifferenz; links P2 wird gezeichnet; rechts P2 wird nicht gezeichnet ....................................................................................................................... 29 Abbildung 3-9 Punktreduzierung mittels Anstiegsverfahren ......................................... 30 Abbildung 3-10 Pfeilhöhenverfahren allgemein............................................................. 32 Abbildung 3-11 Pfeilhöhenverfahren Beispiel ............................................................... 33 Abbildung 3-12 Original Kurve besteht aus 40000 Punkte........................................... 34 Abbildung 3-13 Kurve mit Toleranz 1.0 besteht aus 429 Punkten................................. 35 Abbildung 3-14 Kurve mit Toleranz 3.0 besteht aus 141 Punkten................................. 35 Abbildung 4-1 Datenbankschema nach ER Modell ....................................................... 42 Abbildung 4-2 Beziehung1:n.......................................................................................... 43 Abbildung 4-3 Aufgabengebiete der Applikation .......................................................... 44 Abbildung 4-4 Struktur des Viewer Tools...................................................................... 45 Abbildung 4-5 Datenbankzugriff mittels JDBC-ODBC- bzw. JDBC-Oracle-Treiber... 48 70 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Abbildungsverzeichnis Abbildung 4-6 URL-Verbindungsstring........................................................................ 50 Abbildung 4-7 Datenbankeingabeformular .................................................................... 53 Abbildung 4-8 Komponentenanordnung im Hauptfenster der Applikation ................... 55 Abbildung 4-9 Datenmodell der Messreihen nach Import ............................................. 59 Abbildung 4-10 Namenszusammensetzung der gespeicherten Prüfdatei....................... 61 Abbildung 6-1 Verbindungseinstellungsdialog .............................................................. 65 Abbildung 6-2 Dialog zur Eingabe von Prüfern............................................................. 66 Abbildung 6-3 Dialog zum Einpflegen von Versuchen.................................................. 67 Abbildung 6-4 Grafische Nutzeroberfläche für die Visualisierung................................ 68 71 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Codelisting Codelisting Codelisting 1 Laden des JBDC-ODBC-Brücken-Treibers............................................. 49 Codelisting 2 Verbindungsaufbau mittels DriverManager............................................. 50 Codelisting 3 Übersicht über die Schritte des Datenbankzugriffs .................................. 51 72 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Tabellenverzeichnis Tabellenverzeichnis Tabelle 1 Übersicht über die eingeführten Schlüsselwörter ........................................... 16 Tabelle 2 Lesen der Relationen ...................................................................................... 22 Tabelle 3 Mögliches Aussehen von Messreihen............................................................. 37 Tabelle 4 Auswahl von Datenbanktreibern .................................................................... 47 73 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Literaturverzeichnis Literaturverzeichnis [1] RIEDEL, THOMAS “Datenbank zur Verwaltung von Versuchsdaten” Studienarbeit; Lehrstuhl Informatik im Bauwesen; Professur Verkehrsbau; Bauhaus-Universität Weimar 2004 [2] RIEDEL, THOMAS “Implementierung einer graphischen Nutzeroberfläche zur Auswertung und Bearbeitung von Versuchsdaten“ Studienarbeit; Lehrstuhl Informatik im Bauwesen; Bauhaus-Universität Weimar 2004 [3] LOBERS, STEFAN “Implementierung eines Programms charakteristischen Kenngrößen“ in Java zur Ermittlung von Studienarbeit; Lehrstuhl Informatik im Bauwesen; Baushaus-Universität Weimar 2003 [4] GREORGI, SVEN “Druckstauchungsverhalten bewehrter Elastomerlager“ Diplomarbeit; Professur Verkehrsbau; Bauhaus-Universität Weimar 2005 [5] S. HORSTMANN / GRAY CORNELL “core JAVA 1 – Grundlagen” ; 1999; Markt&Technik; ISBN 3-8272-9565-3 “core JAVA 2 – Expertenwissen”; 2000; Markt&Technik; ISBN 3-8272-9566-1 [6] ULLENBOOMS, CHRISTIAN: * "Java ist auch eine Insel" ; Galileo Press; ISBN 3-89842-304-2 http://www.galileocomputing.de/openbook/javainsel4/ 74 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten [7] Literaturverzeichnis WIKIPEDIA; Die freie Enzyklopädie http://de.wikipedia.org [8] P.S. CHEN “The Entity-Relationship Model - Toward a Unified View of Data Transactions on Database Systems” Volume 1, No 1. 1976 75 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Anhang Anhang • Begleit CD - dieses Document im Adobe-Acrobat-Reader Format (.pdf) - die Versuchsdatenbank im MS-Access Format versuch.mdb - der Java Quellcode des Viewer-Tool-2.0 - kompilierte class-Dateien des Viewer-Tool-2.0 - Setup-Programm für Windows 32 Plattformen (ermöglicht eine Programmgeführte Installation des Viewer-Tools-2.0) - Setupprogramm für das Java-Runtime-Environment Version 1_5_0_0_6 (wird zum Ausführen von Java Programmen unter Windows benötigt) 76 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Selbständigkeitserklärung Selbständigkeitserklärung Ich erkläre, dass ich die vorliegende Arbeit selbständig und nur unter Verwendung der angegebenen Quellen und Hilfsmittel angefertigt habe. Weimar, den 23. Dezember 2005 77 Implementierung einer Applikation zur Verwaltung und Auswertung von Prüfdaten Thesen Thesen 1. Die Speicherung der Prüfdaten in einem allgemeinen Textformat gewährleistet auch nach Jahren noch die Lesbarkeit der archivierten Daten. 2. Die Kennzeichnung der Informationen innerhalb der Prüfdateien ermöglicht das automatisierte Erfassen des Inhaltes. 3. Bei der Vielzahl an verschiedenen Versuchen ist eine rechnergestützte Verwaltung in Form einer Datenbank sinnvoll und komfortabel. 4. Die von MS-Access unterstützte ODBC-Treiber-Schnittstelle ist offen gelegt. Damit ist ein stabiler Standard für den Zugriff auf die Versuchsdatenbank sichergestellt. 5. Java bietet mit JDBC eine API zum einfachen Zugriff auf Datenbanken. Durch den standardmäßig mitgelieferten JDBC-ODBC-Brücken-Treiber werden keine weiteren eventuell kostenpflichtigen Komponenten für den Zugriff auf MS-Access Datenbanken benötigt. 6. Die Visualisierung der Prüfdaten ist für eine effektive Analyse der Probekörper sehr wichtig. 7. Die Gesamtübersicht über eine aus den Prüfdaten erzeugten Kurve ist für die Auswertung ebenso von Bedeutung wie die Darstellung eines Kurvenbereiches. 78