- HTML-Formulare: GUI-Elemente, Parameterübergabe, get- versus post-Methode
- Ausführung von SQL-Anweisungen: Datenbankverbindung, Aufbereitung von SQL-Anweisungen, Ausführen von SQL-Anweisungen mit und ohne Rückgabemenge
- dynamische Webseiten: Zugriff auf einzelne Datensätze des Ergebnisses einer Abfrage, Darstellung der Ergebnismenge einer Abfrage in einem HTML-Dokument
erhöhtes Niveau (Leistungskurs)
- Datensicherheit: Benutzerverwaltung und Zugriffsberechtigungen
Für diese Phase dürft ihr eure Datenbank aus dem Mini-Projekt als Ausgangspunkt verwenden, falls ihr dieses gemacht habt. Wenn ihr das tut, dokumentiert deutlich, was vom Mini-Projekt stammt und was geändert wurde.
- Ihr entwerft ein Datenbank-Schema im ER- und Relationenmodell. Dieses Datenbank-Schema soll den folgenden Anforderungen entsprechen:
- Es soll ein Alltagsproblem abbilden, wie z.B. eine Bücherausleihe, DVD-Sammlungs-Inventar, Spotify-Playlisten-Verwaltung, etc.
- Es soll mindestens vier und höchstens acht Entitätstypen enthalten.
- Es soll pro Entitätstyp sinnvolle Attribute enthalten.
- Es soll mehrere
1:n
undm:n
-Beziehungen enthalten.
- Ihr setzt die modellierte Datenbank mit SQLiteStudio um.
- Erstellt die Tabellen entsprechend des Relationenmodells, indem ihr
- für die Attribute die passenden Datentypen wählt
- und die passenden Primär- und Fremdschlüssel setzt.
- Füllt die Tabellen mit sinnvollen Beispieldaten.
Nun entwerft ihr eine PHP-Website, die den folgenden Anforderungen entspricht:
Pflichtanforderungen:
- Es soll eine einzelne Seite für jeden Entitätstypen geben, auf der alle Entitäten in einer Tabelle angezeigt werden (z.B. eine Seite, die alle Lieder in der Spotify-Sammlung mit allen ihren Attributen tabellarisch auflistet).
- Es soll eine Detail-Seite für jeden Entitätstypen geben, auf der die Details einer Entität sowie alle in Beziehung stehenden Entitäten angezeigt werden (z.B. eine Seite für einen bestimmten Autor mit Name, Alter, Verleger und so weiter, auf der auch die von diesem Autor geschriebenen Bücher angezeigt werden)
- Es soll mindestens zwei sinnvolle Seiten geben, die Aggregatsfunktionen und Gruppierungen verwenden, wie z.B. eine Seite, die die durchschnittliche Länge aller DVDs nach den verschiedenen Jahrzehnten gruppiert darstellt und eine Seite, die die zehn am häufigsten auftretenden Schauspieler auf den DVDs ermittelt.
- Es soll eine Seite geben, auf der die Ergebnisse einer komplexen Abfrage mit Joins angezeigt werden.
- Es soll eine Hauptseite geben, auf der alle anderen Seiten verlinkt sind.
mögliche Bonusanforderungen (nicht Pflicht!):
- Die Möglichkeit, neue Entitäten anzulegen, bestehende zu bearbeiten und zu löschen
- Ein ansprechendes Design der Website
- … Denkt euch etwas eigenes aus
Das Webdatenbank-Projekt wird Teil eurer mündlichen Note sein. Wie ihr seht, könnt ihr 110% erreichen. Ihr könnt also mit einer Bonusanforderung kleinere "Fehler" oder "Probleme" bei den anderen Anforderungen kompensieren.
Punkte | Beschreibung |
---|---|
50% | Erfüllung aller Anforderungen aus Phase 1 |
50% | Erfüllung aller Pflichtanforderungen aus Phase 2 |
10% | Erfüllung einer Bonusanforderung aus Phase 2 |
Ihr sollt das Webdatenbank-Projekt mit XAMPP umsetzen. XAMPP ist ein Programm, mit dem ihr u.a. einen Webserver auf eurem Rechner installiert.
Der Webserver wird mit PHP programmiert.
- Youtube-Playlist (Hauptsächlich die Videos 2, 3, 4, 6, 8, 10, 11)
- Der Zugriff von PHP auf die Datenbank läuft mit PDO: Text-Tutorial, Dokumentation
Die Diagramme können als Dateien aus Diagrammeditoren, Screenshots, Scans oder Fotos abgegeben werden. Der Rest des Projekts (Datenbank und PHP-Dateien) werden als ZIP-Ordner abgegeben.
Diese Beispiele beziehen sich nur auf Phase 2!
- simple.zip - Mindestanforderungen
- extended.zip - "Optimale" Anforderungen