Sie können unter INFERENCES nicht nur Werte herleiten, sondern bei einschränkbaren Merkmalen auch den Wertebereich einschränken.
Dazu muß bei der Merkmalpflege das Merkmal der Klasse als
einschränkbar
gekennzeichnet worden sein (vgl. Thema
Einschränkbare Merkmale
).
Die herzuleitenden Variablen müssen entweder alle einschränkbar oder alle nicht einschränkbar sein.
Hinweis
Die Einschränkung von Wertebereichen geht zu Lasten der Performance Ihres Systems.
Bei der Verwendung von Tabellen zur Einschränkung des Wertebereiches kommt es insbesondere auf die Größe der Tabelle und auf die Anzahl der Tabellenspalten an, die für Herleitungen verwendet werden.
Es gibt verschiedene Möglichkeiten, um den Wertebereich einzuschränken:
Einschränken über Tabellenzugriff
Um den Wertebereich eines Merkmals über ein Constraint dynamisch zu verwalten, können Sie sich auf Tabellen beziehen. Sie können in der Tabellenpflege zulässige Wertkombinationen definieren. Sie können in einem Constraint auf die Tabelle zugreifen. Entsprechend den Kombinationen in der Tabelle kann dann der Wertebereich für Merkmale eingeschränkt werden.
Weitere Hinweise zum Arbeiten mit Tabellen erhalten Sie im Abschnitt
Tabellen und Funktion
Thema
Tabellen in Constraints
.
Einschränkung über IN
Eine weitere Möglichkeit, Angaben zu einem zulässigen Wertebereich zu machen, besteht darin, über den Ausdruck IN die zulässigen Werte anzugeben:
OBJECTS: PC IS_A (300) PC WHERE GH = Gehaeuse;FP = Festplatte.
RESTRICTIONS:
FP IN (‘1275’, ‘1620’, ‘2000’) IF GH = ‘Tower’.
INFERENCES:
FP.
Einschränken über lineare Funktion
Diese Art der Einschränkung ist nur bei numerischen Merkmalen möglich. Im Restriktionsteil eines Constraints, kann für einschränkbare, numerische Merkmale eine Einschränkung der Form f(x) < 0 (rechte Seite konstanter Wert) angegeben werden, wenn f(x) ein linearer Ausdruck in der Variablen X ist. An Stelle von ‘<‘ sind auch alle anderen Vergleichsoperatoren zulässig.
Beispiel
RESTRICTIONS:
5L - 20 > 0
Einschränken über Vergleich
Sie können den Wertebereich für Character-Merkmal über den Vergleich zweier Character-Merkmale einschränken:
OBJECTS: PC is_a (300)PC
RESTRICTIONS:
PC.FARBE_1 = PC.FARBE_2
INFERENCES:
PC.FARBE_1
Farbe_1 und Farbe_2 sind beides einschränkbare Merkmale. Dem Merkmal FARBE_1 werden über das Constraint die gleichen Werte wie dem Merkmale FARBE_2 zugewiesen.