# M151 - Datenbanken in Web-Applikation einbinden. [> **Modulidentifikation** ](https://www.modulbaukasten.ch/modul/1a75c9da-716c-eb11-b0b1-000d3a830b2b) [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*<-:](./erklaeren-der-themen.txt) 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](./weitere_details_zur_schriftlichen_pruefung.txt)
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: --> Angebot "freeStyle"

### 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](./mindestbedingungen-fuer-note-4.7.txt) #### 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 1. ) **Oracle** Express: Datenbankanbindung programmieren 2. ) **PostgreSQL**: Datenbankanbindung mit transaktionssicheren Abfragen programmieren 3. ) **MSSQL Express**: Datenbankanbindung programmieren 4. ) **MySQL/MariaDB**: Innodb Tabellen mit transaktionssicheren Abfragen und MVC programmieren 5. ) **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 | | | | | |