Version 1.0-first_public

lecture: Praktische Anwendung von Bereichstypen in PostgreSQL

Bereichstypen sind eine sehr praktische Besonderheit von PostgreSQL

Postgresql

Bereichstypen (range types) dienen dazu, von-bis-Bereiche diverser Datentypen abzubilden. Sie bieten große Vorteile gegenüber der Speicherung des von- und des bis-Werts in separaten Spalten. Der Vortrag zeigt die Anwendung und die Entwicklung sowie den Einsatz eines selbstdefinierten Bereichstypen.

Einige Bereichstypen sind bereits vordefiniert: für Ganzzahlen, NUMERIC, DATE und TIMESTAMP. Mithilfe von Indexen kann man deklarativ, also ohne Trigger, sicher stellen, dass es keine Überlappungen gibt. Gerade die zeitbezogenen Datentypen erweisen sich als sehr hilfreich.


Mit dem DATERANGE-Typ kann man Buchungen von Hotelzimmern und Ferienwohnungen planen und dabei sicher sein, dass kein Zimmer und keine Wohnung doppelt belegt wird. Der TSRANGE mit dem Basistyp TIMESTAMP hingegen ist ideal für die Buchung von Konferenzräumen, wobei man keine Klimmzüge wie die Einteilung in 15-min-Slots oder ähnliches vornehmen muss, sondern ganz simpel mit Start- und Endezeit arbeitet.


Die Erstellung eines wöchentlichen Stundenplans dagegen, wo sich die Planung auf die Kombination eines Wochentags plus Uhrzeit (Unterrichtseinheit) bezieht, wobei weder Seminarräume noch Trainer oder Lerngruppen mehrfach belegt werden dürfen, bedarf allerdings der Definition eines eigenen Datentyps. Diese soll den Vortrag abrunden und zeigen, dass man manchmal auch über den ISO-Standard hinaus gehende Features gewinnbringend einsetzen kann.