mirror of
https://gitlab.com/harald.mueller/aktuelle.kurse.git
synced 2024-11-30 13:41:58 +01:00
131 lines
7.6 KiB
Markdown
131 lines
7.6 KiB
Markdown
# M151 - Datenbanken in Web-Applikation einbinden.
|
|
|
|
[> **Modulidentifikation** ](https://www.modulbaukasten.ch/modul/1a75c9da-716c-eb11-b0b1-000d3a830b2b)
|
|
|
|
|
|
[TOC]
|
|
|
|
<br>
|
|
<br>
|
|
|
|
## Ablaufplan <mark>AP20d</mark> (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) <br> LB2 (schriftlich, 90 min) <br> 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) |
|
|
|
|
<br>
|
|
<br>
|
|
<mark>
|
|
**Grundsätzlich sind in diesem Modul Einzelarbeiten zu machen. Das heisst, dass jede Person (seine/ihre) eigene Abgabe macht und auch selber/einzeln abgibt. Gemeinsames Recherchieren und der Austausch von Techniken und Erkenntnisse sind, ausser bei der LB2 natürlich, explizit erwünscht.**
|
|
</mark>
|
|
<br>
|
|
<br>
|
|
|
|
|
|
## 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.
|
|
|
|
<br>
|
|
<br>
|
|
|
|
## LB2 (25%, schriftliche Prüfung, 90 min)
|
|
Am **Tag 5** findet zu Beginn des Halbtages eine schriftliche Prüfung statt.
|
|
|
|
Gut für die Vorbereitung ist, wenn im Erklärdokument die Themen schon eingehend behandelt worden sind.
|
|
|
|
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)
|
|
<br>
|
|
<br>
|
|
|
|
## 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 eine datenbasierte Software, 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"
|
|
<br><https://infinityfree.net/>
|
|
<br><https://www.heroku.com/>
|
|
<br>Wer selber einen eigenen Host(-Anbieter) hat, oder ein Account vom Betrieb benutzen kann, darf das natürlich darauf machen.
|
|
|
|
Eine Abgabe auf "localhost", also nicht über das Internet auf einem Webserver, gibt Abzüge bei der Bewertung.
|
|
|
|
### Grundanforderung (bis Note 4.7)
|
|
- Dynamisch generierte Website (z.B. in PHP o.ä.) mit 1 Datenbankanbindung und 1 Filedatenhaltung 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)
|
|
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
|
|
### Bewertungsraster
|
|
| Thema/Aufgabe | (-0.3) | Note 4.0 | (+0.3) |
|
|
| ----------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
|
| **Aufgabe 1** <br/>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 <br/>2. Benutzerverwaltung mit verschiedenen Rechten <br/>3. Online-Administration der Websiteinhalte <br/>4. Formularüberprüfung | Datenstruktur und Datentypen wurden angelegt. Umfangreiches Benutzerkonzept erstellt und zumindest teilweise realisiert (z. B. Benutzerverwaltung über DB-Tabellen). |
|
|
| **Aufgabe 2** <br/>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** <br/>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** <br/>Eigene Funktionen - Eigene Klassen | Keine eigenen Funktionen entwickelt | Mehrere eigene Funktionen entwickelt und sinnvoll eingesetzt | Umfangreiches Funktionskonzept umgesetzt |
|
|
| **Aufgabe 5** <br/>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** <br/>Läuft im Internet auf (Sub-)Domain | nur lokal | Internet mit 1 DB | Internet mit 2 DBs |
|
|
| **Bonus 2** <br/>DB-Switch | - | statisch | dynamisch |
|
|
| **Bonus 3** <br/>Einbindung externen Schnittstelle | - | - | z.B. Zahlungssystem wie TWINT oder Datatrans eingebunden und funktioniert |
|
|
| | | | |
|