Willkommen zu Database Development, dem Folgemodul zu Relational Databases.
In Relational Databases hast du relationale Datenbanken aus Sicht von SQL, Modellierung, Normalisierung, Transaktionen und ersten ORM-Konzepten kennengelernt. In Database Development verschiebt sich die Perspektive: Die Datenbank ist nicht mehr nur ein System, das du bedienst. Sie wird Teil einer Softwarearchitektur.
Die zentrale Frage lautet:
Wie entwickelst du mit PostgreSQL, Spring Boot, Hibernate/JPA und Flyway eine robuste, wartbare und performante datenbankgestützte Anwendung?
Spring Boot ist in diesem Kurs die konkrete Lernumgebung VMware, Inc. (2026). Für den Datenbankzugriff arbeiten wir mit Spring Data JPA und Hibernate/JPA VMware, Inc. (2026) Hibernate Team (2026). Schemaänderungen werden mit Flyway als versionierte Migrationen gedacht Redgate (2026). PostgreSQL bleibt unser relationales Referenzsystem PostgreSQL Global Development Group (2026).
Die Leitfallstudie¶
Wir arbeiten durchgehend mit einem Ticket-System für internen Support. Dieses System ist absichtlich nah an typischen Entwicklungsprojekten:
Mitarbeitende erstellen Tickets.
Support-Teams übernehmen Zuständigkeiten.
Tickets haben Status, Priorität, Kommentare und Ereignisse.
Labels erlauben flexible Kategorisierung.
Reporting-Abfragen zeigen Trends und Engpässe.
Diese Fallstudie ist klein genug, damit du sie im Unterricht überblicken kannst. Gleichzeitig enthält sie genug Reibung für echte Datenbankentwicklungsfragen: Transaktionsgrenzen, n:m-Beziehungen, Migrationen, ORM-Ladestrategien, Reporting Queries und Performance.
Aufbau des Moduls¶
Das Modul umfasst neun Blöcke zu je drei Lektionen:
| Block | Thema | Schwerpunkt |
|---|---|---|
| 1 | Wiederholung und Standortbestimmung | Relevantes Vorwissen aus Relational Databases aktivieren |
| 2 | Spring Boot, PostgreSQL und Datenbankzugriff | Projektstruktur, Konfiguration, Repository- und Service-Layer |
| 3 | Hibernate/JPA Grundlagen | Entities, Beziehungen, Repositories, CRUD |
| 4 | Transaktionen und Datenkonsistenz | @Transactional, Rollback, Invarianten |
| 5 | Schema Design für Softwareprojekte | Constraints, IDs, Statusmodellierung, DTO-Abgrenzung |
| 6 | Flyway und Schema Evolution | Migrationen, Datenmigrationen, sichere Änderungsschritte |
| 7 | Query Design | Repository Methods, JPQL, native SQL und Reporting |
| 8 | Performance und ORM-Probleme | N+1, Lazy/Eager Loading, Pagination, EXPLAIN, Indexe |
| 9 | Projektarbeit und Prüfungsvorbereitung | Review, Konsolidierung, Prüfungstraining |
Arbeitsweise¶
Du wirst in diesem Modul viel lesen, vergleichen und begründen. Das ist Absicht. Datenbankentwicklung besteht nicht nur darin, Code zum Laufen zu bringen. Gute Entwicklerinnen und Entwickler können erklären, warum eine Beziehung so modelliert ist, warum eine Query so geschrieben wurde, wo eine Transaktion beginnt und weshalb eine Migration sicher oder riskant ist.
Die Blöcke folgen deshalb einem wiederkehrenden Muster:
Ein realistisches Problem aus der Softwareentwicklung.
Eine kompakte fachliche Einordnung.
Eine angeleitete Umsetzung oder Analyse.
Eine Transferfrage für ähnliche Situationen.
Im ersten Block beginnen wir mit einer Standortbestimmung. Sie zeigt, welche Grundlagen aus Relational Databases du bereits sicher einsetzen kannst und welche Themen in Database Development bewusst vertieft werden.
- VMware, Inc. (2026). Spring Boot Reference Documentation. https://docs.spring.io/spring-boot/docs/current/reference/html/
- VMware, Inc. (2026). Spring Data JPA Reference Documentation. https://docs.spring.io/spring-data/jpa/reference/
- Hibernate Team. (2026). Hibernate ORM User Guide. https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html
- Redgate. (2026). Flyway Documentation. https://documentation.red-gate.com/fd
- PostgreSQL Global Development Group. (2026). PostgreSQL Documentation. https://www.postgresql.org/docs/
- AtomicJar, Inc. (2026). Testcontainers Documentation. https://java.testcontainers.org/