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).
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.
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.
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