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.

Den während des Kurs vorgeführten SQL-Code und weiterführende Beispiele finden Sie auf Github.

Einstieg & Organisatorisches

Foliensatz 1 / 6
Organisation und Einstieg
  • Organisaton des Kurses
  • Einführung
  • Was ist die Structured Query Language (SQL)?
  • Grundbegriffe / Terminologie
  • Sinn und Zweck von Database Management Systemen (DBMS)
  • Das Testsystem und Ihr Zugang
Foliensatz "Einstieg"

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.
  • Übersicht DBMS

Einfache Abfragen

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

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 3 / 6
Daten bearbeiten
  • INSERT (einfügen)
  • UPDATE (ändern)
  • DELETE (löschen)
  • Transaktionen
  • DROP
Foliensatz "Daten bearbeiten"

Ü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 4 / 6
Komplexere Abfragen
  • Eine Übersicht über vorhandene Daten gewinnen
  • Sub-SELECT
  • JOIN und UNION
  • WHERE LIKE
  • SQL-Code sinnvoll dokumentieren
Foliensatz "Komplexere Abfragen"

weiterführende Informationen:

  • Window Functions sind zu komplex um diesen Kurs innerhalb des Zeitrahmens zu halten. Gerade bei großen Datenmengen können sie aber hilfreich sein: Tutorial Window Functions.
  • "Komplexe Abfragen mit aktuellem SQL": Vortrag von Holger Jakobs auf der FROSCON2016. Verfügbar als Video und als Skript. Manchmal etwas flott.
  • 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.

Datenbanken erstellen

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

Foliensatz 5 / 6
Datenbanken erstellen
  • 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
Foliensatz "Datenbanken erstellen"

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 6 / 6
Datenschutz & Sicherheit
  • SQL-Injection als verbreiteter Angriffsweg
  • Sicherheit auf Netzwerkebene
  • User Privileges auf das Nötige einschränken
  • Backup
Foliensatz "Datenschutz & Sicherheit"

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