Kurs "Datenbanken und SQL"

| last update: 2026-08-04

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:

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.

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"

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

Literaturempfehlungen

Favorites

  • Bill Karwin (2010) "SQL Antipatterns. Avoiding the Pitfalls of Database Programming."

References

  • Ramez Elmasri & Navathe, Shamkant B. (2011) “Database Systems. Models, Languages, Design, and Application Programming”, 6. Auflage
    With more than 1,000 pages this book also covers some adjoining and advanced topics distributed databases or information retrieval.

Troubleshooting

  • Sveta Smirnova (2012) “MySQL Troubleshooting. What to Do When Queries Don’t Work”

No-SQL Databases

  • Eric Redmond and jim R. Wilson "Seven Databases in Seven Weeks. A Guide to Modern Databases and the NoSQL Movement."

Introductions

In German language:

  • A. Kemper / A. Eickler (1999 / 3. Auflage) “Datenbanksysteme. Eine Einführung”