Kurs "Datenbanken und SQL"
Rüdiger Voigt | 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
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
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
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
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
Daten bearbeiten
- INSERT (einfügen)
- UPDATE (ändern)
- DELETE (löschen)
- Transaktionen
- DROP
Ü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.
Komplexere Abfragen
- Eine Übersicht über vorhandene Daten gewinnen
- Sub-SELECT
- JOIN und UNION
- WHERE LIKE
- SQL-Code sinnvoll dokumentieren
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.
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
weiterführende Informationen:
- Wikipedia zu den Normalformen: Mit dem Stand vom September 2017 eine der wenigen anschaulichen Erklärungen dieses Themas.
- Übersicht der Storage Engines in MariaDB
XTraDB (in der Konfiguration oft als InnoDB angesprochen) ist fast immer beste Wahl. - Character Sets and Collations:
- Foreign Key Constraints:
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.
Datenschutz & Sicherheit
- 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.