<< >> Up Title Contents Index

Spaltenbeschränkungen

Der Wertebereich des Datentyps einer Spalte kann mit Hilfe von sogenannten Constraints zusätzlich eingegrenzt werden. Man unterscheidet hierbei einfache und komplizierte Constraints.

Von einfachen Constraints spricht man, wenn Bedingungen formuliert werden, die sich nur auf die eine zu definierende Spalte beziehen.

Eine Ober- und Untergrenze für einzutragende Werte kann beispielsweise über BETWEEN <untere Grenze> AND <obere Grenze> hergestellt werden. Das IN-Prädikat erlaubt eine Aufzählung der zulässigen Werte.

knr    FIXED (4)   CONSTRAINT knr BETWEEN 1 AND 9999

anrede CHAR  (7)   CONSTRAINT anrede IN ('Herr', 'Frau', 'Firma')

konto  FIXED (7,2) CONSTRAINT konto > -10000 AND
                              konto < 10000

Die Spezifizierung von NOT NULL bewirkt, daß einer Spalte ein Wert zugewiesen werden muß. Sie wird dann als Pflichtspalte (mandatory) bezeichnet. Ansonsten handelt es sich um eine optionale Spalte. Durch die Definition eines Constraints wird ebenfalls implizit festgelegt, daß der NULL-Wert nicht als Eingabe zugelassen ist.

Komplizierte Constraints sind dadurch gekennzeichnet, daß sie sich auf mehrere Spalten beziehen.

So ist es z. B. sinnvoll, in einer Tabelle 'buchung', die den Ankunfts- sowie den Abreisetag vermerkt, zu überprüfen, ob die Ankunft vor der Abreise liegt.

ankunft DATE NOT NULL

abreise DATE CONSTRAINT abreise > ankunft

Diese Bedingung kann nach Belieben erweitert werden:

abreise DATE CONSTRAINT abreise > ankunft 
                        AND abreise < '31.12.1996'

In einer CONSTRAINT-Definition kann bis auf wenige Einschränkungen alles formuliert werden, was auch als Suchbedingung gilt. Im Prinzip können beliebig viele Spalten angesprochen werden. Es ist jedoch zu beachten, daß die zusätzlichen Checks die Geschwindigkeit des Systems bei Änderungen auf dieser Tabelle herabsetzen. Mehrere Bedingungen können durch die Operatoren AND, OR und NOT verknüpft werden.


<< >> Up Title Contents Index