PostgreSQL - Developer Deep Dive
Dieses Seminar zeigt Entwicklern, wie sie PostgreSQL über die Grenzen klassischer relationaler Datenbanken hinaus nutzen können. Die Teilnehmer erlernen den Umgang mit JSON-Dokumenten, Volltextsuche, geografischen Daten und der Erweiterbarkeit der Datenbank.
SEMINARINHALTE & AGENDA
NoSQL-Features mit JSONB
Unterschied zwischen den Datentypen JSON und JSONB
- Abfrage- und Manipulationsoperatoren für JSON-Dokumente
- Indizierung von JSONB-Spalten mit GIN-Indizes
Volltextsuche (Full-Text Search)
Konzept von Dokumenten, Lexemen und Stoppwörtern
- Nutzung von tsvector und tsquery zur Textanalyse
- Erstellung von Indizes zur Beschleunigung komplexer Textsuchen
Unscharfe Suche (Fuzzy Search)
Einsatz der Extension pg_trgm für Trigramm-Vergleiche
- Ähnlichkeitsberechnungen für Suchbegriffe zur Tippfehlerkorrektur
- Kombination von Textsuch- und Trigramm-Methoden
Einführung in Geodaten mit PostGIS
Installation und Aktivierung der PostGIS-Erweiterung
- Arbeiten mit Koordinatensystemen und Geometrie-Datentypen
- Durchführung räumlicher Abfragen und Entfernungsberechnungen
Fremddaten-Anbindung (Foreign Data Wrapper)
Konzept und Einrichtung von postgres_fdw zur Server-Kopplung
- Abfragen externer CSV-Dateien über file_fdw
- Integration heterogener Datenquellen direkt in SQL-Abfragen
Arbeiten mit Arrays und Reichweiten (Ranges)
Definition und Manipulation mehrdimensionaler Arrays in Tabellen
- Einsatz von Range-Datentypen für zeitliche oder numerische Intervalle
- Absicherung überlappungsfreier Intervalle mit Exclusion Constraints
Datenpartitionierung (Partitioning)
Konzepte der deklarativen Partitionierung nach Bereichen oder Listen
- Erstellung und Verwaltung von Partitionstabellen
- Performance-Vorteile beim Partition-Pruning durch den Planner
Arbeiten mit Large Objects und Binärdaten
Speichern von Binärdaten im bytea-Format im Vergleich zu Large Objects
- Vor- und Nachteile bei der Datenbankgröße und Backup-Performance
- Streaming-Zugriffe auf Binärdaten aus der Anwendung
Sicherheit auf Zeilenebene (Row-Level Security)
Aktivierung von RLS-Richtlinien auf Tabellen
- Erstellung dynamischer Sicherheitsregeln basierend auf dem Anmelde-User
- Testen und Validieren restriktiver Datenzugriffe
Erweiterungen (Extensions) verwalten
Sichere Installation und Versionsverwaltung von Extensions
- Sicherheitsrisiken bei der Nutzung von Drittanbieter-Erweiterungen
- Einfluss von Extensions auf die Upgrade-Fähigkeit der Datenbank
ZIELGRUPPE
Software-Entwickler und Datenbank-Designer, die moderne, nicht-relationale und spezialisierte Features von PostgreSQL in ihren Applikationen nutzen möchten
VORAUSSETZUNGEN
Fortgeschrittene SQL- und Entwicklerkenntnisse, wie sie in den ersten Entwicklerkursen vermittelt werden