Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Rahmen der Arbeit: - 50-60 Seiten Deutsch Zitieren nach APA Interface für output plugin Sprachen aus sesamutil.propertymanager editorpane getAditionalColumninformation ist für nur neu zugekommene Spalten (nicht vererbte) Hilfsmittel für Datenbankabfrage - JDBC TODO ExportPlugin o ColumnInformation benutzen, um SPSS Export mit Metadaten anzureichern o SPS-File mit SPSS testen und gegebenenfalls anpassen Stefan Schurgast I Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Zusammenfassung Deutscher abstract S. 2 / 39 Stefan Schurgast II Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Abstract English abstract S. 3 / 39 Stefan Schurgast III Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Anmerkung Diese Bachelorarbeit wurde durch die Database Technology Research Group des Instituts für Informatik der Universität Zürich unterstützt. Sämtliche in dieser Arbeit ausgedrückten Meinungen, Ergebnisse und Schlussfolgerungen sind diejenigen des Autors und entsprechen nicht notwendigerweise der Sichtweise der vorher genannten Parteien. An dieser Stelle möchte ich mich insbesondere bei Boris Glavic herzlich für die gute Unterstützung während der gesamten Ausarbeitung dieser Bachelorarbeit bedanken. S. 4 / 39 Stefan Schurgast IV Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Inhaltsverzeichnis I Zusammenfassung ........................................................................................................................... 2 II Abstract............................................................................................................................................ 3 III Anmerkung ...................................................................................................................................... 4 IV Inhaltsverzeichnis ............................................................................................................................ 5 V Abbildungsverzeichnis ..................................................................................................................... 7 VI Tabellenverzeichnis ......................................................................................................................... 7 VII Abkürzungsverzeichnis .................................................................................................................... 8 1 2 Einleitung ......................................................................................................................................... 9 1.1 Ausgangslage und Problemstellung ........................................................................................ 9 1.2 Zielsetzung und Vorgehensweise ............................................................................................ 9 1.3 Aufbau der Arbeit .................................................................................................................. 10 Das sesam Projekt.......................................................................................................................... 11 2.1 Einführung in das sesam Projekt ................................................................................................. 11 2.2 Teilprojekt N: sesamDB ......................................................................................................... 12 2.3 Datenmanagement in Langzeitstudien ................................................................................. 13 2.4 Datenbankmanagementsystem PostgreSQL ......................................................................... 15 2.4.1 Typhierarchien und Vererbung ..................................................................................... 15 2.2.1 Trigger und Regeln ........................................................................................................ 16 2.5 3 Verwandte Arbeiten ...................................................................................................................... 17 3.2 Gängige Statistiksoftware und assoziierte Datenformate .................................................... 17 3.2.1 SPSS ............................................................................................................................... 17 3.2.2 SAS ................................................................................................................................. 18 3.3 Datenexport in Statistikprogramme...................................................................................... 20 3.3.1 Exportanwendungen für allgemeine Datenbanken ...................................................... 20 3.3.2 Exportanwendungen in Statistikformate ...................................................................... 20 3.4 4 Sesam Datenbank .................................................................................................................. 16 Repräsentation von Abfragen für den Benutzer ................................................................... 20 3.4.1 Repräsentation in Skriptform ........................................................................................ 20 3.4.2 Grafische Repräsentation .............................................................................................. 22 3.5 Anonymität und Pseudonymität ........................................................................................... 22 3.6 Aufbau von modellbasierten Anwendungen ........................................................................ 24 Analyse der Anforderungen an Sesam Export Manager ............................................................... 25 S. 5 / 39 Stefan Schurgast 4.2 Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Anforderungen an Funktionalität der Anwendung ............Fehler! Textmarke nicht definiert. Exportanwendungen für sesamDB // Titel gleicher Aufbau wie 2.3.1 ....... Fehler! Textmarke nicht definiert. Anforderung an statistikformatexportanwendung ....................Fehler! Textmarke nicht definiert. 4.3 5 Anforderungen an Bedienbarkeit der Anwendung ................................................................. 1 Entwurf und Umsetzung des Sesam Export Managers ................................................................. 29 5.2 5.2.1 konzeptioneller Aufbau ................................................................................................. 29 5.2.2 verwendete Hilfsmittel .................................................................................................. 34 5.2.3 Tests............................................................................................................................... 34 5.3 6 Aufbau der Anwendung ........................................................................................................ 29 Vorgehen bei Entwicklung ..................................................................................................... 34 5.3.1 Hilfsmittel ...................................................................................................................... 34 5.3.2 Aufgetretene Probleme und Lösungen ......................................................................... 34 Evaluation der entwickelten Lösung.............................................................................................. 35 6.2 Erfüllung der Anforderungen an Funktionalität .................................................................... 35 6.3 Validierung der Funktionalität............................................................................................... 35 6.4 Erfüllung der Anforderungen an Bedienbarkeit .................................................................... 35 7 Zusammenfassung und Ausblick ................................................................................................... 36 VIII Anhang ........................................................................................................................................... 37 i IX sesam Datenbankschema .......................................................................................................... 37 Literaturverzeichnis ....................................................................................................................... 38 S. 6 / 39 Stefan Schurgast V Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Abbildungsverzeichnis Abbildung 1: Screenshot von SPSS (Variable View und Syntax) ............................................................ 17 Abbildung 2: SPSS Syntax Datei mit Metadaten.................................................................................... 18 Abbildung 3: SPSS Syntax Datei mit Metadaten und Verweis auf externe Datei.................................. 18 Abbildung 4: Screenshot von SAS (Clusteranalyse) ............................................................................... 19 Abbildung 5: SAS Data File mit Metadaten ........................................................................................... 19 Abbildung 6: SAS Data File mit Metadaten und Verweis auf externe Datei ......................................... 20 Abbildung 7: Klauseln einer Abfrage in SQL .......................................................................................... 20 Abbildung 8: Beispiel einer Abfrage in T-SQL ........................................................................................ 21 Abbildung 9: Screenshot aus Microsoft Access (grafische Repräsentation einer Abfrage) .................. 22 Abbildung 10: Design Pattern Model View Controller (MVC) ............................................................... 24 VI Tabellenverzeichnis Es konnten keine Einträge für ein Abbildungsverzeichnis gefunden werden. S. 7 / 39 Stefan Schurgast VII Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Abkürzungsverzeichnis ORDBMS objektrelationales Datenbanksystem sesam Swiss Etiological Study of Adjustment and Mental Health MVC Model-View-Controller NFS S. 8 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen 1 Einleitung 3-4 Seiten 1.1 Ausgangslage und Problemstellung es gibt problem, dass viele statistiker keine informatiker sind. Aber sie wollen daten aus datenbank holen um weiterverwenden. Keine vernünftige datenbankanbindung für spss (d.h. nicht für diesen zweck). Viele randbedingungen beachten, die jedoch sonst bei export nicht beachtet werden vor allem aber psychologen Sesam: Swiss ethiological study of adjustment and mental health, Kurz erwähnen, in einleitung kurze einführung in sesam. Interdisziplinäre Langzeitstudie zur Ätiologie von psychischen Krankheiten Sesamdb: Beschäftigt sich mit Entwicklung einer Datenbank (sesamDB) und implementierung von Client-Anwendungen für sesam-Projekt. Datenbank verwaltet wissenschaftliche und administrative Daten von Sesam Daten werden in Statistiksoftware zur Analyse benötigt Problem: Benutzer jedoch keine Informatiker, also auch keine Kenntnisse über SQL, DB-Layout, etc. 1.2 Zielsetzung und Vorgehensweise Aufgabe: export plus exportlogik mit oberfläche, mit der benutzer auf einfache art und weise gewünschte exporte zusammenstellen und in gewünschten formaten in versch. Statisitkprogramme exportieren. Wer verwendet: Genetika, psychologen, … (alle benutzen andere programme, machen andere berechnungen) Benötigen andere sichten auf die daten Benötigt: Software für Export der Daten in bestimten Datenformaten, die von Statistikprogrammen unterstützt sind Anwendung für technisch nicht versierte Benutzer ohne SQL-Kenntnisse Konstruktion der Anfragen auf leicht verständliche Weise über grafische Benutzeroberfläche S. 9 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Zum Datenschutz Pseudonymisierung Bisher alles in Java, deshalb auch hier sinnvoll, natürlich auch standardvorteile von java: plattformunabhängigkeit, Verbreitung, und noch ein paar gründe Ziel: Funktionstüchtige Exportanwendung Getestet an beispielhafter Ausprägung der Datenbank (hierfür evtl. Generierung von Testdaten) Dokumentation der Anwendung (gemäss JavaStyleguide V3.0 (Berner, et al., 2002)) Installations- und Konfigurationsanleitungen, um alle erstellten Softwarekomponenten zuverlässig und leicht in Betrieb nehmen zu können 1.3 Aufbau der Arbeit Fundament mit Prozess aufgesetzt (für Kapitel 2 als Fundament und 3,4,5 als Prozess) S. 10 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen 2 Das sesam Projekt Als Grundlage für die folgenden Kapitel wird an dieser Stelle das sesam Projekt vorgestellt. Dabei wird zuerst im Kapitel 2.1 auf die Kernstudie eingegangen. Anschliessend folgt in Kapitel 2.2 eine Einführung ins Teilprojekt N, das Projekt sesamDB, zu welchem auch vorliegende Arbeit und die erstellte Exportanwendung für Statistikdaten, sesam Export Manager, angehört. Kapitel 2.3 zeigt auf, aus welchen Gründen man sich für die Haltung der Studiendaten für eine Datenbanklösung entschieden hat. In Kapitel 2.4 wird dargestellt, mit welcher Technologie die Datenbank realisiert wurde und Kapitel 2.5 beschreibt, wie die Datenbank im sesam Projekt konkret aufgebaut wurde. 2.1 Einführung in das sesam Projekt Einer Studie der WHO zur Folge sind in den Industriestaaten psychische Erkrankungen, insbesondere Depressionen, zurzeit die viert häufigste Ursache von schwerwiegenden gesundheitlichen Beeinträchtigungen oder sogar vorzeitiger Sterblichkeit. Die Tendenz zu Depressionserkrankungen ist jedoch stark steigend, warum man bereits für das Jahr 2020 damit rechnet, dass Depressionen Verkehrsunfälle als zweit häufigste Ursache verlorener Lebensjahre durch schwerer gesundheitlicher Beeinträchtigung oder vorzeitiger Sterblichkeit ablösen werden (Murray & Lopez, 1997). Derzeit liegt die durchschnittliche Wahrscheinlichkeit einer psychischen Erkrankung bei rund 40%, die Wahrscheinlichkeit im Laufe des Lebens an einer Depression zu erkranken bei 15% (Gaebel, 2007). Diese Entwicklung ist beängstigend und gibt sesam Anlass, dem entgegenzuwirken. Sesam ist gemäss sesam Schweiz eine interdisziplinäre Langzeitstudie der Universität Basel in Zusammenarbeit mit mehreren Partnerinstitutionen1 und Spitälern in der ganzen Schweiz2. Die Abkürzung steht für „Swiss Etiological Study of Adjustment and Mental Health”, zu Deutsch “Schweizerische ätiologische Studie zur psychischen Gesundheit“. Sie begleitet 3000 Kinder ab der 20. Schwangerschaftswoche zusammen mit ihren Familien (Eltern und Grosseltern) über 20 Jahre bis ins junge Erwachsenenalter. Dabei werden in der Kernstudie psychologische, genetische, umweltbedingte und soziale Faktoren betrachtet (2007). Das Ziel des Projekts ist es, die komplexen Ursachen, die zu einer gesunden psychischen Entwicklung führen, aufzudecken, wie auch Ursachen und Auslöser für psychische Störungen frühzeitig erkennen zu können. Diese gewonnenen Erkenntnisse sollen dabei helfen, wirksame Prävention sowie Behandlung und Bewältigungsstrategien bei psychischen Krankheiten und Lebenskrisen zu entwickeln (2007). 1 Zu den Partnerinstitutionen zählen: Universität Zürich, Universität Düsseldorf (D), University of Warwick (GB), Nationaler Forschungsschwerpunkt 2 Partnerspitäler sind: Frauenklinik Universitätsspital Basel, Frauenklinik Universitätsspital Zürich, Frauenklinik Inselspital Bern, Maternité Hôpitaux Universitaires Genève, Maternité CHUV Lausanne S. 11 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Zusätzlich zur Kernstudie (A) besteht sesam aus einer Reihe von weiteren Teilstudien, insgesamt 13 an der Zahl (sesam Schweiz, 2007): Teilstudie B: Risiko Reduktion Teilstudie C: Befinden in der Schwangerschaft Teilstudie D: Bedeutung der Grosseltern Teilstudie E: Schwangerschaft und psychische Störungen Teilstudie F: Neurotizismus Teilstudie G: Genetik Teilstudie H: Modell elterlicher Vernachlässigung bei nicht-menschlichen Primaten Teilstudie I: Blinzelreaktion Teilstudie J: Autobiographie Teilstudie K: Soziale Determinanten Teilstudie L: Familienprozesse Teilstudie M: Autonomes Nervensystem Teilstudie N: Entwicklung einer Datenbank (siehe sesamDB) Unterstützt wird das sesam Projekt durch den Nationalen Forschungsschwerpunkt (NFS), einem Förderungsinstrument des Schweizerischen Nationalfonds (SFN) (Schweizerischer Nationalfonds, 2005). 2.2 Teilprojekt N: sesamDB Sesam als interdisziplinäre Langzeitstudie über einen Zeitraum von 20 Jahren erzeugt eine grosse Menge an Daten, darunter Fragebögen, biologische Analysen, genetische Daten, Multimediainhalte und Sequenzdaten, die über den Zeitraum der Studie hinaus in ihrer Form wie auch in ihrer Semantik erhalten bleiben soll (Glavic & Dittrich, 2006, S. 2). Persönliche Daten über die Studienteilnehmer unterliegen ausserdem dem Datenschutz und müssen deshalb vor Datenverlust und unberechtigtem Zugriff geschützt werden. Um einem Verlust der Datenqualität durch uneinheitliche Speicherung, aber auch Sicherheitsmängel vorzubeugen, ist ein einheitliches Datenmanagement erforderlich. Ausserdem sollen für alle Formen des Datenzugriffs Client-Anwendungen erstellt werden, die so den komplexen und damit zeitaufwendigen Zugriff auf die Daten vereinfacht. Das Ziel von sesamDB ist der Entwurf und die Implementierung einer Datenbank inklusive der dazugehörigen Anwendersoftware, um die durch die Studie gesammelten wie auch administrativen Daten optimal zu verwalten und später auswerten zu können. Ausserdem sollen die eigens für sesam entwickelten Anwendungen helfen, die Abläufe während der Studie zu vereinfachen oder gar zu ganz zu automatisieren. Der Schutz der Daten wird durch ein Sicherheitskonzept sichergestellt. Der Nutzen des Teilprojekts sesamDB ist also eine starke administrative Vereinfachung der Datenhaltung sowie eine bedeutende Verbesserung der Datenqualität und Sicherheit für das Gesamtprojekt. S. 12 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen 2.3 Datenmanagement in Langzeitstudien In Langzeitstudien wird dem Datenmanagement trotz der grossen Menge anfallender Daten häufig nur ungenügend Beachtung geschenkt (Quelle hierfür suchen). Oft werden nur Personendaten in Datenbanken abgelegt, die übrigen Daten werden direkt in den betreffenden Statistikprogrammen wie beispielsweisse SPSS zur Auswertung gespeichert (auch hier Quelle nötig). Das führt dazu, dass bei dieser Art von Datenmanagement auf allen Ebenen die erwünschten ACID-Eigenschaften nicht eingehalten werden können (nochmal eine Quelle): Atomarität Eine atomare Operation ist eine Operation, die entweder ganz oder gar nicht ausgeführt wird. Datenbankmanagementsysteme verhalten sich so, als ob eine elementare Operation ausgeführt würde, die nicht durch andere Operationen unterbrochen werden könnte. Dies ist wichtig, da zur korrekten Darstellung eines Sachverhalts müssen die Daten vollständig vorhanden sein. Eine manuelle Eingabe in einem Statistikprogramm ermöglicht im Normalfall keine atomare Operation, da die auszuführenden Operationen oft nicht elementar sind. Konsistenz Nach Durchführung der Transaktion müssen wieder die inhärenten und explizit definierten Integritätsbedingungen gelten, die auch schon vor der Durchführung der Transaktion galten. Dies gilt insbesondere für Schlüssel- und Fremdschlüsselbedingungen. Durch eine Sicherung von Daten in verschiedenen Systemen findet keine Konsistenzprüfung statt. Die Daten müssen für übergreifende Auswertungen mühsam zusammengeführt werden. Insbesondere die Pflege von Stammdaten kann zum Problempunkt solcher verteilten, unorganisierten Datensysteme werden. Isolation Das Prinzip der Isolation bedeutet die Trennung von Transaktionen, sodass laufende Transaktionen sich nicht gegenseitig beeinflussen. Werden zur Sicherung der gewonnenen Daten unterschiedliche Systeme ohne oder mit nur eingeschränkter Mehrbenutzerfunktonalität verwendet, so kann auch die Isolation einer Transaktion nicht garantiert werden. SPSS beispielsweise unterstützt zwar wenige Mehrbenutzerfunktionalitäten, jedoch sind diese längst nicht so ausgeprägt, wie man sich dies von Datenbanksystemen gewohnt ist. Es fehlen: …. Kommentar [SS1]: Was fehlt SPSS an Mehrbenutzerfunktionalität? Dauerhaftigkeit Eine Transaktion ist dann dauerhaft, wenn nach einer erfolgreich abgeschlossenen Transaktion die S. 13 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Wirkung beständig bleibt. Auch nach Systemabstürzen müssen die Daten zur korrekten Wiedergabe eines Sachverhalts vollständig im System enthalten sein. Unorganisierten Datensystemen fehlen jedoch die dafür nötigen Unterstützungsprozesse. Gängige Datenbanksysteme bieten jedoch solche Funktionalität beispielsweise durch Verwendung eines Pufferpools an. Zusätzlich zu der ACID-Problematik kommen in sesamDB einige Punkte hinzu, die das Datenmanagement erschweren. Grosse Datenmengen: Eine Studie mit einer Laufzeit von 20 Jahren generiert riesige Datenmengen. Dies lässt die Frage aufkommen, wie diese gespeichert werden sollen. Würden alle Daten einfach in einzelne Dateien mit Formaten wie Excel-Arbeitsmappen abgelegt, hätte das zur Folge, dass irgendwann die maximale Grösse einer Datei erreicht wäre (in Excel z.B. die maximale Anzahl Zeilen) oder dass gewisse Formate auf neuen Systemen nicht mehr unterstützt werden. Die Daten müssten also auf mehrere Dateien aufgeteilt werden. Dies würde es stark erschweren, bei der Abfrage und Analyse einen einheitlichen Blick auf die Gesamtheit der Daten zu bekommen. Ausserdem könnten grosse Kommentar [SS2]: Hier anderes Wort dafür suchen, da es nicht eine eigentliche ACID-Problematik gibt, jedoch möchte ich noch zusätzliche Punkte aufführen. Kommentar [SS3]: Quelle für Probleme mit grossen Datenmengen Hier kommt hinzu, dass nicht nur Studiendaten, sondern auch Administrationsdaten, etc. gespeichert werden. Alles am gleichen Ort vereinfacht Datenhaltung, etc. enorm! Hierzu gehört auch Mehrsprachigkeit der Daten. Einzel aufgelistet macht das allerdings höchstens in Anforderungen Sinn. Datenmengen das System vor Performanceprobleme stellen. Durch die Verwendung einer Datenbank können die grossen Datenmengen ohne grosse Schwierigkeiten gemanaged werden. Die Menge der Daten in einer PostgreSQL-Datenbank beispielsweise ist nur begrenzt durch den Speicher, der ihr zur Verfügung steht. Ausserdem löst eine Datenbank wie PostgreSQL das Performanceproblem, indem sie Daten rasch laden kann. Zur Auswertung und Analyse wäre es sinnvoll, nur die benötigten Daten in der benötigten Granularität oder Aggregation auswählen zu können. Dies würde die Handhabung beispielsweise im Statistikprogramm erleichtern und Rechenzeiten kürzen. Langer Zeitraum Werden Daten über einen langen Zeitraum gesammelt und gesichert, müssen sie auch Jahre später noch zur Verfügung stehen. Ändern sich die IT-Systeme und werden die verwendeten Dateiformate dann nicht mehr unterstützt, so kann dies zu einem Problem werden. Werden die Daten durch ein verbreitetes Datenbankmanagementsystem verwaltet, so sollten auch Jahre danach noch Zugriffsmöglichkeiten auf die Daten bestehen. Ist der Systemquellcode offengelegt, so könnte auch hier das Risiko reduziert werden, dass das System irgendwann nicht mehr mit dem Datenbanksystem kompatibel ist. Im Notfall könnten dann Anpassungen am System durchgeführt werden. Auch für die Exportanwendungen könnte der lange Zeitraum zum Problem werden. Erstens wäre es möglich, dass die Exportanwendung irgendwann nicht mehr lauffähig wäre. Diese müsste dann auf ein neues System portiert werden. Oder aber das verwendete Format wäre nicht mehr aktuell. Da dies aufgrund der verschiedenen weiteren Verwendungszwecke eher wahrscheinlich ist, würde eine S. 14 / 39 Kommentar [SS4]: Dieser Satz schlecht geschrieben. Ausserdem fehlt die Quelle. Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Anpassung des Exportskripts ausreichen. Die Verwendung von leicht erneuerbaren Export-Plugins würde sich anbieten. Neben den technischen Herausforderungen zur Speicherung von Daten aus der Langzeitstudie, gibt es auch inhaltliche Schwierigkeiten, die sich während der Entwicklung stellen. So ändern mit Sicherheit auch viele Stammdaten (wie beispielweise der Name des Studienteilnehmers oder die Wohnadresse). Um dies repräsentieren zu können, ist es nötig, Gültigkeitszeiträume von Daten zu definieren. In sesamDB ist dies mittels des temporalen Datenbankansatzes umgesetzt worden (Quelle und Erklärung). Anonymität muss gewährleistet sein Benutzerrechtsbeschränkungen Die oben aufgezählten Anforderungen an das Datenmanagement in einer Langzeitstudie machen deutlich, dass nur ein übergreifendes Konzept unter Verwendung eines Datenbanksystems alle Bedürfnisse erfüllen kann. Andere notizen 2.4 Datenbankmanagementsystem PostgreSQL Bei PostgreSQL handelt es sich nach Angaben der PostgreSQL Global Development Group (2007) um eines der ältesten und am weitesten fortgeschrittenen objektrelationalen Datenbanksysteme (ORDBMS). Es unterstützt neben einer Reihe von eigenen Erweiterungen den SQL92 und den SQL 99 Kommentar [SS5]: Quelle und Erklärung dazu. Evtl. noch genauer darauf eingehen. Kommentar [SS6]: Passt eigentlich nicht in dieses Kapitel, mehr in Anforderungen für Exportanwendung Kommentar [SS7]: Später… Kommentar [SS8]: Jedoch keine statistische Datenbank, da dies etwas völig anderes ist. Relationale Datenbank gefragt. Kommentar [SS9]: Sub-Projekt von SESAM (sesamDB): Verantwortlich für das Design und Implementation der Datenbank sowie der Client-Anwendungen, welche für das Management der administrativen und wissenschaftlichen Daten notwendig ist. Subject data Scientific data such as questionairy, genetic data, biological analysis, aso Daten müssen zu jedem zeitpunkt nachvollziehbar sein: d.h. ein früherer Zeitpunkt der Daten in Datenbank muss auch analysiert werden können (d.h. es braucht gültigkeiten, etc.) Stammdaten ändern über verlauf der zeit (z.b. namen) Evtl. ändern auch eltern-verhältnisse zu hause, etc. Temporal database (database that Abbildung: Gesamtmodell mit Lupe Umgekehrte Pyramide als Abbildung Erst warum sinnvoll, Daten in db zu speichern Keine komplexen zugriffsregelungen: oder keine komplexeren. Man kann ja z.B. bei den von SPSS verwendeten Daten die Rechte festlegen 3) zielt eher auf Transaktionen. Als vorhersagbares Verhalten wenn mehrere Leute gleichzeitig was ändern wollen. Atomare Aktionen. Halt die ganze ACID-Schiene Welche form von datenbank Was wird in sesam verwendet Standard. PostgreSQL ist eine freie Datenbank unter der BSD-Lizenz, womit ihr Quellcode für Erweiterungen oder Verbesserungen offen steht. Sie gilt unter den lizenzkostenfreien Datenbanken als eine der stabilsten und zuverlässigsten überhaupt, ist in ihrer Grösse lediglich durch den zur Verfügung stehenden Speicher beschränkt und bietet eine hohe Transaktionssicherheit an. Im nächsten Unterkapitel 2.4.1 folgt eine Übersicht über die Möglichkeiten zu Typhierarchien und Vererbung, in Kapitel 2.4.2 dann eine Einführung in Triggern und Regeln, wie sie in sesamDB verwendet wurden. 2.4.1 - Typhierarchien und Vererbung Wie funktioniert vererbung in ordbms Typenhierarchien mit beispiel person und employee, kind, mutter, grossvater, mit abbildung Kommentar [SS10]: Die Vorteile von PostgreSQL PostgreSQL bietet gegenüber anderen Datenbanksystemen viele Vorteile für Ihre Firma oder Ihr Geschäft: Schutz vor Over-Deployment Over-deployment, das Benutzen von mehr Datenbank Instanzen als lizensiert wurden, wird von einigen Anbietern kommerzieller Datenbanksysteme als das Hauptproblem bei der Einhaltung der Lizenzbedingungen genannt. Mit PostgreSQL kann Sie niemand deswegen belangen, weil keine Lizenzgebühren für die Software erhoben werden. Dies hat mehrere zusätzliche Vorteile: •Profitablere Geschäftsmodelle in weitgefächerten Einsatzgebieten. •Es gibt keine Möglichkeiten, irgendwann wegen der Einhaltung ... der[1] Kommentar [SS11]: Genauer erklären und Quellen finden Kommentar [SS12]: ergänzen S. 15 / 39 Stefan Schurgast 2.2.1 Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Trigger und Regeln Ausserdem kann in PostgreSQL Gebrauch von Triggern und eigens definierten Regeln gemacht werden. - Triggerbeispiel: bei neueinfügung eines datensatzes wird alter datensatz verschoben in _oldTabelle _all ist = _new UNION _old 2.5 Sesam Datenbank Die sesam-Datenbank (sesamDB) ist eine speziell für das sesam-Projekt zugeschnittene PostgreSQLDatenbank. - - Kommentar [SS13]: Nicht zugeschnitten, es läuft einfach auf PostgreSQL Layout (Schema) -> siehe Anhang PostgreSQL (vererbung, deshalb schwieriger, warum was wie gelöst.) nur so viel wie für verständnis notwenig Keine statistische Datenbank (probability database): Statistische datenbanken. Vom pronzip her andes, da daten eine gewisse wahrscheinlichkeit haben, wahr zu sein. Aber das passt nich zu unserem thema. Da wir von anfang an noch keine wahrscheinlichkeit haben für die daten. Das gibt’s schon, aber es ist was anderes…. Deshalb ausschliessen (probailtiy datenbanken). Keine wahrscheinlichkeit sondern nur menge von fällen und statisiche auswertungen drau Datenbankinhalte Was bedeutet das für meine arbeit Hier sollte ich doch stark auf das Schema und auf den Aufbau der Datenbank eingehen. Also was bedeutet DataItemClass, was ist ExperimentClass, etc. S. 16 / 39 Kommentar [SS14]: Sehr wichtig für weiteres Verständtnis Stefan Schurgast 3 Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Verwandte Arbeiten 3.1 Gängige Statistiksoftware und assoziierte Datenformate Mit aktueller Statistiksoftware ist es möglich, mit rechenintensiven Methoden grosse Datenmengen zu analysieren und statistisch auszuwerten. Die Auswahl an Statistikprogrammen ist riesig. Einige Programme wie SPSS und SAS sind inzwischen sehr weit verbreitet eingesetzt und somit zum QuasiStandard geworden. Weitere häufig verwendete Statistikpakete sind STATA und R, auf diese wird jedoch an dieser Stelle nicht weiter eingegangen. Im Folgenden wird zur Übersicht kurz auf die Statistiksoftware SPSS und SAS eingegangen und dabei auch die mit ihr assoziierten Datenformate vorgestellt. Zwar können alle erwähnten Programme Standardformate wie Excel-Arbeitsmappen, Access-Datenbanken oder CSV (Comma Separated Values) lesen, jedoch unterstützen diese Formate keine oder zu wenig Metainformationen über die Daten. Alle erwähnten Statistikprogramme werden als „Stand-Alone“ Anwendungen auf einem einzelnen Arbeitsplatz (PC oder Notebook) installiert und verwendet. Somit arbeitet der Benutzer jeweils selbständig mit seinen Daten. … Kommentar [SS15]: Sagen, was das für sesam heisst 3.1.1 Besonderes Augenmerk wird SPSS geschenkt, da es sich dabei um die meist verwendete Statistiksoftware im sesam Projekt handelt. SPSS SPSS (siehe Abbildung 1) aus dem gleichnamigen Softwarehaus steht für Statistical Product and Service Solution und ist im Jahr 2007 in der Version 16 auf den Markt gekommen. Sie wurde in Java implementiert und ist deshalb auf Windows, Mac OS X wie auch Linux in der gleichen Version verfügbar. Bei SPSS handelt es sich um ein modular aufgebautes Programmpaket zur statistischen Datenanalyse und beinhaltet im Basismodul das grundlegende Datenmanagement sowie häufig verwendete statistische und grafische Datenanalysen. Über dies verfügt SPSS über eine Vielzahl weiterer Funktionen und Zusatzapplikationen wie OLAP, Data Mining und viele mehr. … Kommentar [SS16]: Haupteinsatzort erwähnen Abbildung 1: Screenshot von SPSS (Variable View und Syntax) S. 17 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Das in SPSS standardmässig verwendete Datenformat ist .SAV und steht für SPSS Datensatz. Allerdings sind SAV-Dateien im Binärformat erstellt und somit nur mit dem System lesbar, welches die Datei auch erstellt hat, wie z.B. Windows. Müssen die Daten aber auch auf einem anderen System wie UNIX lesbar sein, so muss die Datei in das portable Format .POR konvertiert werden. Das .POR Format ist zwar in ASCII geschrieben und kann somit problemlos von System zu System portiert werden. Ein Blick in die Datei mit Hilfe eines Editors macht allerdings rasch deutlich, dass dieses Format nicht einfach so intuitiv verstanden werden kann. Einfacher als .POR Dateien sind Syntax-Dateien (.SPS) zu verstehen (siehe auch kleines Fenster in Abbildung 1). Auch Variablen- und Wertebeschriftungen sowie weitere Variableneigenschaften können einfach hinzugefügt werden. Das Format unterstützt sowohl fixe Kolonnenbreiten wie auch Unterteilung durch Deliminiter. Zusätzlich können auch Gültigkeitsbereiche eingesetzt werden. Das folgende Beispiel zeigt auf, wie in der Syntax-Datei erst die Datei selbst, danach das Aufzählungsformat und die Variablen definiert werden. Anschliessend folgen die eigentlichen Daten (Levesque, 2006, S. 38). *testfile_20071211_094000.sps. DATA LIST LIST ("; ") /spss_export_row_id (F8) sid (a255) d1_data_item_id (F8). BEGIN DATA 1; 1; 10 2; 1; 8 3; 4; 6 END DATA. Abbildung 2: SPSS Syntax Datei mit Metadaten Eine weitere Möglichkeit ist das Aufsplitten von Daten und Metainformationen über die Daten in je unterschiedliche Dateien (Levesque, 2006, S. 40). *delimited_list.sps. DATA LIST LIST FILE='c:\examples\data\delimited_list.txt' /id(F3) sex (A1) age opinion1 TO opinion5 (6F1). EXECUTE. Abbildung 3: SPSS Syntax Datei mit Metadaten und Verweis auf externe Datei 3.1.2 SAS SAS vom amerikanischen Softwarehersteller SAS Institute ist ein Programmpaket, das ursprünglich für statistische Auswertungen entwickelt worden ist. SAS steht für Statistical Analysis Systems. Inzwischen wurde es jedoch stark ausgebaut und verfügt über viele andere Funktionen wie die Datenerfassung, die Datenhaltung, aber auch weitere Auswertungsmethoden wie Data Mining. Dank der langjährigen Kontinuität hat sich SAS vor allem im Pharma-Bereich zum Standardprodukt für die S. 18 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Auswertung klinischer Studiendaten entwickelt. SAS ist sowohl für Windows wie auch UNIX und IBM z/OS verfügbar (SAS Institut, 2007). Abbildung 4: Screenshot von SAS (Clusteranalyse) SAS verwendet als proprietäres Dateiformat SAS Tabellen (SAS data file). Ähnlich wie das SPSSFormat unterstützen SAS-Tabellen auch Metainformationen zu Daten. Auch SAS benutzt zum Einlesen von Daten eine Form von Syntax-Datei. Darin wird im Header erst die Datenmenge mit Namen und Variablenbezeichnungen beschrieben. Anschliessend folgen die eigentlichen Daten entweder in fixer Breite oder delimitiert durch ein beliebiges Zeichen (standardmässig mit einem Leerzeichen) (UCLA Academic Technology Services, 2007). DATA cars; INPUT make $ 1-5 model $ 6-12 mpg 13-14 weight 15-18 price 19-22; CARDS; AMC Concord2229304099 AMC Pacer 1733504749 AMC Spirit 2226403799 BuickCentury2032504816 BuickElectra1540807827 ; RUN; Abbildung 5: SAS Data File mit Metadaten Zusätzlich bietet sich die Möglichkeit an, Daten und Metainformationen in einzelne Dateien zu unterteilen. Im folgenden Beispiel werden nur die Metainformationen gespeichert. Die eigentlichen Daten befinden sich in der Datei cars.dat (UCLA Academic Technology Services, 2007). DATA cars; S. 19 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen INFILE ‘D:\data\cars.dat'; INPUT make $ 1-5 model $ 6-12 mpg 13-14 weight 15-18 price 19-22; RUN; Abbildung 6: SAS Data File mit Metadaten und Verweis auf externe Datei … Kommentar [SS17]: Was bedeutet das für meine arbeit Welche möglichkeiten für outputdesigns hat man, wieviel kann man im … definieren? 3.2 Datenexport in Statistikprogramme … 3.2.1 3.2.2 - Exportanwendungen für allgemeine Datenbanken Microsoft Query Probleme dabei, warum geht das nicht immer (viel zu allgemein, ) Geht nicht (überleitung) Exportanwendungen in Statistikformate Warum genau dieses Format (*.sps) in SPSS gewählt (weil nicht binär und weil einfach zu generieren, übersichtlich und Daten können gut beschrieben werden) nichts bestehendes (anforderung) 3.3 Repräsentation von Abfragen für den Benutzer 3.3.1 Repräsentation in Skriptform Die Standardabfragesprache im Bereich Datenbanken ist ohne Zweifel SQL3. Mit ihr können Kommentar [SS18]: Warum exportanwendung: -da gibst dann folgende Probleme. Bei einem komplexen Schema wie bei sesam machen nur bestimmte Datenkombinationen sinn, aus denen der User über ein intuitives Interface welche auswählen können soll. Selbst wenn man alla Acess Queries zusammenstellen kann wird der Nutzer nicht gewarnt wenn er mist auswählt. Außerdem bietet deine Anwendung die Möglichkeit Exporte zu dokumentieren und wiederzuverwenden. wobei man aufgrund der History mehr Möglichkeiten hat, die sonst der Nutzer selber über Queries lösen können müsste und du weißt ja aus eigener Erfahrung das da selbst für simple Anwendungen halbwegs komplizierte Queries rauskommen ;) -oki ja.. ich nimm auch an, dass die daten dann in spss lokal gespeichert werden und nicht einfach nur ein link bestehen würde. somit gibt es auch keinen mehrwert in dem sinn.. -[15:54:27] Boris Glavic says: genau, daran wird ja dann beliebig rumgeschraubt (nach der Maßregeln mit der selbstgefälschten Statistik ;-außerdem kann man so überall damit rechnen, bei sesam wichtig da die Datenbank nur lokal erreichbar ist) Datenbanken auf Inhalte durchsucht und diese dann ausgegeben werden. Die Syntax ist einfach, und semantisch ist SQL sehr nah an die englische Umgangssprache angelehnt. Eine Abfrage kann aus bis zu sechs Klauseln bestehen, wobei folgende Reihenfolge eingehalten werden muss und nur SELECT und FROM zwingend sind: SELECT <Attribut- und Funktionsliste> FROM <Tabellenliste> [WHERE <Bedingung>] [GROUP BY <Gruppierungsattribute>] [HAVING <Gruppenbedingungen>] [ORDER BY <Attributliste>] Abbildung 7: Klauseln einer Abfrage in SQL 3 SQL ist eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten. Für den hier verfolgten Zweck ist jedoch nur das SELECT-Statement von Bedeutung. S. 20 / 39 Kommentar [SS19]: Quelle suchen Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Im Folgenden werden nur auf die für diese Arbeit relevanten Anweisungen eingegangen. SQL selbst bietet jedoch weit umfangreichere Möglichkeiten. Abfragen werden in SQL durch die Anweisung „SELECT“ gestartet (siehe Abbildung 8). Ihr folgt eine Kommentar [SS20]: Schöner schreiben Liste mit Attributnamen, deren Werte mit der Ausführung der Abfrage aus der Datenbank gelesen werden. Um alle verfügbaren Attribute zu ermitteln, wird ein Stern (*) verwendet. Neben den vorhandenen Attributen können auch weitere abgeleitete oder eigendefinierte Attribute erzeugt werden (Elmasri & Navathe, 2005, S. 190). Hierzu werden Werte oder Operationen (z.B. Produkte oder Aggregationen wie SUM oder MAX) durch die Verwendung des Statements „AS“ in einem neu benannten Attribut dargestellt (Elmasri & Navathe, 2005, S. 192). SELECT [Erweitertes Personal].Mitarbeitername, [Erweiterte Kunden].Kontaktperson, Verkaufschancen.Mitarbeiter AS [Zugewiesen an], Verkaufschancen.[Gesch Abschlussdatum], [Gesch Einnahmen]*[Wahrscheinlichkeit] AS Prognosewert FROM (Verkaufschancen LEFT JOIN [Erweiterte Kunden] ON Verkaufschancen.[Kunde/Kundin] = [Erweiterte Kunden].ID) LEFT JOIN [Erweitertes Personal] ON Verkaufschancen.[Mitarbeiter] = [Erweitertes Personal].ID WHERE ((Verkaufschancen.Geschlossen)<>True); Abbildung 8: Beispiel einer Abfrage in T-SQL Das „FROM“-Statement dient dazu, die Quelle der Daten zu definieren. Ihm folgt eine Liste mit Relationsnamen, auf die für die Ausführung der Abfrage zugegriffen wird. Dies können Tabellen- oder Abfragenamen sein, aber auch selbst wiederum vollständige Abfragen (Elmasri & Navathe, 2005, S. 198). Mittels Komma abgetrennte Quellen werden als kartesisches Produkt4 aufgerufen, die Anweisung „JOIN“ bildet einen Verbund. Kommentar [SS21]: Fussnote ergänzen! Im „WHERE“-Statement werden die Tupel eingeschränkt. Dabei handelt es sich um Bedingungen in Form eines boolschen Ausdrucks, unter der.denen die Daten ausgegeben werden sollen (Elmasri & Navathe, 2005, S. 193). Weitere Möglichkeiten bieten Mengenoperatoren, mit denen die Abfragen um eine Anzahl Tubel erweitert oder gekürzt werden kann. Hierzu gehören unter anderem UNION (vereint zwei Abfragen miteinander) und INTERSECT (bildet Schnittmenge). Für den nicht erfahrenen Computerbenutzer ist jedoch diese Art von Datenbankabfrage viel zu schwierig, braucht es doch Erfahrung, um komplexe Abfragen über mehrere Tabellen durchführen zu können. Ausserdem fehlen dem Benutzer die Informationen über den Datenbankaufbau. Geeigneter wäre also eine grafische Repräsentation der vorhandenen Elemente, die er sich wie gewünscht aneinanderreihen könnte. 4 Kommentar [SS22]: Quelle hierzu ????????????????????????? S. 21 / 39 Stefan Schurgast 3.3.2 Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Grafische Repräsentation Gewisse Datenbankmanagementsysteme bieten wie beispielsweise Microsoft Access ein grafisches Front-End an (siehe Abbildung 9). Sie ermöglichen dem Benutzer, sich ohne Kenntnisse über den Aufbau der Datenbank oder über eine Datenbanksprache, Abfragen zu erstellen. Abbildung 9: Screenshot aus Microsoft Access (grafische Repräsentation einer Abfrage) Dies gilt natürlich nur solange, wie nicht zu viele Auswahlmöglichkeiten zur Verfügung stehen und diese eindeutig und übersichtlich benannte sind. In grossen Datenbanken mit hunderten von Tabellen jedoch wird auch dies rasch unübersichtlich. Der Benutzer kann sich nicht mehr zurecht finden. Häufig benötigt der Benutzer auch nicht die gesamte Datenmenge einer Datenbank, wie einzelne Attribute, z.B. die letzte Änderung einer Tabelle. Die Daten müssen also für den ungeübten Benutzer ohne das Dazulernen von Konzepten oder Sprachen abrufbar sein. Da aber keines dieser beiden eben vorgestellten Konzepte die Anforderungen eines Benutzers der sesamDB genügen würde, ist hier eine eigene, individuelle Umsetzung nötig. 3.4 Anonymität und Pseudonymität Für die Auswertung medizinischer Daten für Forschungszwecke ist ein direkter Personenbezug nicht nötig. Damit verschiedene Daten verschiedene Daten eines Falls zusammengeführt oder neu erhoben werden können, werden Personenangaben jedoch trotzdem oft mitgeführt (Pommerening, 2000, S. 1). Gemäss Art. 19a des Datenschutzgesetzes müssen Personendaten jedoch Personendaten für statistische Auswertungen jedoch anonymisiert werden, sobald dies der Verwendungszweck erlaubt (Bundesstatistikgesetz, 2007). Unter Anonymität versteht man gemäss dem Deutsche Wörterbuch Wahrig definiert Anonymität als „Verschweigung, Nichtangabe des Namens“ (Wahrig, 1997). Somit ist Anonymität im Falle von statistischen Auswertungen die Geheimhaltung der Identität einer Person. Dies umzusetzen ist jedoch im Alltag beinahe unmöglich, können doch einzelne Angaben über eine Person ihre Identität aufdecken (wie z.B. der Schweizerischer Bundesrat, abgewählt am 12. Dezember 2007). Somit ist S. 22 / 39 Kommentar [SS23]: Quelle hierzu Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen gemäss Rost der Grad der Anonymität zentral, also inwiefern es möglich ist, aufgrund von Einzelattributen auf eine Identität zu schliessen. Je nach Grad der Anonymität entscheidet man in der Statistik folgende drei Stufen (2003): Formale Anonymität: Alle Namen sind zwar entfernt, die anderen Daten bleiben jedoch unverändert bestehen. Die Daten können relativ leicht einer Identität zugeordnet werden. Faktische Anonymität: Die Daten sind nur mit unverhältnismässig grossem Aufwand zuordenbar. Komplett Anonym: Die Zuordnung zu einer Identität ist nicht möglich. Zu veröffentlichende Statistikdaten sind wie oben bereits festgehalten so weit wie möglich zu anonymisieren, d.h. die personenbezogenen Daten müssen soweit verändert werden, dass sie nicht mehr einer Person zugeordnet werden können. Eine einfache Möglichkeit dazu ist die Pseudonymisierung. Bei der Pseudonymisierung wird gemäss Pfitzmann das Identifikationsmerkmal (in der Regel ein Name) durch ein Pseudonym5 ersetzt (2004, S. 9). Auf diese Wiese soll der Nachweis der Personenbezug so verschleiert werden, dass faktische Anonymität entsteht. Die Pseudonymisierung hat jedoch den Vorteil, dass Bezüge verschiedener Datensätze, die auf die gleiche Weise pseudonymisiert wurden, erhalten bleiben. Je nach Art der Erzeugung der Pseudonyme können hier nach Pommerening unterschiedliche Typen definiert werden (2000, S. 1): Deterministische Pseudonyme: Die Erzeugung des Pseudonyms erfolgt über eine schlüsselabhängige Hashfunktion aus Identitätsdaten durch eine vertrauenswürdige Instanz. Willkürliche Pseudonyme: Der Benutzer erzeugt ein Pseudonym in einem Einmal-Algorithmus aus einem Geheimnis, wie beispielsweise einer Passphrase. Zufällige Pseudonyme Das Pseudonym wird zufällig mittels eines Zufallsverfahrens erzeugt oder wird frei gewählt. Auf diese Weise erzeugte Pseudonyme eignen sich für den einmaligen Gebrauch, wie zur Zusammenführung verschiedener Datenquellen zu Statistikzwecken. Sonst macht sie nur Sinn, wenn sie in einer Referenzliste gespeichert wird. Je nach Anwendungsgebiet ist die geeignete Form von Pseudonymen zu wählen. Die Einführung von Pseudonymen ist ein Kompromiss zwischen der Weiterverwendbarkeit von Daten und datenschutzrechtlichen Überlegungen. Kryptische Pseudonyme stellen somit „eine Grundtechnik 5 Ein Pseudonym ist gemäss dem Deutschen Wörterbuch Wahrig ein Deckname für eine Entität (Wahrig, 1997). S. 23 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen des praktischen Datenschutzes dar“, so Pommerening (2000) und sollten deshalb „wo immer möglich eingesetzt werden“. 3.5 Aufbau von modellbasierten Anwendungen Das Architekturmuster Model-View-Controller (MVC) dient dazu, Softwaresysteme in drei Einheiten, nämlich das Model (Datenmodell), die View (Präsentation) sowie den Controller Kommentar [SS24]: Wer hats erfunden? Quelle (Programmsteuerung) aufzuteilen (siehe Abbildung 10). Abbildung 10: Design Pattern Model View Controller (MVC) Das Modell repräsentiert laut Middendorfer et al. die darzustellenden Daten sowie die Geschäftslogik. Die Daten werden unabhängig vom Erscheinungsbild bereitgestellt. Die Präsentation dient zur Programmsteuerung durch den Benutzer und nimmt stellt Inhalte für ihn dar. Durch die Unabhängigkeit der Präsentation ist es meist relativ einfach möglich, weitere Benutzeroberflächen wie beispielsweise eine GUI sowie eine Konsolenbedienung zu erstellen. Die Einheit Controller ist die eigentliche Programmsteuerung. Sie nimmt Benutzeranweisungen entgegen und agiert entsprechend. Der Vorteil einer Aufteilung in diese drei Einheiten liegt vor allem in der Wiederverwendbarkeit einzelner Programmkomponenten und vereinfacht Programmerweiterungen und Änderungen (Middendorf, Singer, & Heid, 2002). .. Kommentar [SS25]: Evtl. an dieser Stelle auf Importmanager oder so eingehen. S. 24 / 39 Stefan Schurgast 4 Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Analyse der Anforderungen an Sesam Export Manager … In diesem Kapitel werden die Anforderungen an die zu entwickelnde Exportanwendung, Sesam Export Manager, detailliert dokumentiert werden. Die Aufgabenstellung der Bachelorarbeit gibt zwar hier einen groben Rahmen vor, konkretisiert wurden die Spezifikationen jedoch in mehreren ausführlichen Gesprächen mit meinem Betreuer Boris Galvic6. Das Hauptziel der Anwendung ist es, Daten der sesam Datenbank so zu extrahieren, dass diese in ein gängiges Statistikprogramm eingelesen werden können. Kommentar [SS26]: Kurzer Einblick ins Kapitel und Übersicht Was gibt’s für Möglichkeiten, das zu machen? Anforderungen (Benutzer bedienen, flexibel, versch. Statistikprogramme, Beispiele) Entscheidungen mit bezug auf related work und Anforderungen (alternativen und daraus einen auswählen aus diesen Gründen, da deshalb besser (evtl. besser oder einfacher, etc.) 6 Seiten Der gesamte Prozess kann dabei in drei Teile unterteilt werden. Präsentation der Auswahlmöglichkeiten für den Benutzer (Kapitel 4.1) Import der Daten aus der Datenbank nach Sesam Export Manager (Kapitel 4.2) Schreiben der Daten im Statistikformat (Kapitel 4.3) Kommentar [SS27]: Anstatt Aufzählung, Verwendung der Grafik. Allerdings noch anpassen! Abbildung 11: Datenfluss in Sesam Export Manager 4.1 Präsentation der Auswahlmöglichkeiten Um dem Benutzer die Möglichkeit zu geben, Daten aus einer Datenbank auszulesen, muss dieser erst wissen, welche Daten verfügbar sind. Dem Anwender, meist Psychologen und Soziologen, jedoch auch Mediziner, Biologen, etc., kann allerdings nicht zugetraut werden, sich mit SQL auszukennen, geschweige denn das Datenbankschema zu verstehen. Der komplizierte Aufbau der Datenbank mit Vererbung erschwert ausserdem das Zurechtfinden in den Datenbankinhalten weiter. Des Weiteren sollen auch aus Gründen des Datenschutzes gewisse Aspekte gegen aussen verborgen bleiben. Damit der Benutzer trotzdem für seine Bedürfnisse sinnvolle Abfragen erstellen kann, muss er dabei vom Programm geführt werden. Ein Standard-Datenbankabfrageprogramm kommt aus diesen Gründen nicht in Frage, es bedarf einer für diesen Zweck spezialisierten Anwendung. Ein Beispiel soll dies verdeutlichen: Der Benutzer möchte die Ergebnisse des CIDI7-Interviews mit Müttern, die zum Zeitpunkt des Interviews in der 20. Schwangerschaftswoche waren, erhalten. 6 Boris Glavic ist Assistent in der Database Technology Research Group am IFI (Institut für Informatik der Universität Zürich) und ist bei sesamDB Project Leader. 7 Noch rasch erklären, was das für ein Test ist…………………………..??????????????????????????? S. 25 / 39 Kommentar [SS28]: Datenquelle wählen Kommentar [SS29]: Anforderungen an Bedienbarkeit der Anwendung Die beteiligten Forscher und Forscherinnen kommen aus der Psychologie, Soziologie, Epidemiologie, Familienforschung, Gynäkologie, Geburtshilfe, Kinder- und Jugendpsychiatrie, Psychiatrie, Genetik, Psychobiologie, Pharmakologie, Biologie, Anthropologie und anderen Disziplinen. Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Dem Benutzer muss also präsentiert werden, welche Tests zur Verfügung stehen (CIDI-Fragebogen), um welches Experiment es sich dabei handelt (CIDI Fragebogen ausfüllen), welcher ProzessOutput dabei genau benötigt wird (Resultate des ausgefüllten Tests) und schlussendlich wer den Fragebogen ausgefüllt hat (die Mutter). Über dies wird eine Bedingung benötigt, die alle Ergebnisse der Abfrage auf Mütter der 20. Schwangerschaftswoche einschränkt. Ein etwas komplizierteres Beispiel ist die Frage nach den Resultaten eines Bluttests der Mutter in einem Stress-Experiment mit mehreren Bluttests, wie beispielsweise einem Bluttest vor und einem nach dem Stresstest (siehe Abbildung 12). In diesem Beispiel wird der Wert vor dem Stresstest gesucht. Abbildung 12: Bluttest vor und nach Stresstest In diesem Fall muss die Art der Probe (also Bluttest der Mutter vor einem Stresstest), das Experiment (Stress-Test), der Prozess-Output (Blutwert) sowie der Proband (Mutter) angegeben werden. Zusätzlich muss der Workflow Node (Bluttest vor dem Stresstest) definiert werden, d.h. an welcher Stelle des Experiments der Test erfolgt. Abfragen können beliebig kompliziert werden, indem beispielsweise mehrere verschiedene Probanden (Mütter und Väter) ausgewählt, weitere Bedingungen (z.B. nur Probanden aus Basel) hinzugefügt oder gar mehrere Datenobjekte (Blutwert von Adrenalin und Körpertemperatur) verknüpft (z.B. als JOIN) ausgewertet werden müssen. Um den Benutzer der Exportapplikation nicht zu überfordern, muss deshalb abgeschätzt werden, nach welchen Datenobjekten er am ehesten suchen wird. Die meist benutzte Funktion wird gemäss Gespräch mit Boris Glavic die Suche nach Ergebnissen aus Experimenten sein. Aus diesem Grund wird ihr die höchste Priorität zugemessen. Weitere mögliche Suchstrategien sind die Suche nach Probanden (z.B. zum Vergleich einzelner Testwerte) oder nach Instrument (z.B. zum Vergleich der Testgenauigkeit). Die Auswahl der für die Suche benötigten Angaben sollte, um den Benutzer nicht mit Abfragesprachen oder Datenbankaufbau zu belasten, mittels einer für seine Zwecke zugeschnittenen, gut strukturierten grafischen Benutzeroberfläche erfolgen. Aus den obigen Beispielen folgt, dass unten stehende Auswahlkriterien in der grafischen Benutzeroberfläche vorhanden sein müssen: DataItemClass ExperimentClass ProcessOutput ExperimentWorkflowNode Kommentar [SS30]: Klassen kurz erklären (Seitens sesamDB) S. 26 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen SubjectPriorityPath Zusätzlich müssen weitere Datenobjekte ausgewählt werden können. zu oben gehört noch… Kommentar [SS31]: Ein weiteres Anwendungsbeispiel ist das Abrufen von Daten zu einem früheren Zeitpunkt. Dies findet häufige dann Verwendung, wenn beispielsweise Papers veröffentlicht und erst danach Daten korrigiert werden. Wird nun von Reviewern eine Ausweitung der Studie auf weitere Attribute erwartet, so ist dies nicht mehr möglich, da die Datengrundlage geändert hat. Bei sesamDB handelt es sich jedoch um eine bitemporale (wie in Kapitel………….) Datenbank, d.h. die Daten sind für jeden Zeitpunkt verfügbar. Somit kann dies relativ einfach umgesetzt werden. Hat der Anwender schon einige Abfragen erstellt, so ist er vielleicht daran interessiert, diese zu Irgendwo sollte noch das Datenbankschema kurz erklärt werden, damit ich dann zeigen kann, warum man so viel auf GUI auswählen muss, um Daten zu bekommen. Experiment: Bei einem Experiment handelt es sich um eine Messung eines Sachverhalts für einen bestimmten Zweck zu einer bestimmten Zeit an einem bestimmten Ort. Umfang der Abfrage beinhaltet. Prozess: Ein Prozess ist ein Ablauf von Aktivitäten zur Veränderung oder Erzeugung von Datenobjekten. Darin können Personen involviert sein und Instrumente sowie Hilfsmaterial verwendet werden. Ein Prozess besitzt immer einen Input und einen Output. 4.2 Import der Daten aus der Datenbank nach Sesam Export Manager Datenobjekt: Dateobjekte (DataItems) sind Outputdaten aus Prozessen. Sie repräsentieren Ergebnisse aus beispielsweise Fragebögen, Messungen oder Beobachtungen. speichern und bestehende Abfragen wiederzuverwenden oder zu modifizieren. Fertige Abfragen sollten deshalb gespeichert und als Datei abgelegt, wie auch wieder ins Programm geladen werden können. Die Anwendung sollte demnach eine Historisierung anbieten, welche den Zeitpunkt und den Die durch den Benutzer über das GUI festgelegten Abfrageparameter bilden im nächsten Schritt die Grundlage für die Generierung des entsprechenden Abfragestatements. Dieses soll genau die Daten zurückgeben, die der Benutzer aufgrund seiner Auswahl erwartet. Kommentar [SS32]: Noch was dazu schreiben in verwandte arbeiten 4.3 Schreiben der Daten im Statistikformat Nachdem die Daten in Sesam Export Manager vorhanden sind, müssen diese in eine Datei im benötigten Format geschrieben werden. Als geeignetes Format für Statistikdaten hat sich in einem ersten Schritt das SPSS Syntax File herauskristallisiert. In Kapitel 3.1.1 wurde dieses Format bereits genauer diskutiert. Sesam Export Manager sollte jedoch in der Lage sein, relativ einfach um weitere Exportformate erweitert zu werden. Diese sollte der Benutzer auf der grafischen Oberfläche auswählen können. Der Umfang der zu exportierenden Daten soll sich allerdings nicht nur auf die effektiven Messdaten beschränken, sondern sollte auch auf die dazugehörigen Metadaten beinhalten. Diese beinhalten: Irgendwann, wenn ich wieder schreiben mag Variablennamen (Name der zu exportierenden Spalte) Datentyp (z.B. Integer, Text, Datum, etc.) Variablenbeschriftung (Beschreibung der Variablen) Weitere sinnvolle Parameter sind: S. 27 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Skalentypen Wertebeschriftungen Um ein ausreichendes Mass an Datenschutz gewährleisten zu können, müssen alle personenspezifischen Daten vor dem Export in die Datei pseudonymisiert werden. Kommentar [SS33]: Evtl. darauf noch rasch eingehen. Testen ist auch eine anforderung Kommentar [SS34]: Weitere anforderung gefunden Allgemein gibt es auch anforderungen nicht für jetzt, sondern für die zukunft: also einfache erweiterbarkeit für neue exportformate oder wenn db-struktur ändert Installationsanweisung Dokumentation der anwendung (im code und für benutzer) Ausgehend von sesamDB (siehe evtl. auch ERM mit 6 Kategorien, entwickelt unter unizh mit beteiligung uni basel, evtl. kurz jede kategorie erklären (2 sätze)) - Vorgesehen: Benutzerlogin, Datenbank auswählen (mit diesen Zwischenspeichern), Pluginauswahl Hier fehlt noch Zusammenfassung als Prioritätsliste Kommentar [SS35]: Fehlt noch was Falls Zeit, noch use cases wie in skript von glinz Kommentar [SS36]: Glinz: use cases oder uml buch fowler S. 28 / 39 Stefan Schurgast 5 Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Entwurf und Umsetzung des Sesam Export Managers 15 Seiten Habe ich besonderes Vorgehensmodell (z.b. wachstumsmodell) gewählt? 5.1 Aufbau der Anwendung Dieses Kapitel beschreibt in den folgenden vier Teilkapiteln den Aufbau von Sesam Export Manager. Im Kapitel 5.1.1 wird aufgezeigt, aus welchen Komponenten die Applikation besteht, für was die einzelnen Komponenten zuständig sind, wie sie zusammenspielen und warum sie so umgesetzt werden. Das Kapitel 5.1.2 enthält einen Detailentwurf zu einzelnen Kernkomponenten. Diese werden im Detail analysiert. Damit wird der bewusst abstrakt gehaltene Teil über den konzeptionellen Aufbau verfeinert. In Kapitel 5.1.3 werden die zur Umsetzung benötigten Hilfsmittel wie beispielsweise die Datenbankschnittstellenkomponente diskutiert sowie deren Vor- und Nachteile abgewogen. Im letzten Teilkapitel 5.1.4 folgen einige Testdefinitionen, welche die Funktionsfähigkeit von Sesam Export prüfen sollen. 5.1.1 konzeptioneller Aufbau Sesam Export Manager ……………. Abbildung verbessern. Man sieht da gar nicht, was passiert und was das alles bedeutet. Irgendwie Ablauf aufzeigen. Dieser Abschnitt beschreibt den konzeptionellen Aufbau der Anwendung dar. Dazu wird in einem ersten Teil ein Gesamtüberblick über die verwendete Architektur gegeben, danach werden die einzelnen Schichten genauer erläutert sowie die darin enthaltenen Komponenten diskutiert. Sesam Export Manager ist als Einzelplatzanwendung aufgebaut, das heisst, sie kann auf einem Einzelplatzrechner installiert und ausgeführt werden. Dies ist sinnvoll, weil sich die Datenbank geschützt und gegen aussen abgeschlossen in der Sesam Zentralstelle befindet. Ein Zugriff über Internet ist also nicht möglich, sondern die Daten können nur vor Ort an einer an die sesamDB angeschlossene Arbeitsstation abgerufen werden. Wäre die Datenbank durch das Internet erreichbar, so würde sich eine Webanwendung eignen. Allerdings würde dies zu einem erhöhten Wartungsaufwand führen, da zusätzlich ein Webserver nötig wäre und bedeutend höhere Sicherheitsvorkehrungen getroffen werden müssten. Nachteilig wirkt sich dagegen die Versionsverwaltung für die Einzelplatzanwendung aus, da jede installierte Version einzeln bei einem neuen Release auf den neusten Stand gebracht werden muss. Eine weitere Möglichkeit wäre die Umsetzung als Erweiterung für eine bereits vorhandene Statistikanwendung. Dies würde es zwar für den Benutzer der einzelnen Statistikanwendung komfortabel gestalten, Daten zu importieren, hätte jedoch auch einige Nachteile. Zum einen müsste für jede Statistikanwendung eine eigene Erweiterung geschrieben werden, was einen enormen Aufwand bedeuten würde. Aufgrund mangelnder Schnittstellen wäre dies jedoch sicherlich nicht überall möglich und die Exporte würden sich auf wenige Statistikformate beschränken, was wiederum den Anforderungen an die zu wählende Lösung wiederspricht. S. 29 / 39 Kommentar [SS37]: bei der Anzahl von Clients die in dem lokalen Netzwerk möglich sind ist Überwiegen die nachteile der Clientanwendungen [13:53:55] Boris Glavic says: zusätzlich bräuchte man aus Performancegründen eventuell einen weiteren Server [13:54:55] Boris Glavic says: außerdem gibt es für die sesam-Anwendungen einen JavaUpdater, der als GUI zum Updaten von Programmen benutzt werden kann oder in eine Anwendung integriert wird und dann beim Start Änderungen installiert Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Gemäss dem Model-View-Controller Ansatz ist sesam Export Manager in drei Teile aufgeteilt und enthält zum einen die grafische Benutzeroberfläche, die Main Application (Steuerung) sowie darunterliegende Datenmodell. Die nachfolgende Abbildung 13 stellt die Architektur der Applikation schematisch gegliedert dar. Abbildung 13: Aufbau von Sesam Export Manager Bei Sesam Export Manager sind diese drei Schichten jedoch strikt übereinander, sodass die Main Application alleine für die Steuerung der GUI und des Modells zuständig ist. Dieser Aufbau bietet den Vorteil, dass Änderungen leicht vollzogen oder Programmteile erweitert werden können, da die einzelnen Klassen Teile so unabhängig wie möglich von einander sind. Ausserdem ist das Testen in einer solchen Architektur bedeutend einfacher, da die einzelnen Teile so für sich abgeschlossen auf ihre richtige Funktionstätigkeit geprüft werden können. Natürlich könnte die Applikation auch ohne Steuerungsklasse aufgebaut werden. Dies gäbe jedoch keinen nennenswerten Vorteil, da die Methoden nur in andere Klassen verlagert würden und somit Sesam Export Manager nicht schlanker würde. Die Testbarkeit, wie auch die leichte Erweiterbarkeit wäre dann aber eingeschränkt oder erschwert. S. 30 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen In erste Schicht, die Benutzeroberfläche, dient zur Entgegennahme von Benutzerinteraktionen mit Sesam Export Manager. Dies sind beispielsweise die Auswahl der zu exportierenden Daten oder der Anstoss zum Ausführen der Abfrage. Die Benutzeroberfläche selber ist wiederum in einzelne Elemente aufgeteilt. Dies erhöht die Übersichtlichkeit, erleichtert das Testen und macht es möglich, dass einzelne Teile wiederverwendet werden können. Benutzerbefehle werden durch eigene Aktionsklassen repräsentiert. So kann die Benutzeroberfläche vollständig von der Steuerung getrennt werden. Die Modelschicht repräsentiert die Daten in der Datenbank. In ihr sind alle für die Applikation relevanten Datenbankinhalte wie beispielsweise die ExperimentClass oder ProcessOutputClass auf ein eigenes Objekt gemappt und bereits benötigte Daten aus der Datenbank geladen. Jedoch ist es nicht sinnvoll, gleich die gesamte Datenbank mit allen Inhalten zu laden, da dies erstens bei der grossen Datenmenge sehr lange dauert und viel Speicher benötigt, aber auch weil ein Grossteil der Daten gar nie verwendet würde. Es werden also nur die zur Zeit benötigten Daten geladen. Zwischengespeichert werden die Datenbankhilfe mit einer Klasse ‚MetaModelReader‘ aus der Steuerungsschicht, die bei Bedarf die noch nicht im Puffer vorhandenen Daten aus der Datenbank abfragt und diese dann als Objekt in den Speicher lädt. Ebenfalls denkbar wäre es, die azuzeigenden Daten jeweils bei Bedarf aus der Datenbank direkt zu holen. Dies würde aber zu einer hohen Anzahl Zugriffe auf die Datenbank führen und somit erstens die Datenbank belastet und zweitens aufgrund der Verzögerung durch den entfernten Zugriff zu wenig Benutzerkomfort während der Bedienung der Applikation führen. Die Steuerungsschicht verwaltet alle Abläufe in Sesam Export Manager und wird beim Start der Applikation als erstes aufgerufen. Sie lädt zu Beginn alle Programmeinstellungen, wozu in einer ersten Umsetzungsphase auch die Datenbankeinstellungen wie URL, Port, Datenbankname, Benutzername und Passwort gehören. Später sollen diese Angaben jedoch durch eine Eingabe beim Start des Programms zur Verfügung stehen. Mit diesen Informationen stösst die Applikation dann das Mapping der relevanten Datenbankinhalte auf die Klassen im Modell an. Abschliessend wird die Benutzeroberfläche gestartet und die Klassendaten darin dargestellt. Nach einer Benutzerinteraktion nimmt die Steuerungsklasse den Befehl entgegen und agiert entsprechend. Wurden vollständige Abfragewerte eingegeben, so wird durch das Auslösen einer Aktion eine Query gestartet. Dies Query erhält alle Abfragewerte, den Dateinamen sowie das gewünschte Exportformat, lädt die Daten aus der Datenbank und speichert die abgefragten Datenbankinhalte mithilfe des Export-Plugins im entsprechenden Dateiformat und in den gewählten Pfad. Der Aufbau des Exportprozesses wurde deshalb mithilfe von Plugins konzeptioniert, da auf diese Weise einfach neue Exportformate und Exportmethoden zur Applikation ergänzt werden können. Ohne diesen Ansatz wären die Abfrage und der Export der Datenbankinhalte nicht sauber von einander getrennt, was zu Problemen bei der Definition weiterer Exportformate führen würde. 5.1.2 Detailentwurf … hier folgend Infos zum Abschnitt S. 31 / 39 Kommentar [SS38]: Hier könnte man ein aktivitätsdiagramm reinknallen und dann alles noch ein wenig genauer ausformulieren Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Der Singleton-Ansatz Der Singleton ist ein Design Pattern und bewirkt, dass von der Singletonklasse nur ein einziges Objekt erzeugt werden kann. Er dient zur Erzeugung und Verwaltung von einzelnen Objekten einer Klasse und ermöglicht einen globalen Zugriff auf über eine statisch gebundene Methode, die in Sesam Kommentar [SS39]: Designfrage: wäre es hier sinnvoll, evtl. Singleton-Teil in Abstract Class zu schmeisse und dies nur einmal zu implementieren? Also.. klass erbt singleton? Export Manager getInstance() genannt wird. Diese Methode gibt das private und statische Attribut ‚Instance‘ zurück. Die Verwendung von Klassen als Singletons ist ähnlich wie wenn die Klassen statisch wären. Allerdings bietet der Singleton-Ansatz den Vorteil, dass Kommentar [SS40]: FactoryPattern kann auch checken, dass es nur eine Instanz davon gibt. Spart allerdings keinen Implementierungsaufwand Allgemein: - - - Stand-Alone-Anwendung o D.h. kein Plugin für bspw. SPSS o Keine Webanwendung Singleton-Ansatz o Einfacher zu ändern im Nachhinein als static (das wäre alternative, erwähnen!) o Prinzip dahinter und dann warum angewendet (mit konkretem Beispiel) Trennung von Model, View und Controller o Übersichtlicher o Elemente können einfach wiederverwendet werden o Erweiterungen einfacher (z.B. weiteres GUI oder Konsole zur Befehlseingabe) o Controller steuert programm. Alternativ könnte direkt zugriff aus gui, oder model stattfinden. Allerdings gleiche komplexität (zugriffe müssten gleich gemacht werden), dafür alles verteilt und zu sehr ineinander verschlungen. Ausserdem kann dann nicht mehr alles einzeln aufgerufen werden. o Testen ist so viel einfacher o Starke aufteilung in klassen: ist einfacher zu testen, kann eher wiederverwendet werden - Eigenschaften separat als Klasse geführt o Zur besseren Übersicht, damit andere Klasse nicht so voll wird - Konfiguration unter configuration.xml abgelegt und wird daraus geladen - Ablauf: Daten laden, Auswählen, Query, Export Datenimport - Datenbankanbindung (ist abgeschlossene DB, nicht mit netzwerk verbunden) - Zwischenspeicherung der wichtigsten Daten mittels MetaModelReader o Erst laden aller daten, die ganz sicher verwendet werden. o Neue objekte werden dann bei bedarf nachgeladen. Mmr schaut, ob sie in map vorhanden sind, wenn nicht, lädt er sie aus DB und speichert sie in map o Objekte und Relationen werden auf Java-Objekte gemappt o (später benutzt in Gui) S. 32 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Gui - Mit SWT gemäss Vorgabe plus JFace - Benutzerbefehle werden als Actions implementiert, um diese vom GUI zu trennen, GUI ruft nur Action auf - Beim Start werden Daten aus Datenbank geladen - Benutzer wählt seine Daten aus - Vorgesehen: Benutzerlogin, Datenbank auswählen (mit diesen Zwischenspeichern), Pluginauswahl - Bei Eingabe eines Wertes wird Relation benutzt, für Einschränkung - Reset-Button löst dies wieder auf Query - Ich erstelle Query in Main application und übergib der QueryConfig und Exportplugin - Resultset muss vollständig übergeben werden, da man nicht vor und zurück kann - Erfolgt mittels JDBC, Resultset wird auch gebraucht, um Metadaten herauszubekommen (warum nicht anders?) Export - Es gibt ein QueryConfiguration-Objekt (Auswahl), welches an die Query übergeben wird o Man kann von überall drauf zugreiffen o Objekt könnte so als Ganzes abgespeichert werden, um Historisierung zu erreichen o Man könnte an mehreren Abfragen gleichzeitig arbeiten o Beim Ausführen der Query wird im Dialog Filename abgefragt, dann dieser mit den ausgefüllten Combos an QueryConfig übergeben - Export Plugin o Einfacher erweiterbar mit weiteren Exportformaten o Als abstract class (allerdings wäre darüber Interface schöner!) (da schnell umsetzbar, richtige Pluginschnittstelle könnte man noch erstellen, ist allerdings mehr Aufwand) - SPSS Plugin o Ausgabe in einem Stück o Daten werden ersetzt o In einer Datei, nicht aufgesplittet (da übersichtlicher und nur eine datei gehandelt werden muss, auch für benutzer nachher) variante: csv und andere datei (vorteil dort: könnte man auch in excel öffnen, jedoch ohne metadaten) o Debugging - Apache log4j S. 33 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Hilfsmittel: Noch sagen, warum welches hilfsmittel, z.b. hibernate 5.1.3 - verwendete Hilfsmittel Java (1.5 Vorgabe) Apache log4j SWT & JFace JDBC (Vorgabe) Hibernate 5.1.4 - Architektur, nicht jedoch, was jede Klasse macht Probleme, technisch, wie haben wir die gelöst Stand-alone-anwendung Alternative lösungsansätze mit anforderungen begründet. Warum nicht? Tests junit tests 5.2 Vorgehen und Implementierte Lösung 5.2.1 - Hilfsmittel Verwendung von SVN Eclipse … eher unwichtig 5.2.2 Aufgetretene Probleme und Lösungsansätze S. 34 / 39 Stefan Schurgast 6 Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Evaluation der entwickelten Lösung 6.1 Erfüllung der Anforderungen an Funktionalität - Aufzählen aller erfüllten funktionalitäten 6.2 Validierung der Funktionalität - Junit tests 6.3 Erfüllung der Anforderungen an Bedienbarkeit S. 35 / 39 Stefan Schurgast 7 Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Zusammenfassung und Ausblick 2 Seiten -was haben wir gemacht? - wo hatten wir schlechte lösungen? Was war gut? Was müssen wir noch machen? Mehr plugins, flexibler für query-baseln, anzeigen von metainfos (nicht nur nach namen auswählen, sondern alles mögliche drüber arbrufen), browsen in gemachten exporten, wiederverwenden von exporten, bestehende exporte abändern Ausblick: - Möglicherweise verschlüsselte Verbindung von JDBC nutzen (bietet ja schon an) S. 36 / 39 Stefan Schurgast VIII i Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Anhang sesam Datenbankschema S. 37 / 39 Stefan Schurgast IX Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen Literaturverzeichnis Berner, S., Glinz, M., Joos, S., Meier, S., Merlo-Schett, N., Ryser, J., et al. (2002). Entwicklungsrichtlinien für Java-Software, 3.0. (U. Zürich, Herausgeber) Abgerufen am 02. 12 2007 von htp://www.ifi.unizh.ch/groupos/req/ftp/papers/JavaStyleguideV3.pdf Bundesstatistikgesetz. (1. 4 2007). Abgerufen am 12. 12 2007 von http://www.admin.ch/ch/d/sr/4/431.01.de.pdf Elmasri, R., & Navathe, S. B. (2005). Grundlagen von Datenbanksystemen (Grundstudium Ausg.). München: Pearson Studium. Gaebel, W. (10. 10 2007). Psychische Erkrankungen weiter auf dem Vormarsch. Abgerufen am 2. 12 2007 von media.dgppn.de/mediadb/media/dgppn/pdf/presseinfo/2007/dgppn-pm07-17-welttagseel-ges.pdf Glavic, B., & Dittrich, K. (2006). sesam: Ensuring Privacy for a Interdisciplinary Longitudinal Study. Abgerufen am 02. 12 2007 von http://www.ifi.uzh.ch/dbtg/fileadmin/storage/Glavic/publications/06_GI_2006_workshop.pdf Levesque, R. (2006). SPSS Programming and Data Management (3 Ausg.). Chicago, U.S.A.: SPSS Inc. Middendorf, S., Singer, R., & Heid, J. (2002). Programmierhandbuch und Referenz für die JavaTM-2Plattform, Standard Edition. Abgerufen am 11. 12 2007 von http://www.dpunkt.de/java/Programmieren_mit_Java/Oberflaechenprogrammierung/40.html Murray, C., & Lopez, A. (1997). Alternative projections of mortality and disability by cause 1990-2020: Global Burden of Disease Study. The Lancet , S. 1498-1504 (349). Pfitzmann, A. (2004). Anonymity, Unobservability, Pseudonymity, and Identity Management – A Proposal for Terminology. Abgerufen am 12. 12 2007 von http://dud.inf.tudresden.de/literatur/Anon_Terminology_v0.21.pdf Pommerening, K. (17. 05 2000). Pseudonyme – ein Kompromiß zwischen Anonymisierung und Personenbezug. Abgerufen am 12. 12 2007 von http://www.staff.unimainz.de/pommeren/Artikel/pseudony.pdf PostgreSQL Global Development Group. (2007). Abgerufen am 02. 12 2007 von PostgreSQL: http://www.postgresql.org/about/ Rost, M. (2003). Zur gesellschaftlichen Funktion von Anonymität. Datenschutz und Sicherheit (DuD) (27), S. 156-158. SAS Institut. (2007). SAS OnlineDoc 9.13. Abgerufen am 8. Dezember 2007 von http://support.sas.com/onlinedoc/913/docMainpage.jsp Schweizerischer Nationalfonds. (2005). NFS SESAM - Schweizerische ätiologische Studie zur psychischen Gesundheit (SESAM). Abgerufen am 02. 12 2007 von http://www.snf.ch/D/forschung/Forschungsschwerpunkte/LaufendeNFS/Seiten/_xc_nfssesam.aspx S. 38 / 39 Stefan Schurgast Bachelorarbeit Export von Datenbankinhalten in Datenformate von Statistikprogrammen sesam Schweiz. (2007). sesam Kernstudie: Besser verstehen – besser vorbeugen. Abgerufen am 02. 12 2007 von http://www.sesamswiss.ch/sesam/ueber-sesam/kernstudie/nutzen/ sesam Schweiz. (2007). sesam Teilstudien. Abgerufen am 2. 12 2007 von sesam swiss: http://www.sesamswiss.ch/sesam/ueber-sesam/teilstudien/ UCLA Academic Technology Services. (2007). SAS Learning Module: Inputting data into SAS. Abgerufen am 8. Dezember 2007 von http://www.ats.ucla.edu/stat/SAS/modules/input.htm Wahrig, G. (1997). Deutsches Wörterbuch Wahrig. Gütersloh: Bertelsmann Lexikon Verlag. S. 39 / 39 Seite 15: [1] Kommentar [SS10] Stefan Schurgast 16.12.2007 01:30:00 Die Vorteile von PostgreSQL PostgreSQL bietet gegenüber anderen Datenbanksystemen viele Vorteile für Ihre Firma oder Ihr Geschäft: Schutz vor Over-Deployment Over-deployment, das Benutzen von mehr Datenbank Instanzen als lizensiert wurden, wird von einigen Anbietern kommerzieller Datenbanksysteme als das Hauptproblem bei der Einhaltung der Lizenzbedingungen genannt. Mit PostgreSQL kann Sie niemand deswegen belangen, weil keine Lizenzgebühren für die Software erhoben werden. Dies hat mehrere zusätzliche Vorteile: • • • Profitablere Geschäftsmodelle in weitgefächerten Einsatzgebieten. Es gibt keine Möglichkeiten, irgendwann wegen der Einhaltung der Lizenzbedingungen überprüft zu werden. Flexibilität bei der konzeptionellen Forschung oder bei Testinstallationen, da keine zusätzlichen Lizenzkosten anfallen. Bessere Unterstützung als von kommerziellen Anbietern Zusätzlich zu unserem überzeugenden Support-Angebot gibt es bei PostgreSql eine lebendige Community aus Profis und Enthusiasten, von der Ihre Mitarbeiter profitieren und zu der sie beitragen können. Bedeutende Einsparungen bei den Personalkosten Die Software wurde so konzipiert und entwickelt, dass die Anforderungen zur Wartung und Leistungsverbesserung weitaus niedriger sind, als bei den führenden kommerziellen Datenbanksystemen. Dennoch bietet PostgreSql alle Leistungsmerkmale, Stabilität und Geschwindigkeit. Legendäre Zuverlässigkeit und Stabilität Im Gegensatz zu Benutzern vieler kommerzieller Datenbanksysteme ist es bei Unternehmen, die PostgreSQL einsetzen der Normalfall, dass das Datenbanksystem noch kein einziges Mal abgestürzt ist. Auch nicht bei jahrelangem Einsatz und großem Datenaufkommen. Es läuft einfach. Erweiterbar Der Quelltext ist kostenlos für jeden zugänglich. Sollte für Sie oder Ihre Mitarbeiter eine Notwendigkeit bestehen, PostgreSQL in irgendeiner Weise zu erweitern oder anzupassen, können Sie das mit minimalem Aufwand und ohne zusätzliche Kosten tun. Unterstützt werden Sie dabei von den Profis und Enthusiasten der PostgreSQL Community auf der ganzen Welt, die PostgreSQL täglich weiterentwickeln. Plattformunabhängig PostgreSQL ist nahezu für jede Unix-Variante verfügbar, (die letzte stabile Version läuft auf 34 Betriebssystemen), und eine native Windows Version ist seit der Version PostgreSQL 7.4 eingeführt. Für Umgebungen mit hohem Datenvolumen konzipiert PostgreSql benutzt MVCC, eine Speicherstrategie, durch die sich PostgreSQL speziell für Umgebungen mit hohem Datenaufkommen ausserordentlich gut eignet. Der führende kommerzielle Datenbankanbieter benutzt diese Technologie ebenfalls und aus demselben Grund. Grafische Benutzeroberflächen für Datenbankdesign und Administration Einige hochwertige grafische Benutzeroberflächen zur Administration (pgAdmin, pgAccess) sowie zum Datenbankdesign (Tora) stehen zur Verfügung. Die wichtigsten technischen Fähigkeiten, die PostgreSQL bietet: • • • • • • • • • • • • • • • • • • • • • • • • • • Volle Unterstützung von ACID Erfüllung der ANSI SQL Standards Referentielle Integrität Replikation (kommerzielle und nicht-kommerzielle Lösungen) ermöglicht das Duplizieren einer Master-Datenbank auf mehrere untergeordnete Rechner. Native Schnittstellen für ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG, Python und Ruby Rules (Regelsysteme) Views Trigger Unicode Unterstützung Sequences Vererbung Outer Joins Sub-Selects Offene API (Application Programming Interface) Stored Procedures Native Unterstützung von SSL Prozedurale Sprachen Hot stand-by (komerzielle Lösungen) Besser als Row-Level Locking Partielle Indizes und Indizes über Funktionsergebnisse Native Unterstützung von Kerberos Authentifizierung Unterstützung von UNION, UNION ALL und EXCEPT Abfragen Nachladbare Erweiterungen für SHA1, MD5, XML und andere Funktionalitäten Werkzeuge um portablen SQL Code zu erzeugen, der mit allen SQL-unterstützenden Systemen verwendbar ist Erweiterbares Datentyp System, das eigene, vom Benutzer definierte Datentypen und schnelle Entwicklung von neuen Datentypen ermöglicht Datenbank übergreifende Kompatibilitätsfunktionen um den Umstieg von anderen, weniger