aktuelle.kurse/m151
Harald G. Mueller 7681d5cd10 muh
2022-11-14 17:27:30 +00:00
..
docs muh 2021-09-20 08:34:12 +02:00
erklaeren-der-themen.txt muh 2021-09-29 15:38:15 +02:00
mindestbedingungen-fuer-note-4.7.txt muh 2021-08-09 12:49:39 +02:00
README.md muh 2022-11-14 17:27:30 +00:00
weitere_details_zur_schriftlichen_pruefung.txt muh 2021-09-20 07:21:39 +00:00

M151 - Datenbanken in Web-Applikation einbinden.

> Modulidentifikation

[TOC]



Ablaufplan AP20b (Dienstag morgens)

Tag Datum Thema
-1- 15.11. Einführung und Start LB1
-2- 22.11. Arbeit an LB1
-3- 29.11. Arbeit an LB1
-4- 06.12. Arbeit an LB1
-5- 13.12. Abgabe LB1 (Erklärdokument)
LB2 (schriftlich, 90 min)
Start LB3
-6- 20.09. Arbeit an LB3
--- --- Weihnachtsferien
-7- 10.01. Arbeit an LB3
-8- 17.01. Arbeit an LB3
-9- 24.01. Arbeit an LB3 (Abschluss)
-10- 31.10. Abgabe LB3 (einzeln)


**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.**

LB1 (30%, Erklär-Dokument)

Als ersten Kompetenznachweis ist ein Erklärdokument, ähnlich eines Lehrbuchs oder gar eine kleine wissenschaftliche Arbeit, zu erstellen. Sie erarbeiten selbstständig Themen, die folgend vorgegeben sind. Die Themen werden in einem Dokument behandelt, in dem sie zeigen, dass die die Inhalte vertieft verstanden haben.

Formale Kriterien

  • Titelblatt mit ihrem Namen, Auftrag und Datum
  • Header und Footer
  • Inhaltsverzeichnis
  • Referenzen und Quellenangaben. Sie müssen die Quellen und Zitat jeweils im Dokument ausweisen
  • Rechtschreibung und ganze Sätze
  • Pünktliche Abgabe und richtiger Dateiformat & Dateiname
  • Abgabe als PDF mit Dateiname: M151-LB1-Erklaerdokument-NACHNAME.pdf

Inhalt

Sie zeigen in ihrem Text, dass sie die Themen verstanden haben, indem Sie

  • den/die Grundgedanken klar und mit eigenen Worten beschreiben.
  • die Themen korrekt und richtig beschreiben
  • zeigen, dass Sie weitergehen können, als nur die nachfolgenden Leitfragen zu beantworten (z.B. Alternativen aufzeigen, etc.)

Dabei sind folgende Themen zu bearbeiten.

  • 1 "DESIGN"

    • wie sieht eine Multi-Tier-Architektur aus (Konzept)
    • welche Varianten gibt es (2-Tier, 3-Tier, 4-Tier, ...) und wie sehen die aus
    • was ist und wie sieht eine MVC-Architektur aus (Konzept)
    • was sind Layers und welche Verbindungen existieren
    • warum macht man das und was sind die Vor- und Nachteile
    • Gibt es eine hybride Form?
    • Wie sieht eine Architektur aus, in der mehr als ein Typ, mehr als ein Datenbankenhersteller parallel verwendet werden kann
  • 2 "SICHERHEIT"

    • Verweis auf Modul 183, bzw. Sie erstellen eine Zusammenfassung davon
  • 3 "REALISIERUNG"

    • Sie erklären was der konzeptionelle, der logische und der physische Datenbank-Design ist,
    • deren Nutzen, Hauptaufgabe und die Resultate aus diesen Phasen.
    • Sie erklären, wie man vom konzeptionellen zum logischen und zum physisches DB-Design kommt, und zwar letzteres ohne Generator-Tools zu benutzen.
    • Sie zeigen (u.a. mit Screen-Shots), wie sie auf der Datenbank
      den entsprechenden (Hilfs-)Client benutzen und wie Sie dort
      - Queries absetzen können
      - DB-Transaktionen anwenden können. In welchen Fällen ist dies sinnvoll?
      - Stored Procedures, Functions oder ähnliches umsetzen können. In welchen Fällen ist dies sinnvoll?
    • --> Geben sie konkrete Beispiele und belegen Sie ihre Beispielabfragen mit Screenshots.
    • Sie beschreiben die wichtigsten Eigenschaften der SQL, also der DDL, der DML und der DCL
    • Sie beschreiben, wie man Views macht (auch materialisierte Views) und wie man die verwenden kann und warum man das so macht / machen kann
  • 4 "CHANGE"(-management)

    • Wie machen Sie in der laufenden Entwicklung die Erweiterungen des DB-Modells
    • Wie macht man die Einführung von Relesases im laufenden (produktiven) Betrieb
    • Wie organisieren Sie Versionen und die zusammenarbeit im Team
      d.h. die Strategie der Branches in/mit Git, wie können Fixes und Weiterentwicklungen durchgeführt werden, ohne dass sie den aktuellen Live-Code unterbrechen/stören
  • 5 "TESTING"

    • Wie testet man während der Entwicklung und wie bei der Entwicklung im laufenden (produktiven) Betrieb
    • Welche Testebenen gibt es (Dev-T, UserAcceptance-T, ProdInstall-T) und wie kann man automatiserte Test machen (lassen)
    • Erklären Sie welche Tests für die Datenbankanbindung relevant sind (Load-Tests, Performace-Tests). Sie sollen dabei eine kurze Beschreibung der beiden Tests liefern und dann auf die Relevanz eingehen. Für beide Tests führen sie zusätzlich aus, was für Massnahmen möglich sind, wenn die Tests nicht erfolgreich verlaufen.

    Bewertungskriterien:

    34% Form (siehe oben) und Aufbau (Gliederung 2. Stufe, Ausgeglichenheit der Kapitel) 33% Gehalt, Relevanz und Richtigkeit, Varianten in der Technik 33% Erklärbarkeit, wie erklärt wird, Verständlichkeit

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.

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

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"
https://infinityfree.net/
https://www.heroku.com/
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

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