Seminararbeit Erstellung dynamischer Templates - RWTH

Werbung
Seminararbeit
Erstellung dynamischer Templates anhand eines
Datenbankmodells für ein webbasiertes „Decision
Support System“ zur effizienten Kontrolle der
Staubemissionen im Kohlentagebau
Eingereicht von:
Stefan Knauer
Matrikelnummer: 844904
Studiengang: Scientific Programming
10.01.2013
Erstbetreuer: Yvonne Nix (M.Sc.)
Zweitbetreuer: Lukas Bodych (MaTA)
0.1 Kurzfassung
Abstract
In dieser Seminararbeit wird das dynamische Erstellen von Templates anhand
eines Datenbankmodells betrachtet. Diese Funktionsweise wurde speziell für
die Entwicklung eines „Decision Support Systems“ benutzt.
Das „Decision Support System“ dient Managern von Bergbaubetrieben bei
Ihrem Entscheidungsprozess, Staubemissionen so zu verringern, dass sowohl
Umweltfreundlichkeit als auch Kosteneffizienz optimiert werden können. Das
„Decision Support System“ besteht aus zwei Teilmodulen, einmal dem
Berechnungsmodul, welches Performanz- und Kostenparameter beinhaltet,
und des Weiteren aus einem Anleitungsmodul in Form eines Media Wikis
(„Best Practice Guide“). Das Anleitungsmodul wird in dieser Arbeit jedoch nicht
näher betrachtet.
1
Inhaltsverzeichnis
0.1
Kurzfassung.............................................................................................. 1
1.
Einleitung und Motivation ....................................................................... 4
2.
Grundlagen zu den angewandten Technologien ....................................5
2.1
Webapplikationen im Allgemeinen................................................. 5
2.2
HTML .............................................................................................. 6
2.3
PHP ................................................................................................. 6
2.4
MySQL ............................................................................................ 6
2.5
Smarty ............................................................................................ 8
3.
Bergbautechnischer Hintergrund ...........................................................9
4.
Ziele und Aufgaben.............................................................................. 11
5.
4.1
Der GUI-Entwurf als Entwicklungsgrundlage ................................ 11
4.2
Planung der Software als Webapplikation mit Datenbank ............ 14
Umsetzung im Projekt ......................................................................... 14
5.1
5.2
5.3
6.
Datenbankmodell ......................................................................... 14
5.1.1
Projektdaten ............................................................. 16
5.1.2
Aktivitäten ................................................................ 16
5.1.3
Flächen (Areas) ......................................................... 17
5.1.4
Mitigationsmethoden und Kostenparameter ............ 17
5.1.5
Templatetypen ......................................................... 18
Die einzelnen Templates und deren Inhalt ................................... 19
5.2.1
Das Auswahltemplate ............................................... 19
5.2.2
Das Formulartemplate .............................................. 19
Ablaufsteuerung in PHP ................................................................ 20
Ausblick ............................................................................................... 22
2
Anhang
Quellenverzeichnis ........................................................................................... 23
Abbildungsverzeichnis ...................................................................................... 24
Eidesstattliche Erklärung .................................................................................. 25
3
1.
Einleitung und Motivation
In der folgenden Seminararbeit liegt der Fokus auf der Generierung
dynamischer Templates anhand eines Datenbankmodells. Somit kann der
Inhalt, wie zum Beispiel Parameternamen und Werte, von technischen
Elementen, wie Layout und Skripten getrennt werden und inhaltliche
Anpassungen einfach durch Änderungen in der Datenbank umgesetzt werden.
Das Ziel ist also eine einfache Erweiterbarkeit und die Möglichkeit zur
Modifizierung bestehender Daten, vor allem auch von fachfremden
Ingenieuren. So muss beim Hinzufügen neuer Methoden kein Template mehr
speziell angepasst werden und vorhandene Skripte müssen nicht mehr
geändert werden.
Diese Methode wird spezifisch zur Entwicklung eines webbasierten „Decision
Support Systems“ zur Staubemissionskontrolle im Kohlentagebau verwendet.
Zum besseren Verständnis werden die einzelnen verwendeten
Softwaretechniken im Allgemeinen vorgestellt und anschließend deren
Umsetzung in der Entwicklung der Webapplikation erläutert.
4
2.
Grundlagen zu den angewandten Technologien
Das folgende Kapitel beinhaltet kurze Erklärungen zu der eingesetzten Software
und deren Verwendung im Allgemeinen.
2.1 Webapplikationen im Allgemeinen
Die typische Nutzung einer Webapplikation läuft prinzipiell so ab, dass ein
Client eine Anfrage (HTTP-Request) durch Aufruf einer URL im Browser an
einen Webserver stellt. Die Anfrage wird vom Server entgegengenommen, der
mit Hilfe einer Skript- oder Programmiersprache, Daten entsprechend der
Anfrage aus verschiedenen Quellen abruft. Diese Daten werden dann an durch
Platzhalter definierte Stellen in ein vorgefertigtes Dokument eingefügt, das
sogenannte Template. Das fertig erstellte HTML-Dokument schickt der
Webserver dann zurück zum Client (HTTP-Response), dessen Browser den
empfangenen Inhalt dann darstellt.
Abbildung 1 Client-Server Schema (Quelle: http://de.wikipedia.org/wiki/Webanwendung)
5
2.2 HTML
Die Bezeichnung HTML steht für “HyperText Markup Language“ und ist eine im
Web verwendete, textbasierte Auszeichnungssprache zur Strukturierung von
Inhalten wie Texten, Bildern und Hyperlinks in Dokumenten1. Durch
Verwendung sogenannter Tags können Zeilenumbrüche, Block- und
Containerelemente, Formulare, Tabellen und Listen erstellt werden, die der
Browser interpretiert und darstellt.
2.3 PHP
PHP (früher „Personal Home Page“ jetzt „PHP Hypertext Processor“) ist eine
Skriptsprache, dessen Syntax an die von C und Perl angelehnt ist. PHP wird
hauptsächlich zur Erstellung dynamischer Webseiten und Webanwendungen
verwendet2, wobei 78,7% aller Webseiten PHP als serverseitige
Programmiersprache benutzen3. Die sogenannten PHP Skripte sind in der Regel
kleinere Programme, die auf dem Webserver abgearbeitet werden und dem
User die von ihm angeforderten Daten bzw. den anzuzeigenden Inhalt aus
unterschiedlichen Quellen sammeln und aufbereiten. Weiterhin zeichnet sich
PHP durch eine breite Datenbankunterstützung4 und die Verfügbarkeit
zahlreicher Funktionsbibliotheken aus5.
2.4 MySQL
MySQL ist eines der am weitesten verbreiteten relationalen
Datenbankverwaltungssysteme6. Es bildet die Grundlage für viele dynamische
Webseiten und wird häufig in Verbindung mit dem Webserver Apache und der
Skriptsprache PHP eingesetzt. MySQL hat laut Forrester die größte
1
http://de.wikipedia.org/wiki/Hypertext_Markup_Language
http://de.wikipedia.org/wiki/PHP
3
http://w3techs.com/technologies/overview/programming_language/all
4
http://www.php.net/manual/de/refs.database.php
5
http://de.php.net/extensions
6
http://de.wikipedia.org/wiki/MySQL
2
6
Marktbedeutung im Open-Source-Datenbankmarkt7.
Einsatzgebiet ist die Datenspeicherung für Webservices.
Das
bevorzugte
Ein Datenbanksystem (DBS) wie MySQL besteht aus einer oder mehrerer
Datenbanken (DB) und einem Datenbankmanagementsystem (DBMS)8. Eine
relationale Datenbank besteht aus Tabellen, in denen Daten in vorgegebenen
Datentypen gespeichert werden können. Bei der Erstellung einer Tabelle wird
die Struktur festgelegt, also die Anzahl der Spalten mit ihren jeweiligen Namen
(Attribute), sowie der jeweilige Datentyp (INT, DOUBLE, VARCHAR, BLOB, etc.).
Es können bestimmte Zwangsbedingungen, die sogenannten „Contraints“, auf
Attribute gelegt werden, wie beispielsweise „Primary Key“, welcher zur
eindeutigen Identifizierung einer Zeile (eines Datensatzes) dient. Weiterhin gibt
es sogenannte „Foreign Key“-Contraints, wobei ein Attribut einer Tabelle auf
ein anderes Attribut in einer anderen Tabelle verweist und somit eine logische
Verknüpfung von Tabellen realisiert werden kann. Durch eine „Foreign Key“Option kann dafür gesorgt werden, dass bei einer Änderung oder beim Löschen
eines Attributs in einer referenzierten Tabelle die gleichen Änderungen auch in
der aktuellen Tabelle übernommen werden. Das DBMS sorgt für die Einhaltung
der Contraints und ermöglicht einen reibungslosen Ablauf von Transaktionen.
Die Abfragesprache SQL (Structured Query Language) ermöglicht das Erstellen
von Tabellen, das Einfügen, Löschen und Ändern von Datensätzen (Updates)
und die Abfrage von Datensätzen (Queries). In unserem Fall wird ein PHP-Skript
benutzt um eine Datenbankverbindung herzustellen. Des Weiteren kann man
somit Abfragen und Aktualisierungsanforderungen an die Datenbank schicken
und die Daten weiter verwerten.
7
8
http://www.mysql.de/why-mysql/marketshare/
Skript zur Vorlesung Datenbanken 2005 Sylvia Sieprath
7
2.5 Smarty
Smarty ist eine Template-Engine für PHP, und soll die Anzeige (durch HTML und
CSS) von der Anwendungslogik trennen. Eine Template-Engine sorgt dafür, dass
in einer Datei befindliche Platzhalter (in diesem Fall Smarty-Variablen)
dynamisch mit Werten gefüllt werden können9. Damit vermeidet man, dass im
PHP-Skript Zeilen, wie
echo“<table name=\“tabelle\“>;
gefolgt von Logik, wie zum Beispiel einer Schleife, die die einzelnen
Tabellenzeilen ausfüllt
foreach($array as $element) echo“<td>$element</td>“;
wiederholt auftauchen.
Smarty selbst verfügt über rudimentäre Logik- und Schleifenoperationen und
ermöglicht ein einfaches Einbinden von HTML-Dokumenten. Innerhalb der
Dokumente kann mittels eigener Syntax auf die im PHP-Skript zugewiesenen
Variablen zugegriffen werden.
9
http://www.smarty.net/about_smarty
8
3.
Bergbautechnischer Hintergrund
Das folgende Kapitel behandelt den bergbautechnischen Hintergrund um einen
Einblick in die Problematik der Staubemissionen im Tagebau zu bekommen.
Die Kohlegewinnung im Tagebau erfolgt entweder im Bohr- und
Sprengverfahren oder im sogenannten Reißverfahren. Beim Bohr- und
Sprengverfahren werden zuerst Sprengbohrlöcher in das Flöz gebohrt, welche
anschließend mit Sprengstoff beladen werden. Anschließend erfolgt die
Sprengung der abzubauenden Kohle. Im Reißverfahren hingegen wird die Kohle
mit speziellen Betriebsmitteln aus dem Kohlenflöz gelöst und anschließend mit
Baggern verladen. Bei beiden Verfahren entstehen somit sehr viele Emissionen,
wie beispielsweise Staub, die die Umwelt und Gesundheit stark gefährden
können.
Abbildung 2 Kohlentagebau in Vietnam (Quelle: Institut für Bergbaukunde 1, RWTH Aachen)
9
Um die Staubemissionen zu reduzieren, gibt es für jede Bergbauaktivität, bei
der Staub entstehen kann, eine oder mehrere Staubverminderungsmethoden.
Zum Beispiel kann beim Transport der Kohle eine übermäßige
Staubentwicklung verringert werden, indem die Transportwege asphaltiert
werden, oder alternativ die Fahrbahnen mit Wasser, welches den Staub bindet,
besprüht werden.
Dabei
weisen
die
verschiedenen
Staubverminderungsstrategien
unterschiedliche Emissionsreduzierungsfaktoren, diverse Anschaffungs- und
Unterhaltskosten auf.
Alle Parameter, die sowohl in den Aktivitäten, Staubverminderungsstrategien
und Kosten aufzufinden sind, besitzen evaluierte Standardwerte (Default
Parameter), sollen jedoch auch individuell an das eigene Unternehmen
anpassbar sein.
Das „Decision Support System“ soll dem Benutzer dabei helfen, aus der Vielzahl
der Möglichkeiten eine passende Lösung für das eigene Bergbauunternehmen
zu finden, um somit eine langfristige Planung der Staubminderungsstrategien
zu realisieren.
10
4.
Ziele und Aufgaben
Im folgenden Abschnitt werden die Ziele und Aufgaben für das Softwareprojekt
definiert und erläutert.
4.1 Der GUI-Entwurf als Entwicklungsgrundlage
Der GUI-Entwurf der Ingenieure soll als grobe Richtlinie zur Entwicklung der
Templates dienen. Daraus lassen sich strukturelle und inhaltliche Aspekte
erschließen, die zur Anforderungsanalyse dienen.
Abbildung 3 GUI-Entwurf: Projektdaten (Quelle: Institut für Bergbaukunde 1, RWTH Aachen)
Die in der Abbildung gezeigte Eingabemaske für die Projektdaten besteht aus 3
Modulen:
- allgemeine Projektinformationen
- Informationen zu dem Bergbauunternehmen
- und lokale Daten.
11
Abbildung 4 GUI-Entwurf: Aktivitätsauswahlfenster (Quelle: Institut für Bergbaukunde 1, RWTH
Aachen)
Im Aktivitätsauswahlfenster kann der Benutzer zwischen verschiedenen
Aktivitäten wählen, welche in seinem Unternehmen auch tatsächlich benutzt
werden. Beispielsweise gibt es diverse Methoden um die abgebaute Kohle zu
transportieren, entweder per Förderband oder mittels eines Transportlasters.
12
Abbildung 5 GUI-Entwurf: Mitigationsmethoden (Quelle: Institut für Bergbaukunde 1, RWTH Aachen)
Nach Auswahl der Aktivitäten hat der Benutzer die Möglichkeit, für eine
spezifische Aktivität, eine oder mehrere Flächen festzulegen, in der diese
Aktivität stattfindet und dort die benötigten Flächendaten einzutragen.
Weiterhin können eine oder mehrere Staubminderungsmethoden, die für die
gewählte Aktivität und die festgelegten Flächen benutzt werden soll,
ausgewählt
werden
und
die
Standardparameter
für
die
Staubminderungsmethoden angepasst werden.
13
4.2 Planung der Software als Webapplikation mit Datenbank
Ziel dieses Softwareprojektes ist eine integrierte Webapplikation mit MySQL
Datenbank. Die Vorteile eines webbasierten „Decision Support Systems“ sind:
-
keine lokale Installation nötig
keine lokalen Softwareupdates notwendig
plattformunabhängig
Änderungen / Updates können zentral verwaltet und überwacht werden
Ingenieure können die aktuellen Ergebnisse aus Forschung und
Entwicklung in das „Decision Support System“ einfließen lassen
Die eingegebenen Daten des Benutzers sollen in der Session gespeichert,
serialisiert und dann in der Datenbank abgelegt werden, um Datenpersistenz
sicherzustellen. Die Session kann dann durch Deserialisierung der Daten aus
der Datenbank wiederhergestellt (geladen) werden.
Weiterhin sollen dynamische Templates benutzt werden, deren Struktur und
Inhalt aus der Datenbank generiert werden. Ein großer Vorteil besteht darin,
dass bei Änderungen von Formularen oder Parametern durch die Ingenieure
nur das Datenbankmodell geändert werden muss, um dadurch das manuelle
Anpassen der Skripte weitestgehend vermeiden zu können.
5.
Umsetzung im Projekt
Der folgende Abschnitt befasst sich mit der softwaretechnischen Umsetzung
der Anforderungen und Ziele im Projekt.
5.1
Datenbankmodell
14
Abbildung 6 Datenbankmodell vollständig (MySQL Workbench 5.2 CE)
15
5.1.1 Projektdaten
Abbildung 7 Projektdatentabellen (MySQL Workbench 5.2 CE)
Tabellen: project, mining info, local info, meteorological info
Die Projektdaten werden semantisch in Tabellen untergliedert, so dass die
Ingenieure später leichter Änderungen in den verschiedenen Modulen
vornehmen können. Die Tabelle „project“ besteht beispielsweise aus folgenden
Spalten: einem Primärschlüssel „ID“, einem Namen für das Projekt, einem Start
und Enddatum für das Projekt, einem Gesamtbudget und einer Spalte für die
Währung, in welcher später gerechnet werden soll. Die Wahl des Datentyps der
einzelnen Spalten bestimmt den HTML-Input-Typ im Template und ist daher
entscheidend für die Darstellung verantwortlich. Die Spalte „currency“ hat zum
Beispiel den Datentyp „ENUM“, der dann im Template als HTML-Radio-Button
erscheint.
5.1.2 Aktivitäten
Abbildung 8 Aktivitätstabellen (MySQL Workbench 5.2 CE)
Tabellen: activity category, activity subcategory, activity
16
Die Aktivitäten werden in Kategorien, Subkategorien und in die einzelnen
Aktivitäten untergliedert und mit Hilfe von Mappingtabellen semantisch
miteinander verknüpft, um die aufeinanderfolgenden Auswahlmöglichkeiten
im Template steuern zu können.
5.1.3 Flächen (Areas)
Abbildung 9 Flächentabelle (MySQL Workbench 5.2 CE)
Tabelle: „areas“
Die Tabelle „areas“ beinhaltet Namen und Messdaten der Flächen, in denen
Aktivitäten stattfinden. Eine Aktivität kann 1 bis n Flächen „benutzen“ und ist
daher in einer Mappingtabelle mit der Aktivitätstabelle verbunden.
5.1.4 Mitigationsmethoden
Kostenparameter
(Staubminderungsmethoden)
Abbildung 10 Mitigationsmethoden- und Parametertabelle (MySQL Workbench 5.2 CE)
17
und
Tabellen: mitigation methods, mitmet param values
Die Tabelle “mitigation_methods” beinhaltet die Namen aller
Staubminderungsmethoden, den Typ dieser Methoden und deren
Emissionsreduzierungsfaktoren. Die Tabelle „mitmet_param_values“ beinhaltet
alle zu den Mitigationsmethoden zugehörigen Kostenparameter, deren
Standardwerte
(default
values)
und
deren
Einheit.
Die
Mitigationsmethodentabelle ist mit Hilfe einer Mappingtabelle mit der
Aktivitätstabelle verbunden, um so mittels ID die zu einer Aktivität gehörigen
Staubminderungsmethoden zu speichern.
5.1.5 Templatetypen
Abbildung 11 Templatetypentabelle (MySQL Workbench 5.2 CE)
Tabelle: template type
Die Tabelle Template Type bestimmt, ob aus einer Tabelle ein Template
generiert werden kann und von welchem Typ dieses Template sein soll. Die
verschiedenen Templatetypen werden als „ENUM“ abgespeichert. Aus der
Tabelle „project“ wird beispielsweise ein Formulartemplate erzeugt, aus der
Tabelle „activity_category“ wird ein Selectiontemplate generiert.
18
5.2
Die einzelnen Templates und deren Inhalt
5.2.1 Das Selectiontemplate (Auswahlvorlage)
Das Selectiontemplate bietet eine einfache Auswahlmöglichkeit, indem die
auswählbaren Felder als Hyperlink aufgelistet und dargestellt werden. So kann
der Benutzer zwischen den einzelnen Webseiten navigieren. Mittels SQL Query
werden die Tabellenspalten geholt, in ein Array gespeichert, Smarty
zugewiesen und dann mit einer foreach Schleife durchlaufen und im Template
als HTML-Hyperlink dargestellt.
5.2.2 Das Formtemplate (Formularvorlage)
Bei dem Formtemplate wird aus einer Datenbanktabelle ein HTML-Formular
generiert und in das Template geladen. Die Struktur der Tabelle bestimmt
somit das Aussehen des HTML-Formulars, indem alle Spaltennamen der Tabelle
(bis auf Ausnahmen, wie zum Beispiel „ID“) als Label im Formular dargestellt
werden. Direkt neben dem Label befindet sich dann ein HTML-Inputfeld, in
welches der Benutzer Werte eintragen, oder eine Auswahl treffen kann. Die Art
der Inputfelder wird dabei vom Datentyp in der Datenbank festgelegt. Falls der
Datentyp „ENUM“ entspricht, wird ein HTML-Radio-Button mit den StringWerten des „Enums“ aus der Datenbank erzeugt. Wenn der Datentyp „INT“
oder „DOUBLE“ entspricht, wird daraus ein HTML Inputfeld des Typs „number“
erzeugt, andernfalls wird der HTML Inputtype auf „text“ gesetzt.
Abbildung 12 Codebeispiel aus der Datei „Template.html“ (NetBeans 7.1)
19
5.3 Ablaufsteuerung in PHP
In der Datei index.php wird im GET Parameter der URL nach der aktuell
darzustellenden Seite gesucht und entsprechende Aktionen, wie zum Beispiel
Projekt auswählen oder Projekt laden behandelt, indem benötigte
Datenbankzugriffe ausgeführt, die Inhalte Smarty Variablen zugewiesen und im
Template dargestellt werden.
Abbildung 13 Codebeispiel aus der Datei „index.php“ (NetBeans 7.1)
In der Datei acceptFormular.php wird im GET Parameter nach der Seite
gesucht, von welcher der Benutzer kommt, dann ein neuer GET Parameter
mittels
header(„Location: ../../index.php?current=“neuer GET Parameter“)
angehangen und das darauffolgende Template geladen. Somit kann der Ablauf
der Templates gesteuert werden. Beispielsweise soll der Benutzer nach Eingabe
der Projektdaten zum Auswahltemplate für die Aktivitätskategorien gelangen,
also wird in der Datei acceptFormular.php die Variable $from in einem Switch
Block überprüft und falls $from „project“ entspricht, die Funktion
header(„Location: ../../index.php?current=selectActivityCategory“);
ausgeführt und dadurch das Template geladen.
20
Abbildung 14 Codebeispiel aus der Datei „acceptFormular.php“ (NetBeans 7.1)
21
6.
Ausblick
Mit dieser Webapplikation und der Verwendung dynamischer Templates ist
eine benutzerfreundliche Planung der Staubminderungsmethoden für
Tagebauunternehmen möglich.
Da die Ingenieure eine Möglichkeit brauchen, ohne Programmierkenntnisse
inhaltliche Änderungen im „Decision Support System“ vornehmen zu können,
ist ein Backend zur Steuerung der Datenbankeinträge geplant. Somit können
später einzelne Werte geändert, Methoden angepasst und Parameter
hinzugefügt werden.
Weiterhin könnte man bei Bedarf der Applikation neue Funktionalitäten
hinzufügen, wie zum Beispiel Ergebnisse als PDF exportieren oder
Ergebnisse/Datenblätter per E-Mail versenden.
22
Quellenverzeichnis
http://de.wikipedia.org/wiki/Webanwendung
http://de.wikipedia.org/wiki/Hypertext_Markup_Language
http://de.wikipedia.org/wiki/PHP
http://w3techs.com/technologies/overview/programming_language/all
http://www.php.net/manual/de/refs.database.php
http://de.php.net/extensions
http://de.wikipedia.org/wiki/MySQL
http://www.mysql.de/why-mysql/marketshare/
Skript zur Vorlesung Datenbanken 2005 Sylvia Sieprath (rz.rwth-aachen.de)
http://www.smarty.net/about_smarty
Institut für Bergbaukunde I, RWTH Aachen University
23
Abbildungsverzeichnis
Abbildung 1 – Client-Server Schema .................................................................. 5
Abbildung 2 – Kohlentagebau in Vietnam .......................................................... 9
Abbildung 3 – GUI-Entwurf: Projektdaten ........................................................ 11
Abbildung 4 – GUI-Entwurf: Aktivitätsauswahlfenster ..................................... 12
Abbildung 5 – GUI-Entwurf: Mitigationsmethoden .......................................... 13
Abbildung 6 – Datenbankmodell vollständig .................................................... 15
Abbildung 7 – Projektdatentabellen ................................................................. 16
Abbildung 8 – Aktivitätstabellen ...................................................................... 16
Abbildung 9 – Flächentabelle ........................................................................... 17
Abbildung 10 – Mitigationsmethoden- und Parametertabelle ......................... 17
Abbildung 11 – Templatetypentabelle ............................................................. 18
Abbildung 12 – Codebeispiel aus der Datei „Template.html“ ........................... 19
Abbildung 13 – Codebeispiel aus der Datei „index.php“ .................................. 20
Abbildung 14 – Codebeispiel aus der Datei „acceptFormular.php“ .................. 21
24
Eidesstattliche Erklärung
Hiermit versichere ich, dass ich die Seminararbeit mit dem Thema
Erstellung dynamischer Templates anhand eines Datenbankmodells für
ein webbasiertes „Decision Support System“ zur effizienten Kontrolle der
Staubemissionen im Kohlentagebau
Selbstständig verfasst und keine anderen als die angegebenen Quellen und
Hilfsmittel benutzt habe, alle Ausführungen, die anderen Schriften wörtlich
oder sinngemäß entnommen wurden, kenntlich gemacht sind und die Arbeit in
gleicher oder ähnlicher Fassung noch nicht Bestandteil einer Studien- oder
Prüfungsleistung war.
25
Herunterladen