Databases Reference
In-Depth Information
4.3.1 Datentypen und Domänen
Eine Domäne ist vom theoretischen Konzept her die Menge zulässiger Werte, die
ein Attribut in einer Relation annehmen kann, verbunden mit einer Menge an
Operationen, die innerhalb der Wertemenge oder in Verbindung mit anderen Wer-
temengen ausgeführt werden kann. 9
CREATE DOMAIN gehört zum Datendefinitionsteil von SQL. Die Syntax lautet in der
Grundform: 10
CREATE DOMAIN domänenname [AS] datentyp
[default]
[bedingung]
Die Domänendefinition wird im Datenwörterbuch abgelegt. Jede Domäne muss
einen eindeutigen Namen erhalten. Die Bedingung, die den Wertebereich ein-
schränkt, wird durch eine CHECK-Klausel definiert, in der eine Suchbedin-
gung wie in der WHERE-Klausel der SELECT-Anweisung angegeben wird.
Dabei kann beispielsweise auch festgelegt werden, ob Nullmarken zulässig
sind. Wir sind allerdings der Auffassung, dass diese Festlegung gar nicht der
Domäne selbst zukommt, wenn diese eine Wertemenge beschreibt. NULL ist kein
Wert und kann daher auch nicht Element einer Wertemenge sein. Nullmarken
zuzulassen ist eine Frage der Attributdefinition. Dabei können für Attribute, die
sich auf dieselbe Domäne beziehen, auch unterschiedliche Festlegungen getrof-
fen werden. Eine Kundennummer als Primärschlüssel darf keine Nullmarke
enthalten, dasselbe ist für Fremdschlüssel aber in bestimmten Fällen durchaus
denkbar.
Aus einem ähnlichen Grund gehört auch die Default-Klausel eigentlich nicht in
die Domänendefinition, sondern in die Spaltendefinition einer Tabelle mit CREATE
TABLE . Verschiedene Spalten können derselben Domäne angehören, aber unter-
schiedliche Vorgabewerte haben. Der SQL-Standard trifft unseres Erachtens den
Sinn der Sache hier nicht. Domänen sind hier letztlich nicht mehr als eine Abtren-
nung von Elementen der Spaltendefinition (CHECK), auf die von mehreren Spal-
ten aus Bezug genommen werden kann. 11
Das Problem der erlaubten und verbotenen Operationen ist nicht Bestandteil der
CREATE DOMAIN-Anweisung, sondern wird im Standard unter dem Titel »Abs-
trakte Datentypen« behandelt. Wir erläutern dieses Konzept in Kapitel 9.
9 Vergleiche Abschnitt 2.1.2.
10 Die formale Syntaxbeschreibung ist im Anhang A beschrieben.
11 Melton, Mitglied des Standardisierungskomitees, sagt dazu: »'We were once fans of SQL's
domain capabilities. However, they have proved to be less useful than originally hoped, and
future editions of the SQL standard may actually delete the facility entirely.« [Melt02 S. 98]
 
Search WWH ::




Custom Search