Datenbank Handouts
Das Datenbankthema erstreckt sich von der 11. bis zur 12. Klasse (hier nur die Anwendungsentwickler). Das SQL Syntax Handout
und die SQL SELECT Übungen setzen auf meiner einfachen
Übungsdatenbank
auf. Für diese Datenbank habe ich auch ein paar SELECT Übungen erstellt, die ich alle in einem zip-File zusammengefasst habe.
Die detaillierten Übungen wurden im Zuge von IHK-Anpassungen an die Teil1 Prüfung neu gestaltet. Hierfür habe ich eine neue Datenbank Onlineshop DB
erstellt, welche in den Datenmodellierungsaufgaben von den Schülern selbst erstellt und anschließend für die SQL-Übungen genutzt wird.
Gesamtüberblick SQL Syntax
Für SQL habe ich ein Dokument verfasst, was alle SQL-Relevanten Informationen für die 11. und 12. Klasse Anwendungsentwickler abdeckt.
Sämtliche "SELECT" Statements in diesem Dokument funktionieren auf der
Übungsdatenbank.

SQL Statements
Dies ist eine Art "Hello World" für Datenbanken. Wir erstellen eine kleine Tabelle, füllen sie mit Daten und lesen sie wieder aus.
Wenn diese Übung funktioniert, haben wir alle technischen Voraussetzungen für die nächsten Schritte.
Grundstruktur des CREATE Table Statements inklusive der wesentlichen Datentypen und Zusatzeigenschaften wie Nullable und Default Werte.
Definition und automatische Bewirtschaftung von Primary Keys. Erstellung von Foreign Keys und die Problematik der fehlerhaften Referenzen.
Daten einfügen, verändern und löschen (also INSERT, UPDATE (und REPLACE) und DELETE) inklusive LOAD DATAT INFILE.
Select auf einer Tabelle mit WHERE, ORDER BY und LIMIT.
Die 5 wichtigsten Aggregatsfunktionen (COUNT, SUM, MIN, MAX, AVG).
Gruppenbildung - auch im Zusammenhang mit den Aggregatsfunktionen.
Verknüpfung von Tabellen mit inner und outer Join.
Erzeugung von Indizes und Klärung, warum dadurch die Performance verbessert wird.
Verschiedene Möglichkeiten, SELECT Statements innerhalb eines äußeren SELECT Statements zu verwenden.
Syntax zur Erstellung von Views und die Einordnung in ein Architekturkonzept.
Automatisches Ausführen von SQL Statements basierend auf INSERT, UPDATE oder DELETE.
Performancegewinn durch Caching von SELECT Ergebnissen in temporären Tabellen.
Das ALTER TABLE Statement und das zu erwartende Verhalten bei Typänderungen von Spalten mit Dateninhalten.
"Gruppiertes" Ausführen von einzelnen Statements und Möglichkeit, die Ausführung wieder rückgängig zu machen.

SELECT Übungen
Sämtlichen Aufgaben in dieser Rubrik beziehen sich auf die
Onlineshop DB.
Hier geht es um einfache Select Übungen auf einer Tabelle. Wem die Aufgaben nicht reichen, findet hier noch eine
Ergänzungsübungsblatt.
Umgang mit den Aggregatsfunktionen, GROUP BY und HAVING.
Auch hier gibt es ein Ergänzungsübungsblatt
Joins über mehrere Tabellen.
Unterabfragen, bzw. Subselects werden hier behandelt.

Datenmodellierung
Allgemeiner Überblick über das Thema "Datenbanken" mit einem kurzen Ausflug in die NoSQL Datenbanken.
Klärung der wichtigsten Begriffe und dem grundsätzlichen Vorgehen.
Erstellung eines ER-Diagramms inklusive Bestimmung der Kardinalitäten.
Hier wird der Weg vom ER-Diagramm zum Datenmodell behandelt, inklusive Relationsschema.
Normalisierung eines Datenmodells bedeutet, dass es redundanzfrei gemacht werden soll. Wir gehen hier bis zur 3. Normalform.

Sonstiges
Für die UNION Übung beim PHP Zugriff bekommen die Schüler ein (fehlerhaftes) PHP Skript, welches SQL-Injection erlaubt. Mit Hilfe dieses
Dokuements können wir nachvollziehen, wie wir mit diesem problematischen PHP Skript und den Kenntnissen über die Systemtabellen die Userdaten
herausfinden können.

Sämtliche Inhalte stelle ich hier unter der Creative Commons Lizenz "BY NC SA" Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen Lizenz zur Verfügung.
CC Lizenz (BY NC SA)