Kurs "Datenbanken und SQL"

| last update: 2019-08-09

Dies ist die begleitende Seite für den Kurs "Datenbanken und SQL", welchen ich in den von Jahren von 2016 bis 2019 insgesamt acht Mal für das Regionale Rechenzentrum (RRZK) der Universität zu Köln halten durfte.

Der während des Kurs vorgeführte SQL-Code findet sich auf Github.

Einstieg & Organisatorisches

Foliensatz "Einstieg" (PDF)

Themen:

  • Organisatorisches
  • Einführung
  • Was ist die Structured Query Language (SQL)?
  • Grundbegriffe / Terminologie
  • Sinn und Zweck von Database Management Systemen (DBMS)
  • Das Testsystem und Ihr Zugang

weiterführende Informationen / Links:

  • Literaturempfehlungen zum Thema Datenbanken
  • StackOverflow
    Sehr aktives englischsprachiges Forum. Meistens reicht eine Suche. Wenn es doch nötig ist eine Frage zu formulieren: Auf ein Minimalbeispiel zur Erläuterung des Problems wird Wert gelegt. Ebenso sollte die Antwort akzeptiert werden, welche das Problem (am Besten) löst.
  • Marktübersicht Datenbanksysteme
  • Tour durch ein DataCenter von Google (360°)
  • Kundenverhalten vorhersagen mit Daten
    Ein kritischer Artikel der New York Times zum Thema Datensammlungen im Einzelhandel. Einerseits faszinierend und anderseits beängstigend wie Daten genutzt werden können. Definitive Leseempfehlung auch in Hinsicht auf Ihre Verantwortung als Datenbankdesigner.
  • Excel mit Standardeinstellungen kann eine sehr schlechte Idee sein. Obwohl Microsoft Excel gelegentlich ein gutes Werkzeug ist um sich einen ersten Überblick zu verschaffen.
  • Anleitung zu phpMyAdmin: Die Oberfläche ist weitgehend selbsterklärend. Dennoch gibt es eine Anleitung. Die dort genannten Bücher sind weitgehend als E-Books über die Universitätsbibliothek Köln verfügbar!
  • MySQL Workbench: Im Gegensatz zu phpMyAdmin ist die Workbench ein lokal auf Ihrem Computer installiertes Programm. Sie können es benutzen um auf eine ebenfalls lokal installierte Datenbank, oder um auf einen Datenbank Server zuzugreifen. Die Workbench wurde für MySQL entwickelt, funktioniert aber auch mit MariaDB, wobei nicht alle neuen Features unterstützt werden und kleine Inkompatibilitäten möglich sein können. Das offizielle MySQL Workbench Tutorial erläutert anschaulich die Oberfläche und Bedienkonzepte.

Einfache Abfragen

Foliensatz "Einfache Abfragen" (PDF)

Themen:

  • Einfache Abfragen mit SELECT
  • Mittels WHERE das Resultset einschränken
  • Daten sortieren (ORDER BY) und gruppieren (GROUP BY)
  • Aggregatfunktionen
  • Sonderfall NULL
  • Anlegen von Views

weiterführende Informationen / Links:

  • SQL Tutorial auf Einsteiger-Niveau
    Für Details müssen Sie auf die Dokumentation Ihres DBMS zurückgreifen, aber hier werden die wichtigsten SQL-Befehle kurz und verständlich erläutert.

Daten einfügen, ändern und löschen

Foliensatz "Daten bearbeiten" (PDF)

Themen:

  • INSERT: Daten einfügen
  • UPDATE: Daten ändern
  • DELETE: Daten löschen

Übersicht gewinnen und komplexere Abfragen

Mittels SELECT und dazugehörigen Statements können Sie bereits schnell einzelne Tabellen abfragen und grundlegende Analysen durchführen. Mit JOIN und UNION können Sie die Daten aus mehreren Tabellen kombinieren. So können Sie die Vorteile einer relationalen Datenbank nutzen.

Foliensatz "Komplexere Abfragen" (PDF)

Themen:

  • Eine Übersicht über vorhandene Daten gewinnen
  • Sub-SELECT
  • JOIN und UNION
  • WHERE LIKE
  • SQL Code sinnvoll dokumentieren (Kommentare, sprechende Variablennamen, ...)

Datenbanken erstellen

Nachdem Sie wissen, wie Sie Datenbanken abfragen können, ist der nächste Schritt eine Datenbank selber zu erstellen.

Foliensatz "Datenbanken erstellen" (PDF)

Themen:

  • Normalformen
  • gebräuchliche Data Types
  • Geo-Daten speichern (Exkurs Postgres)
  • die Storage Engine auswählen
  • Collation setzen
  • Mittels Index Abfragen massiv beschleunigen!
  • Unique Identifier auswählen
  • Mit Foreign Key Constraints Konsistenz sicherstellen
  • Funktionen und Stored Procedures
  • Variablen

weiterführende Informationen:

Datenschutz und Sicherheit

Datenbank-Server sind oft direkt oder zumindest indirekt mit dem Internet verbunden. Sie sind deshalb ein beliebtes Angriffsziel für kriminelle Hacker. Sie sollten über grundlegende Angriffswege wie SQL-Injection Bescheid wissen. Mit einigen wenigen Einstellungen können Sie das Sicherheitsniveau Ihres DBMS schon deutlich steigern.

Foliensatz "Datenschutz & Sicherheit" (PDF)

Themen:

  • SQL-Injection als verbreiteter Angriffsweg
  • Sicherheit auf Netzwerkebene
  • User Privileges auf das Nötige einschränken
  • Backup

weiterführende Informationen:

Abschlussprojekt

Sie werden in Kleingruppen nach Vorgabe eines Themas eine passende Datenbank von Grund auf selbst entwerfen. Während der Entwurfsphase steht Ihnen "Consulting" zur Verfügung, wird aber nur Hinweise statt fertigen Lösungen geben. Die Ergebnisse der einzelnen Gruppen sprechen wir dann gemeinsam durch.

Cheatset Datenbankdesign

Fortgeschrittene Anwendungen

Abfragen mit Statistiksoftware

Die meisten Statistik-Programme bringen Schnittstellen / Connectoren für alle größeren DBMS mit. Deren Bedienung ist in der Regel sehr einfach, aber sie werden gelegentlich auch als gesonderte Produkte vertrieben.

Query databases with R.

Transaktionen

Transaktionen kapseln eine Sammlung von Befehlen so, dass sie entweder in Gänze oder gar nicht ausgeführt werden. Das klassische Beispiel sind Überweisungen zwischen Konten: wenn die Gutschrift auf dem Zielkonto nicht klappt, sollte die Abbuchung auf dem Quellkonto nicht erfolgen. Umgekehrt sollte die Gutschrift auf dem Zielkonto nicht erfolgen, falls die Abbuchung auf dem Quellkonto nicht klappt.

In einigen Fehlerfällen (Deadlocks, o.ä.) geschieht die Rückabwicklung einer Transaktion automatisch. meistens müssen Sie das aber explizit mit einem ROLLBACK anstoßen.

Window Functions

Window Functions sind zu komplex um diesen Kurs innerhalb des Zeitrahmens zu halten. Gerade bei großen Datenmengen können sie aber hilfreich sein.