InfoSets und Strukturänderungen einer log. DB 

Änderungen in logischen Datenbanken sollten, wenn überhaupt, nur aufwärtskompatibel erfolgen. Aufwärtskompatibel bedeutet, daß Tabellen um Felder erweitert bzw. neue Tabellen so in den Baum aufgenommen werden, daß die bisher gültige Struktur damit nicht verändert wird.

Beim Neuanlegen eines InfoSets über einer logischen Datenbank wird einmal die Struktur der logischen Datenbank (Anordnung der beteiligten Tabellen im Baum) aus den entsprechenden Systemtabellen gelesen und im InfoSet abgelegt. Auf diese einmal gelesene Struktur wird immer zugegriffen, wenn Beziehungen zwischen den Tabellen ausgewertet werden müssen, z.B. bei der Generierung von Query-Reports. Bei jeder Generierung eines InfoSets bzw. beim Eintritt in die Pflege eines InfoSets wird die Struktur der logischen Datenbank erneut gelesen und mit der im InfoSet abgelegten Struktur verglichen. Damit ergibt sich die Möglichkeit, InfoSets an geänderte Strukturen anzupassen.

Änderungen in einzelnen Tabellen (Hinzufügen oder Streichen von Feldern, Änderungen von technischen Eigenschaften von Feldern) sind im allgemeinen unproblematisch und werden erkannt und ausgewertet. Ggf. werden beim Generieren entsprechende Warnungen und Fehlermeldungen ausgegeben.

Die Möglichkeiten zur Anpassung eines InfoSets an eine Strukturänderung in der logischen Datenbank sind dagegen begrenzt. Solange die Strukturänderung nur darin besteht, daß neue Tabellen in den Baum eingefügt werden, ist die Anpassung problemlos und wird ohne Meldung vorgenommen. In den folgenden Fällen, die durch eine Meldung ausgewiesen werden, muß das InfoSet überprüft und falls erforderlich überarbeitet werden.

Wenn eine Tabelle aus der Struktur entfernt wurde, die ausgewählten Felder dieser Tabelle aber in Queries nicht verwendet werden, so wird die Tabelle einschließlich der ausgewählten Felder auch aus dem InfoSet entfernt. Eine Überprüfung ist dennoch erforderlich, da innerhalb von Codings oder in WHERE-Bedingungen von angeschlossenen Zusatztabellen Zugriffe auf Felder der entfernten Tabelle vorhanden sein können. Diese Zugriffe müssen entfernt werden.

Wurde die Struktur des Baumes so geändert, daß Tabellen jetzt in einer anderen Relation zueinander stehen, so müssen ebenfalls die Codings und die WHERE-Bedingungen der Zusatztabellen überprüft werden. Insbesondere ist zu beachten, daß jetzt andere Zugriffspfade im Baum vorliegen (Pfad vom Wurzelknoten bis zum aktuellen Knoten) und daß demzufolge eine andere Menge von Feldern zur Verfügung steht, auf die zugegriffen werden darf. Änderungen dieser Art sind generell als sehr kritisch zu bewerten. Es ist nicht mehr sicher, daß die Queries über einem solchen InfoSet noch ihre bisherige Funktion erfüllen. Sie müssen deshalb ebenfalls überprüft und falls erforderlich überarbeitet werden.

Wurde eine Tabelle aus der Struktur entfernt, deren Felder in Queries verwendet werden, so kann das InfoSet nicht neu generiert oder geändert werden, es ist praktisch nicht mehr verwendbar. In diesem Fall können über die Funktion Springen ® Queryverzeichnis auf dem Einstiegsbild der Komponente zur Pflege von InfoSets zunächst die Queries ermittelt werden, die die gestrichene Tabelle verwenden (diese Funktion wurde so erweitert, daß pro Query die angesprochenen Tabellen mit ausgegeben werden können). Diese Queries müssen entweder gelöscht oder so geändert werden, daß die gestrichene Tabelle nicht mehr angesprochen wird. Anschließend kann auch das InfoSet wieder generiert bzw. geändert werden.