Temporäre Datenbanken

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Sicherlich kennen Sie auch die Situation, dass Sie häufig verwendete statische Daten wie zum Beispiel Einträge für Kombinationslistenfelder oder Listenfelder aus Tabellen erhalten, die im Backend gespeichert sind. Sollte sich das Backend dann auch noch auf einem Server befinden, kann sich das öffnen etwas verzögern. Lernen Sie in diesem Artikel die Vorzüge der Verwendung von temporären Datenbanken kennen.

Wozu temporäre Datenbanken

Bei der Entwicklung von Datenbanksystemen kommt es immer wieder vor, dass man statische Elemente wie Parameter, Meldungstexte oder Listeneinträge benötigt oder zur Laufzeit temporäre Objekte für die Berechnung von Zwischenergebnissen erstellt, die anschließend in Berichten weiterverwendet werden sollen.

Eine langsame Netzwerkverbindung erweist sich dabei ebenso als Nachteil wie das Aufblähen des Frontends durch das Erstellen temporärer Objekte, was sich nur durch periodische Komprimierungen regulieren lässt.

Mit einer temporären Datenbank auf dem lokalen Rechner, die beim Start der Anwendung angelegt und nach der Sitzung wieder gelöscht wird, verringern Sie diese Probleme.

Grundsätzliche Funktionsweise

Das Prinzip veranschaulicht Abb. 1. Die Applikation legt beim Start zunächst die temporäre Datenbank in einem dafür vorgesehenen Verzeichnis an und erstellt alle temporären Tabellen mit den passenden Feldern und Indizes und verbindet diese mit der Benutzerschnittstelle (1).

Konzept der temporären Datenbanken.tif

Bild 1: Konzept der temporären Datenbanken

Anschließend werden die Objekte der temporären Datenbank dynamisch in das Frontend eingebunden und können gemeinsam mit den Daten des Backends verwendet werden (2).

Technischer Hintergrund

Die Informationen über die zu erstellenden Objekte sollen ihrerseits in mehreren relational verknüpften Tabellen gespeichert werden. Die darin enthaltenen Daten werden später von entsprechenden Routinen ausgelesen und in Form der temporären Datenbank umgesetzt.

Die Hierarchie aus Bild 2 veranschaulicht die in den Tabellen zu speichernden Informationen. Dabei bildet die Datenbank das Grundgerüst und enthält die einzelnen Tabellen mit ihren Feldern.

Objekte der temporären Datenbank.tif

Bild 2: Objekte der temporären Datenbank

Jede Tabelle kann aus Optimierungsgründen auch Indizes besitzen. Daraus leiten sich die nachfolgend beschriebenen Tabellenentwürfe ab.

tbl_sys_TempDatabases

Die Tabelle tbl_sys_TempDatabases speichert die Einstellungen für die temporäre Datenbank (s. Tab. 1).

Feldname

Beschreibung

Tab. 1: Struktur der Tabelle tbl_sys_TempDatabases

tbl_sys_TempTableDefs

Die Tabelle tbl_sys_TempTableDefs speichert Informationen über die zu erstellenden temporären Tabellen (s. Tab. 2).

Feldname

Beschreibung

Tab. 2: Struktur von tbl_sys_TempTableDefs

Diese Tabelle berücksichtigt, dass eine temporäre Tabelle nicht immer mit dem Beenden der Anwendung gelöscht werden muss. Sie können also für bestimmte Tabellen festlegen, dass diese nur erzeugt werden, wenn sie nicht schon vorhanden sind. Außerdem können Sie mit der Eigenschaft OutOfUse angeben, dass eine Tabelle derzeit nicht angelegt werden soll. Falls Sie diese später noch einmal benötigen, stellen Sie die Eigenschaft einfach wieder auf True ein.

tbl_sys_TempFieldDefs

Die Tabelle tbl_sys_TempFieldDefs bechreibt die in den temporären Tabellen enthaltenen Felder und deren Eigenschaften (s. Tab. 3). Die Angabe des Datentyps erfolgt über numerische Werte, die den VB-Konstanten entsprechen (s. Tab. 4).

Feldname

Beschreibung

Tab. 3: Struktur von tbl_sys_TempFieldDefs

VB-Konstante

Wert

Speichergröße

Tab. 4: Datentypen in VB(A)

tbl_sys_TempIndexDefs

Für die Optimierung bei Abfragen und/oder Suchen in Recordsets sind Indizes unabdingbar. Die in Tab. 5 beschriebene Tabelle enthält die Felder zum Speichern der Informationen über das Aussehen der Indizes.

Feldname

Beschreibung

Tab. 5: Struktur von tbl_sys_TempIndexDefs

tbl_sys_TempIndexFieldDefs

Ein Index kann aus einem oder mehreren Feldern bestehen. Die in Tab. 6 beschriebene Tabelle speichert die passenden Informationen.

Feldname

Beschreibung

Tab. 6: Struktur von tbl_sys_TempIndexFieldDefs

Abb. 3 veranschaulicht die Beziehungen zwischen den oben beschriebenen Tabellen. Die Tabelle tbl_sys_TempDatabases enthält eine oder mehrere Datenbankdefinitionen. Die darin enthaltenen Tabellen liefert die Tabelle tbl_sys_TempTableDefs und ordnet die Tabellen über das Feld DatabaseID dem passenden Datensatz der Tabelle tbl_sys_TempTableDefs zu. Die beiden Tabellen tbl_sys_TempFieldDefs und tbl_sys_TempIndexDefs sind beide per 1:n-Beziehung mit der Tabelle tbl_sys_TempTableDefs verknüpft und liefern die passenden Felder und Indizes. Schließlich sorgt die Verknüpfungstabelle tbl_sys_TempIndexFieldDefs für die Zuordnung der Felder zu den einzelnen Indizes.

Tabellenbeziehungen.tif

Abb. 3: Beziehungen zwischen den Relationen

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar