Titelaufnahme

Titel
Speicherung von Intervallen in relationalen Datenbanken
Weitere Titel
Storage of Intervals in Relational Databases
VerfasserLjubic, Josef
GutachterRadinger-Peer, Wolfgang
Erschienen2013
Datum der AbgabeAugust 2013
SpracheDeutsch
DokumenttypBachelorarbeit
Schlagwörter (DE)temporale Datenbanken / Intervalle
Schlagwörter (EN)temporal databases / intervals
Zugriffsbeschränkung
 _
Klassifikation
Zusammenfassung (Deutsch)

Das ursprüngliche relationale Datenbankmodell wie es 1970 von Edgar F. Codd erstmals vorgestellt wurde, und das sich bis heute als das vorherrschende Datenbankkonzept etabliert hat, erlaubt die Realität immer nur als Schnappschuss zu einem bestimmten Zeitpunkt darzustellen. In vielen Anwendungen verschiedener Branchen müssen aber Daten die sich über die Zeit ändern gespeichert werden. In Banken z.B. die Wertpapier- und Wechselkurse, im Verkauf die Artikelpreise, und im Tourismus Flug- und Hotelreservierungen. Oft gibt es gesetzliche Bestimmungen dass Daten eine bestimmte Zeitspanne im System gehalten, und auf Abruf der Behörde zur Verfügung gestellt werden müssen. So fordert z.B. die Vorratsdatenspeicherung das Zeitintervall festzuhalten, über welches eine IP-Adresse einer bestimmten Person zugeordnet wurde.

All diese Daten unterliegen der Zeit, und müssen, obwohl das ursprüngliche relationale Konzept hier keine Lösung bietet, mit temporalen Gültigkeitsintervallen gespeichert werden. Dass das relationale Modell die Speicherung von Intervallen nicht unterstützt, wurde schon frühzeitig erkannt, und es gab verschiedene Ansätze diesen offensichtlichen Mangel zu beheben. Leider hat die SQL-ISO Norm die Forderung nach Intervallspeicherung in Datenbanken lange Zeit nicht berücksichtigt, sodass diese Ideen nie den Durchbruch schafften. Echte Implementierungen von kommerziellen Datenbankherstellern gab es mangels einer verbindlichen Norm daher nicht. Lange Zeit waren in Datenbanken zwar die Feldtypen DATE, TIME und TIMESTAMP verfügbar, Intervalle konnten aber nicht definiert werden. Für viele Applikationen aus den verschiedensten Branchen mussten daher Intervalle, im speziellen meist temporale Gültigkeitsintervalle, immer wieder entweder direkt in den Programmen, oder direkt in der Datenbank, in Stored-Procedures und Datenbanktriggers händisch ausprogrammiert werden. Entsprechend groß ist der Wildwuchs an derzeit in Betrieben existierenden Lösungen, die wegen der oftmals hohen Komplexität mit relativ hohem Aufwand ausprogrammiert und getestet wurden.

Die neueste SQL-ISO-Norm 2011 versucht nun diesem Bedarf gerecht zu werden, und definiert ein Regelwerk für temporale Datenbanken.

Diese Arbeit versucht einen allgemeinen Überblick über die Problematik der Datenspeicherung von Intervallen im allgemeinen, und temporalen Intervallen im speziellen zu geben, und die in der Praxis benötigten Anforderungen für Intervallspeicherung herauszuarbeiten.

Es soll untersucht werden ob die Spezifikation der ISO Norm SQL-2011 diesen Anforderungen gerecht wird, und inwieweit kommerzielle Datenbankhersteller diese Norm in ihren Produkten bereits umgesetzt haben.

Der letzte Teil dieser Arbeit widmet sich dem Thema ob eine Migration bestehender, selbst programmierter temporaler Applikationen auf das neue temporale Datenbankkonzept ohne viel Aufwand möglich ist, und wie eine solche Migration aussehen könnte.

Zusammenfassung (Englisch)

With the relational database model introduced by Edgar F. Codd in 1970, which is the most important database concept nowadays, it is only possible to store reality as a snapshot at a certain point of time. However, many applications in different industrial sectors have to store data which change over time. For example, banks have to store security prices and exchange rates; in sales, the prices of articles are needed; and in the tourism industry, hotel and transport reservations have to be kept. Often there are legal regulations which require that certain data are maintained in the database for a specific period of time and must be made available to the public authorities upon request. Data preservation, for example, requires that the time interval of the assigning of an IP address to a particular person is stored.

All these data are time-dependent, and although the original relational database concept offers no relevant solution, they have to be stored with temporal validity periods. It was recognized early on that the relational concept is not able to store temporal data, and different proposals were thus made to overcome this deficit. Unfortunately, however, the requirement to store interval data was for a long time ignored by the SQL-ISO Committee, so that these new ideas were not successful. Due to the lack of a binding standard, intervals were never implemented in commercial databases. For a long time, databases provided only the field types DATE, TIME and TIMESTAMP, but it was not possible to define intervals. For many applications from different industrial sectors, intervals, especially temporal intervals, had to be implemented in the application programs, or in the database, through stored procedures or database triggers. The lack of a standard has led to the uncontrolled growth of complex home-grown solutions, which had to be programmed and tested at high cost.

The latest SQL-ISO-Standard 2011 is now trying to fulfil these requirements and to define the rules for temporal databases.

This thesis gives an overview of the problems of storing intervals in databases in general, and of temporal intervals, in particular, and defines the requirements for storing intervals in databases.

The aim is to ascertain whether the ISO-2011 specification fulfills these requirements, and whether commercial database providers have already implemented the new regulations in their products.

The last part of the thesis deals with the issue if it is possible to migrate existing, home-grown applications to the new database concept without high costs, and to examine what this migration could look like.