.. | ||
docs | ||
erklaeren-der-themen.txt | ||
mindestbedingungen-fuer-note-4.7.txt | ||
README.md | ||
weitere_details_zur_schriftlichen_pruefung.txt |
M151 - Datenbanken in Web-Applikation einbinden.
[TOC]
Ablaufplan AP20d (Donnerstag morgens)
Tag | Datum | Thema |
---|---|---|
-1- | 25.08. | Einführung und Start LB1 |
-2- | 01.09. | Arbeit an LB1 |
-3- | 08.09. | Arbeit an LB1 |
-4- | 15.09. | Arbeit an LB1 |
-5- | 22.09. | Abgabe LB1 (Erklärdokument) LB2 (schriftlich, 90 min) Start LB3 |
-6- | 29.09. | Arbeit an LB3 |
-7- | 06.10. | Arbeit an LB3 |
--- | --- | Herbstferien |
-8- | 27.10. | Arbeit an LB3 |
-9- | 03.11. | Arbeit an LB3 (Abschluss) |
-10- | 10.11. | Abgabe LB3 (einzeln) |
_Grundsätzlich sind Einzelarbeiten zu machen. Das heisst, dass jede Person eine (seine/ihre) Abgabe macht und aauch einzeln abgibt. Gemeinsames Recherchieren und der Austausch von Techniken und Erkenntnisse sind, ausser bei der LB2, explizit erwünscht._
LB1 (30%, Erklär-Dokument)
Als ersten Kompetenznachweis ist ein Erklärdokument, ähnlich eines Lehrbuchs oder gar eine kleine wissenschaftliche Arbeit, zu erstellen. Dabei sind folgende ->Themen<-: zu bearbeiten.
- 1 Design
- 2 Sicherheit
- 3 Realisierung
- 4 Change(-management)
- 5 Testing
Abgabetermin ist der Tag 5 08:15, vor der LB2
Es empfiehlt sich, die Themen im Erklärdokument so zu beschreiben, dass zugleich auch eine gute Vorbereitung für die schriftliche Prüfung LB2 gemacht wird. Es empfiehlt sich ebenso, die thematisierten Techniken auch selber auszuprobieren und zu dokumentieren, damit sie dabei auch gleichzeitig diese Teile in der praktischen Übung LB3 verwendet und angewendet werden können.
LB2 (25%, schriftliche Prüfung, 90 min)
Am Tag 5 findet zu Beginn des Halbtages eine schriftliche Prüfung statt. Folgende Themen weden geprüft:
- Multi-Tier-Architektur(en)
- Design-Phasen von Applikation und Datenbanken
- DB-Entwicklungsprozess ERM/ERD, SQL, DDL, DML, DCL, Tabellen, Views
- Ausgewählte PHP-Code-Stücke (z.B. zur DB-Anbindung)
Weitere Details
Gut für die Vorbereitung ist, wenn im Erklärdokument die Themen schon eingehend behandelt worden sind.
LB3 (45%, praktisches Projekt)
Für die praktische Übung ist eine Verwaltungs-WebApp in z.B. PHP oder ähnlichem mit 2 verschiedenen Datenbanken zu erstellen. Es kann dafür ein eigenes Thema (Sneaker- oder TShirt-Shop, Essenslieferdienst, Sporteventplanung, Ticket-Shop usw.) gewählt werden.
Es wird verlangt, dass ein Produkt mit mind. 10 Elementen/Artikeln in der DB mit Bestellmöglichkeit bis Rechnungstellung (ohne Bezahlmechanismus) gebaut wird. Zentral dabei ist, dass mindestens 2 unterschiedliche Daten-Haltungstechniken (Datenbank & Filedatenhaltung) angewendet werden.
Hosting mit Datenbanken
Mögliche / empfohlene Gratishosts mit Datenbanken:
https://www.bplaced.net/ --> Angebot "freeStyle"
https://infinityfree.net/
https://www.heroku.com/
Grundanforderung (bis Note 4.7)
- Dynamisch generierte Website (z.B. in PHP) mit 1 Datenbankanbindung programmiert.
- Statischer DB-Switch (hart codiert)
weitere Bedingungen/Mindestanforderungen für die Note 4.7
Adminbereich
- Verschlüsseltes Login mit Sessionüberprüfung
- Benutzerverwaltung mit verschiedenen Rechten
- Online-Administration der Websiteinhalte
- Formularüberprüfungen
Userbereich
- Navigation funktionsgerecht
- Sortieren möglich
- Zeitgerechte Usability (responsive, Steuer- und Anzeigeelemente)
Erweiterte Anforderungen (über Note 4.8)
- Mehr als eine Datenbank gleichzeitig implementiert
- ) Oracle Express: Datenbankanbindung programmieren
- ) PostgreSQL: Datenbankanbindung mit transaktionssicheren Abfragen programmieren
- ) MSSQL Express: Datenbankanbindung programmieren
- ) MySQL/MariaDB: Innodb Tabellen mit transaktionssicheren Abfragen und MVC programmieren
- ) Andere Datenbankanbindung programmieren (NoSQL, MongoDB, ..)
- Bonus: Dynamischer DB-Switch (ohne Code-Änderung)
- Bonus: Externe Schnittstelle implementiert (Zahlungssystem einbinden, z.B. TWINT)
Bewertungsraster
Thema/Aufgabe | (-0.3) | Note 4.0 | (+0.3) |
---|---|---|---|
Aufgabe 1 Adminbereich samt Login und Userbereich (mit und ohne Login) realisieren |
Aufgaben unvollständig. Daten wurden unvollständig oder gar nicht übernommen. Keine Benutzeridentifikation realisiert. Resultate sind für eine Anwendung unbrauchbar | 1. Verschlüsseltes Login mit Sessionüberprüfung 2. Benutzerverwaltung mit verschiedenen Rechten 3. Online-Administration der Websiteinhalte 4. Formularüberprüfung |
Datenstruktur und Datentypen wurden angelegt. Umfangreiches Benutzerkonzept erstellt und zumindest teilweise realisiert (z. B. Benutzerverwaltung über DB-Tabellen). |
Aufgabe 2 Datenbankserver mit transaktionssicheren Abfragen. (Oracle-Express, MSSQL-Express, MYSQL, Postgresql) |
Applikation ist nicht lauffähig, Daten werden nicht vollständig angezeigt, Navigation ist nicht anwendergerecht implementiert. | Anbindung Applikation und Datenbank ist funktionsfähig. Daten der DB können administriert werden. Transaktionssichere Abfragen wurden realisiert, Navigation ist möglich. | SQL der Datenbank angepasst. Sinnvolle, grafisch ansprechende Darstellung der Daten. Daten können sortiert werden. Navigation ist übersichtlich und funktionsfähig. |
Aufgabe 3 MVC, 2-Tier, 3-Tier, 4-Tier |
MVC nicht oder nur teilweise angewendet | MVC realisiert und funktionsfähig -> "läuft" | MVC realisiert und vorbildlich implementiert (bis ins Detail) |
Aufgabe 4 Eigene Funktionen - Eigene Klassen |
Keine eigenen Funktionen entwickelt | Mehrere eigene Funktionen entwickelt und sinnvoll eingesetzt | Umfangreiches Funktionskonzept umgesetzt |
Aufgabe 5 Anwendung testen |
Tests nicht oder nur wenig durchgeführt, kein Testkonzept, keine Testanleitung vorhanden | Tests wurden durchgeführt und dokumentiert. Testanleitung. Gefundene Fehler sind beschrieben. | Testkonzept vorhanden und durchgeführt. Testergebnisse sind dokumentiert und nachvollziehbar |
Bonus 1 Läuft im Internet auf (Sub-)Domain |
nur lokal | Internet mit 1 DB | Internet mit 2 DBs |
Bonus 2 DB-Switch |
- | statisch | dynamisch |
Bonus 3 Einbindung externen Schnittstelle |
- | - | z.B. Zahlungssystem wie TWINT oder Datatrans eingebunden und funktioniert |