prev up next

Definition

Gegeben sind $n$ nicht notwendigerweise unterschiedliche Wertebereiche (auch Domänen genannt) $D_1, \ldots, D_n$, welche nur atomare Werte enthalten, die nicht strukturiert sind, z.B. Zahlen oder Strings.

Eine Relation $R$ ist definiert als Teilmenge des kartesischen Produkts der $n$ Domänen:

\begin{displaymath}R \subseteq D_1 \times D_2 \times \ldots \times D_n\end{displaymath}

Es wird unterschieden zwischen dem Schema einer Relation, gegeben durch die $n$ Domänen und der aktuellen Ausprägung (Instanz). Ein Element der Menge $R$ wird als Tupel bezeichnet, dessen $Stelligkeit$ sich aus dem Relationenschema ergibt. Wir bezeichnen mit sch(R) oder mit = $A_1, \ldots, ~A_n$ die Menge der Attribute und mit $R$ die aktuelle Ausprägung. Mit dom(A) bezeichnen wird die Domäne eines Attributs $A$. Also gilt


\begin{displaymath}R \subseteq {\rm dom}(A_1) \times {\rm dom}(A_2) \times
\ldots \times {\rm dom}(A_n)\end{displaymath}

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.

Telefonbuch : { [Name : string, Adresse: string, TelefonNr : integer ] }

Hierbei wird in den eckigen Klammern [ $\ldots$ ] 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 { $\ldots$ } sollen ausdrücken, daß es sich bei einer Relationenausprägung um eine Menge von Tupeln handelt. Zur Vereinfachung wird der Wertebereich auch manchmal weggelassen:

Telefonbuch : { [Name, Adresse, TelefonNr ] }


prev up next