Gegeben sind nicht notwendigerweise unterschiedliche
Wertebereiche
(auch Domänen genannt)
, welche nur atomare Werte enthalten,
die nicht strukturiert sind, z.B. Zahlen oder Strings.
Eine Relation ist definiert als Teilmenge des
kartesischen Produkts der
Domänen:
Es wird unterschieden zwischen dem Schema einer Relation,
gegeben durch die Domänen und der aktuellen Ausprägung
(Instanz). Ein Element der Menge
wird als Tupel bezeichnet,
dessen
sich aus dem Relationenschema ergibt.
Wir bezeichnen mit sch(R)
oder mit
=
die Menge der Attribute und mit
die aktuelle Ausprägung.
Mit dom(A) bezeichnen wird die Domäne eines Attributs
.
Also gilt
Im Datenbankbereich müssen die Domänen außer einem Typ noch einen Namen haben. Wir werden Relationenschemata daher durch eine Folge von Bezeichner/Wertebereich - Tupeln spezifizieren, z.B.
Hierbei wird in den eckigen Klammern [ ]
angegeben, wie die Tupel aufgebaut
sind, d.h. welche Attribute vorhanden sind und welchen
Wertebereich sie haben.
Ein Schlüsselkandidat wird
unterstrichen. Die geschweiften Klammern {
}
sollen ausdrücken, daß es sich bei einer Relationenausprägung
um eine Menge von Tupeln handelt.
Zur Vereinfachung wird der Wertebereich auch manchmal weggelassen: