Die Problemstellung dieser Arbeit ist, dass ein webbasiertes Umfragesystem mit unterschiedlichen Umfragen und Antwortmöglichkeiten entwickelt werden soll. Dem Benutzer soll die Möglichkeit gegeben werden, eine oder mehrere Antwortmöglichkeiten auszuwählen sowie die Umfrageergebnisse einsehen zu können. Das Ziel dieser Arbeit ist eine Implementierung der Anwendung auf Basis von Hypertext Preprocessor (PHP) in Verbindung mit einer MySQL Datenbank.
Der Zugriff auf die Anwendung soll über einen Webbrowser stattfinden. Darüber hinaus soll es dem Administrator ermöglicht werden, sich mittels Benutzername und Passwort zu authentifizieren. In diesem geschützten Bereich können neue Umfragen mit unterschiedlichen Antwortmöglichkeiten hinzugefügt werden.
Im Grundlagenteil wird auf wichtige Vorüberlegungen eingegangen, die vor der Erstellung des Datenbankmodells und der Anwendung gemacht werden müssen. Außerdem wird ein Überblick über die Skriptsprache PHP und dem Datenbanksystem MySQL geschaffen sowie auf verwendete Frameworks. Im Hauptteil werden Aufbau und Implementierung der Datenbank sowie der Anwendung behandelt. Der Schluss beinhaltet eine Zusammenfassung, eine kritische Würdigung und einen Ausblick auf weitere Optimierungen.
Inhaltsverzeichnis
1 Einleitung
1.1 Problemstellung und Ziel dieser Arbeit
1.2 Aufbau der Arbeit
2 Grundlagen
2.1 Vorüberlegungen
2.2 Verwendete Hilfswerkzeuge
2.3 MySQL Datenbank
2.4 Programmiersprache PHP
2.5 Datenbank Schnittstelle
2.6 CSS Framework
2.7 Salt and Pepper Verfahren
3 Datenbank
3.1 UML Modell
3.2 Relationen Modell
3.3 Storage Engines und Transaktionen
3.4 Unterschied MyISAM und InnoDB
3.5 SQL DDL
4 Implementierung
4.1 Design Pattern
4.1.1 Konfiguration
4.1.2 Datenbankanbindung
4.1.3 MVC
4.2 Controller
4.3 View
4.4 Modell
4.4.1 SQL-Injection
4.4.2 Methoden
5 Zusammenfassung
5.1 Kritische Würdigung
5.2 Ausblick
Zielsetzung & Themen
Das Hauptziel dieser Arbeit ist die Entwicklung eines webbasierten Umfragesystems auf Basis von PHP und einer MySQL-Datenbank, welches Benutzern die Teilnahme an Umfragen sowie die Einsicht in Ergebnisse ermöglicht, während ein administrativer Bereich die Erstellung neuer Umfragen erlaubt. Die Arbeit fokussiert sich dabei auf eine saubere Softwarearchitektur, hohe Datensicherheit und eine performante Datenbankanbindung.
- Implementierung eines webbasierten Systems zur Verwaltung von Umfragen.
- Anwendung des Model-View-Controller (MVC) Entwurfsmusters zur Code-Strukturierung.
- Sicherung der Datenbank gegen SQL-Injection durch den Einsatz von Prepared Statements.
- Modellierung einer effizienten, relationalen Datenbankstruktur unter Beachtung der 3. Normalform.
- Integration von Sicherheitsverfahren wie dem Salt and Pepper Verfahren zur Passwortverwaltung.
Auszug aus dem Buch
3.4 Unterschied MyISAM und InnoDB
MyISAM ist die Storage Engine, die für eine Datenbank bis zur MySQL Version 5.1 standardmäßig voreingestellt wird und muss somit beim Definieren der Tabellen nicht explizit angegeben werden. Ab der MySQL-Version 5.5 ist die InnoDB Storage Engine als Standard voreingestellt. Allerdings ist die MyISAM Storage Engine für manche Anwendungsbereiche nicht ausreichend. In Anwendungsbereichen in denen sehr viel Wert auf Datenqualität gelegt und mit Multi-Row-Insert gearbeitet wird, ist die InnoDB Storage Engine zu bevorzugen. Denn die InnoDB Storage Engine arbeitet nach dem ACID-Prinzip, was bei der MyISAM Storage Engine vergebens gesucht wird, da dieses Verfahren nicht implementiert ist. Das heißt, wenn mittels einem Multi-Row-Insert mehrere Inhalte gleichzeitig in eine Tabelle unter Verwendung der InnoDB geschrieben werden und ein Fehler auftritt, wird die gesamte Verarbeitung mittels ROLLBACK rückgängig gemacht, bzw. nicht ausgeführt. Somit bleibt die Tabelle leer und eine Transaktionssicherheit wird erreicht. Darüber hinaus bietet die InnoDB Storage Engine gegenüber der MyISAM Storage Engine mehr Performance, was bei großen Datenbanken mit vielen Einträgen ein sehr wichtiges Kriterium darstellt. Des Weiteren gestaltet sich das Locking Verfahren der beiden Engines unterschiedlich. Der Datensatz bei der InnoDB wird nur der entsprechende Datensatz mittels row locking gesperrt, wenn ein UPDATE, bzw. INSERT Befehl ausgeführt wird. Die MyISAM Storage Engine sperrt in diesem Fall mittels Table-Locking die gesamte Tabelle.
Zusammenfassung der Kapitel
1 Einleitung: Dieses Kapitel definiert die Problemstellung eines webbasierten Umfragesystems, formuliert die Zielsetzung der Arbeit und gibt einen Überblick über deren Aufbau.
2 Grundlagen: Hier werden die verwendeten Hilfswerkzeuge, die Skriptsprache PHP, das Datenbanksystem MySQL sowie grundlegende Konzepte wie CSS-Frameworks und das Salt and Pepper Verfahren für die Passwortsicherheit erläutert.
3 Datenbank: Dieser Teil befasst sich mit der Modellierung der Datenbank, dem relationalen Modell, der Wahl der Storage Engine sowie der praktischen Umsetzung mittels SQL DDL.
4 Implementierung: In diesem Kapitel wird die technische Umsetzung der Anwendung beschrieben, insbesondere die Anwendung von Design Patterns, das MVC-Architekturmodell, die Datenbankanbindung sowie spezifische Methoden im Modell und View.
5 Zusammenfassung: Hier werden die Ergebnisse der Arbeit reflektiert, kritisch gewürdigt und ein Ausblick auf mögliche zukünftige Optimierungen gegeben.
Schlüsselwörter
PHP, MySQL, Webbasierte Umfragen, Datenbankanbindung, MVC-Pattern, SQL-Injection, Prepared Statements, Transaktionssicherheit, InnoDB, MyISAM, Salt and Pepper Verfahren, Webentwicklung, Datenmodellierung, Benutzeroberfläche, Administrator-Bereich.
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Es geht um die Entwicklung einer webbasierten Applikation zur Erstellung und Durchführung von Internet-Umfragen unter Verwendung von PHP und MySQL.
Was sind die zentralen Themenfelder der Arbeit?
Die Arbeit behandelt Datenbankmodellierung, Web-Programmierung, Softwarearchitektur (MVC), Datensicherheit und die Implementierung von administrativen Funktionen.
Was ist das primäre Ziel der Arbeit?
Das Ziel ist die Bereitstellung eines funktionstüchtigen Umfragesystems, das Benutzern eine einfache Teilnahme ermöglicht und Administratoren die bequeme Verwaltung der Umfragen gestattet.
Welche wissenschaftliche Methode wird verwendet?
Die Arbeit folgt einem softwaretechnischen Ansatz, der Analyse, Modellierung (UML), Design (MVC) und die praktische Implementierung der Anwendung umfasst.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in die Datenbank-Konzeption inklusive Normalisierung und die konkrete Programmierung der Anwendung unter strikter Trennung von Logik und Darstellung.
Welche Schlüsselwörter charakterisieren die Arbeit?
Wichtige Begriffe sind PHP, MySQL, MVC, SQL-Injection, Prepared Statements, Datensicherheit und relationale Datenbankmodelle.
Warum wird InnoDB anstelle von MyISAM verwendet?
InnoDB wird aufgrund der Unterstützung für Transaktionen (ACID-Prinzip), einer höheren Datenqualität bei Schreibvorgängen und der verbesserten Performance bei großen Datenmengen bevorzugt.
Wie wird die Sicherheit gegen SQL-Injection gewährleistet?
Die Sicherheit wird durch den konsequenten Einsatz von Prepared Statements erreicht, welche SQL-Befehle und Parameter voneinander trennen und somit die Ausführung bösartiger SQL-Fragmente verhindern.
Welches Design-Pattern wurde für die Konfiguration verwendet?
Es wurde das Singleton-Pattern genutzt, um sicherzustellen, dass nur ein einziges Objekt für die Konfiguration existiert und diese beim Instanziieren global verfügbar ist.
- Quote paper
- Eugen Grinschuk (Author), Daniel Falkner (Author), 2013, Erstellung einer PHP-Anwendung für Internet-Umfragen. Einführung in die Datenbank-Programmierung mit MySQL und PHP, Munich, GRIN Verlag, https://www.hausarbeiten.de/document/312402