LF06.2 - Anwendungsentwicklung

1 Relationale Datenbanken

In der Praxis sind Relationale Datenbankmanagementsysteme immer noch von großer Bedeutung[1].

1.1 Datenbank-Entwurf

(Präsentation aus dem Unterricht)

1.1.1 Entwurfs-Phasen

Beim Entwurf von Datenbanken durchläuft man die folgenden Phasen:

Externe Phase
Meist ausgehend von den Attributen des Klassendiagramms werden in der Anforderungsanalyse die zu speichernden Informationen bezogen auf die Anwendung ermittelt.
Konzeptionelle Phase
Der Sachverhalt wird in einem sematischen Modell formalisiert beschrieben. Am Schluss dieser Phase steht ein Entity Relationship Modell[2].
Logische Phase
Das semantische Datenmodell wird in ein relationales Datenmodell überführt. Dabei werden die Beziehungen zwischen den Tabellen konkret über Schlüsselfelder bzw. Verknüpfungstabellen realisiert. Anschließend wird das relationale Schema durch Normalisierung optimiert. Außerdem dürfen keine Prozessdaten gespeichert werden.
Physische Phase
Nach Festlegung der Datentypen wird das relationale Schema in einer Datenbank (z.B. mit SQL-Befehlen) angelegt.

1.1.2 Normalformen[3]

Zur Vermeidung von Redundanzen, die zu Anomalien führen können, sollten Datenbanken normalisiert werden.

1. Normalform
Atomare Werte.
2. Normalform
Jedes Nicht-Schlüsselattribut ist vom gesamten Schlüssel abhängig.
3. Normalform
Nicht-Schlüsselattribute sind voneinander unabhängig.

1.1.3 Vererbungen realisieren

Relationale Datenbanken können keine Vererbungsstrukturen darstellen. Es gibt verschiedene Wege, Vererbungshierarchien objektorientierter Modelle auf Datenbanktabellen abzubilden[4].

Arbeitsauftrag:

  1. Erstellen Sie ein Datenbank-Modell in der Chen-Notation, die alle Informationen enthält, um eine Rechnung zu erstellen.
  2. Vergleichen Sie Ihr ER-Modell mit dem Modell an der Tafel, listen Sie die Unterschiede auf und beschreiben Sie die Auswirkungen in der Praxis.
  3. Überführen Sie das ER-Modell zur Rechnungserstellung in ein relationales Datenmodell.
  4. Überprüfen Sie das Datenmodell auf die drei Normalformen.
  5. Entwickeln Sie aus dem Klassendiagramm, dem das WebTaxi Lastenheft zu Grunde liegt, für den Online-Schichtplan ein ER-Modell.
  6. Welche Möglichkeiten gibt es Vererbung von Klassen in einer Datenbank abzubilden? Stellen Sie drei Möglichkeiten gegenüber und wählen Sie die sinnvollste für das Projekt aus.
  7. Überführen Sie das ER-Modell für den Online-Schichtplan in ein relationales Datenmodell.
  8. Überprüfen Sie das Datenmodell auf die drei Normalformen.
  9. Eine Betriebsabrechnungs-Datenbank hat mit folgenden Fakten zu tun:
  • Jeder Kunde hat die Attribute Name und Adresse.
  • Jeder Mechaniker hat die Attribute Name und Ausbildungsstand.
  • Jeder Auftrag hat das Attribut Aufgabe.
  • Jede Auftragsposition hat die Attribute Tag, Beschreibung und AnzahlArbeitseinheiten.
  • Kunden vergeben bestimmte Aufträge; dabei erfolgt die Vergabe an bestimmtem Tag.
  • Mechaniker bearbeiten Aufträge; manche Aufträge werden von mehreren Mechanikern bearbeitet.
  • Jeder Auftrag besteht aus mindestens einer und maximal beliebig vielen Auftragspositionen. Jede Auftragsposition gehört zu genau einem Auftrag.
  • Mechaniker vergeben keine Aufträge.
  • Für jeden Auftrag kann entschieden werden, welche Mechaniker ihn bearbeitet haben.
  1. Definieren Sie ein entsprechendes Entity-Relationship Modell.
  2. Überführen Sie das ER-Modell in ein relationales Datenbankmodell. Vergessen Sie nicht alle Primär- und Fremdschlüssel sowie Attribute anzugeben.

1.2 SQL

SQL am Beispiel der verbreiteten MySQL-Datenbank (Präsentation aus dem Unterricht).

Nordwind.png

Für Übungszwecke eignet sich die Nordwind-Datenbank.

Arbeitsauftrag:

  1. Vorbereitung:
    1. Installieren Sie xampp auf Ihrem PC.
    2. Rufen Sie C:\xampp\xampp-control.exe auf und starten den Apache-Webserver und die MySQL-Datenbank.
    3. Speichern Sie das SQL-Skript lokal auf Ihrem PC.
    4. Importieren Sie das Skript mit dem phpMyAdmin, alle erforderlichen Datenbanken und Tabellen mit Daten werden angelegt.
    5. Wenn Sie in der Datenansicht nur die Symbole angezeigt bekommen wollen, müssen Sie in der Datei \xampp\phpMyAdmin\config.inc.php den folgenden Eintrag verändern: $cfg['PropertiesIconic'] = true;
  2. Überführen Sie das folgende ER-Modell
    er-modell.png
    mit Hilfe von SQL-Befehlen in Tabellen. Legen Sie die entsprechenden Primär- und Fremdschlüssel und alle Verknüpfungen an.
  3. Ermitteln Sie die SQL-Befehle für diese Abfragen.
    Dokumentieren Sie Ihre Lösungen, hierfür können Sie diese Vorlage verwenden.

Links zum Nachschlagen

Tutorials und Lernplattformen

2 Node.js

Zuerst muss Node.js installiert werden. Fügen Sie anschließend die MySQL-Unterstützung hinzu.

Arbeitsauftrag:

  1. Bearbeiten Sie das Aufgabenblatt

3 HTML und PHP

PHP ist eine Programmiersprache, die in einer HTML-Seite eingebunden und serverseitig interpretiert wird. Der Interpreter ist in dem xampp-Paket, dass Sie im SQL-Teil bereits verwendet haben, integriert. Zur Verwendung muss der Webserver gestartet sein, die Datei mit der Endung '.php' in dem Verzeichnis c:\xampp\htdocs (oder darunter) liegen und über den Web-Browser aufgerufen werden.

Siehe Ringhand Kapitel 7.1, 7.2.1, 7.6, Seiten 246-263, 303-310

Einführung in PHP...

Arbeitsauftrag: Erstellen Sie die folgenden Seiten mit PHP-Skripten:
Kommentieren Sie alle Skripte und fassen diese in einem Dokument (.pdf) zusammen.

  1. Datum
  2. Verbrauch 1
  3. Verbrauch 2
  4. Mehrwertsteuer
  5. Buskarte
  6. dezimal zu binär
  7. Aufzinsfaktor
  8. Zinsen
  9. Schnittpunkt
  10. Geradengleichung

3.1 MySQL-Zugriff über PHP

Arbeitsauftrag:

  1. Schrittweise Erstellung einer Bestellmaske für die Nordwind-Datenbank:
  • Einleitung: nur einen Artikel ausgeben (Quelltext)
  • Bestellungen ausgeben
    Erstellen Sie ein Programm, mit dem zunächst alle Bestellungen aus der Nordwind-Datenbank in Tabellenform angezeigt werden. Zeigen Sie die Spalten ‘Bestellnummer’, ‘Firmenname’, ‘Vor-und Nachname des Sachbearbeiters’ (Personal), ‘Bestelldatum’, ‘Name der Versandfirma’ und ‘Frachtkosten’ an .
  • 1. Erweiterung
    Erweitern Sie die Ausgabe um die Spalten ‘Gesamtwarenwert’ (Rabatt berücksichtigen) und ‘Gesamtwert’ (Gesamtwarenwert + Frachtkosten)
  • 2. Erweiterung
    Über Listen (Combobox) sollen Kunden, Sachbearbeiter (Personal) und/oder Versandfirmen mit ihrem Namen auswählbar sein. Zusätzlich kann ein Datumsbereich angegeben werden. Die angezeigten Bestellungen werden dann entsprechend eingeschränkt .
    (optional: Schränken Sie den Inhalt der anderen ComboBoxen abhängig von der Auswahl einer ComboBox ein.)
  • 3. Erweiterung:
    Wenn eine Bestellung aus der Liste ausgewählt wird, werden alle Positionen dieser Bestellung angezeigt. Hierbei werden die Spalten ‘Artikelname’, ‘Anzahl’, ‘Einzelpreis’, ‘Rabatt’ und ‘Gesamtpreis’ angezeigt.
  • 4. Erweiterung:
    Über eine Schaltfläche wird ein Dialog oder Fenster geöffnet, in dem eine neue Bestellung angelegt werden kann. Die Einträge für Kunde, Sachbearbeiter und Versandfirma sollen über Listen (Combobox) ausgewählt werden.
  • 5. Erweiterung:
    Der neu angelegten Bestellung können beliebig viele Artikel zugeordnet werden. Die Artikel werden über eine Liste aus der Artikel-Tabelle ausgewählt. Die Anzahl und der Rabatt für die Bestellposition werden frei eingegeben, für die Eingaben erfolgt eine Plausibilitätsprüfung.
  • 6. Erweiterung:
    Bevor der Artikel der Bestellung hinzugefügt wird, wird der Lagerbestand (Artikel-Tabelle) überprüft. Nach erfolgter Bestellung wird der Lagerbestand in der Artikel-Tabelle angepasst und der Mindestbestand überprüft. Wird der Mindestbestand unterschritten oder reicht der Lagerbestand für die Bestellung nicht aus, ist eine entsprechende Meldung auszugeben.
  • 7. Erweiterung:
    Eine einzelne Bestellung kann mit allen Positionen und sonstigen Angaben übersichtlich in ein pdf-Dokument exportiert werden.
  1. Erstellen einer Webanwendung für einen Online-Schichtplan auf der Grundlage des WebTaxi Lastenheftes

Tutorials und Lernplattformen:

4 PowerShell

Erstellen Sie auf einem der Server, die in den Unterrichtsräumen bereitliegen oder lokal auf Ihrem Rechner eine virtuelle Maschine mit Windows Server 2016[7] und erstellen Sie ein Active-Directory. Treten Sie der Domäne als Administrator bei.

Die PowerShell ist ab Windows 7 SP1 bereits installiert. Zur Überprüfung der Version öffnen Sie die PowerShell und geben Sie den Befehl $PSVersionTable ein. Update

4.1 Anwendungsfälle

  1. AD-Benutzer anlegen
  2. AD-Gruppen erstellen und AD-Benutzer hinzufügen:
    1. Gruppe erstellen
    2. alle AD-Benutzer, die in der Gruppe 'VerkaufWest' sind, auch in der Gruppe 'Verkauf' hinzufügen, sofern sie noch nicht Mitglied in dieser Gruppe sind.
  3. Monitoring
    1. Event-Log nach bestimmten Fehlermeldungen durchsuchen
    2. Ressourcen-Verbrauch
  4. Skripte bei Benutzeranmeldung automatisch ausführen
  5. Datei-Operationen
  6. Registry-Bearbeitung
  7. Verändern der Energie-Optionen von verbundenen Computern
  8. (Firewall-Regeln)
  9. Exchange-Administration über Exchange Management Shell
    1. Mails versenden
    2. Kalender-Freigabe
    3. Postfach anlegen
    4. Bearbeiten von Regeln

Arbeitsauftrag:

  1. Erstellen Sie zu den oben genannten Anwendungsfällen eine Dokumentation, die die Befehle mit einer präzisen Erläuterung enthält. Testen Sie die Befehle, soweit wie technisch möglich.

4.2 Skript-Verarbeitung

In Skripten lassen sich mehrere Befehle zusammenfassen. Hierbei besteht die Möglichkeit, Parameter zu übergeben und innerhalb des Skriptes mit Variablen, bedingten Verzweigungen und Schleifen zu programmieren. In der PowerShell ISE lässt sich der Skript-Bereich im Menü View - Show Script Pane (Ctrl+R) einschalten.

Arbeitsauftrag:

  1. Erstellen Sie ein Skript, das einen Benutzer anlegt. Dabei soll zuerst überprüft werden, ob der Benutzer bereits existiert. Der Benutzername wird bei Aufrufen des Skripts übergeben und das Passwort wird zweimal durch das Skript abgefragt. Die beide Eingaben werden verglichen und bei Übereinstimmung das Skript angelegt.

5 Programmtipps

6 Literatur*

  1. Dr. Klaus Ringhand, Hans-Georg Wittmann: Entwickeln und Bereitstellen von Anwendungssystemen für IT-Berufe. Westermann, Braunschweig 2011, ISBN: 978-3-8045-5384-2
  2. SQL von Kopf bis Fuß. Behandelt auch DB-Entwurf ausführlich
  3. Sascha Kersken: Kompendium der Informationstechnik. Rheinwerk Computing, Bonn, 2003, ISBN 978-3-89842-355-7
    1. Kapitel 7: Datenbanken und SQL
    2. Kapitel 18.2: Einführung in PHP

[*] Der Erwerb ist für den Unterricht nicht erforderlich und nicht vorgeschrieben. Die Bücher geben die Möglichkeit, sich tiefer in ein Teilgebiet ein zu arbeiten.