Skip to content

erhardtconsulting/database-development

Repository files navigation

Database Development

Dieses Repository enthält die Materialien für Database Development, das Folgemodul zu Relational Databases an der HFTM.

Ziel des Kurses

Der Kurs zeigt, wie relationale Datenbanken in professioneller Softwareentwicklung eingesetzt werden. Im Zentrum steht die Frage:

Wie entwickle ich mit PostgreSQL, Spring Boot, Hibernate/JPA und Flyway eine robuste, wartbare und performante datenbankgestützte Anwendung?

Die konkrete Unterrichtstechnologie ist Spring Boot. Die behandelten Prinzipien bleiben aber bewusst übertragbar: Datenmodellierung, ORM, Migrationen, Transaktionen, Query Design, Performance und Tests.

Leitfallstudie

Alle Materialien arbeiten mit einem Ticket-System für internen Support. Die Fallstudie ist klein genug für Unterrichtslektionen und reich genug für typische Datenbankentwicklungsfragen:

  • Benutzer, Teams und Zuständigkeiten
  • Tickets mit Status, Priorität und Verantwortlichen
  • Kommentare und Ereignisverlauf
  • Labels und n:m-Beziehungen
  • Reporting-Abfragen, Transaktionen, Migrationen und Performance-Fragen

Struktur

  • docs/ - Lehrbuch im MyST/Jupyter-Book-Format
  • slides/ - Marp-Folien mit HFTM-Theme
  • planning/ - Unterrichtsplanung
  • exercises/ - Diagnose- und Übungsaufgaben
  • postgres/ - PostgreSQL-Container, Schema und Testdaten

Voraussetzungen

  • Python 3.12+
  • Poetry
  • Node.js 18+
  • Docker oder Podman

Lehrbuch bauen

poetry install
cd docs
jupyter book build --site

Mit aktivierter Poetry-Umgebung kannst du alternativ aus dem Projektroot bauen:

npm run docs:build

Hinweis: jupyter book build . funktioniert mit dem MyST-basierten Jupyter-Book-CLI nicht, weil . als Dateiargument interpretiert wird.

Folien starten

npm install
npm run slides:serve

Die Folien werden standardmässig auf Port 5002 bereitgestellt.

PostgreSQL-Fallstudie starten

cd postgres
docker compose up --build

Verbindungsdaten:

  • Host: localhost
  • Port: 5433
  • Datenbank: ticket_system
  • Benutzer: ticket_user
  • Passwort: ticket_user

Das Container-Image wird über GitHub Actions als ghcr.io/erhardtconsulting/database-development:ticket-system-17.9 gebaut.

Lizenz

Dieses Werk steht unter der Creative Commons Attribution-ShareAlike 4.0 International License (CC-BY-SA 4.0).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages