IBM® Informix® 12.10

Auflösungen von m:n-Beziehungen

Viele-zu-viele-Beziehungen (m:n) machen Ihr Datenmodell und den Prozess der Anwendungsentwicklung komplexer und schwer durchschaubar. Der Schlüssel zum Auflösen von m:n-Beziehungen besteht darin, die beiden Entitäten zu trennen und durch eine dritte Schnittmengenentität Eins-zu-viele-Beziehungen (1:n) zwischen ihnen zu erzeugen. Die Schnittmengenentität enthält normalerweise Attribute aus beiden verknüpften Entitäten.

Analysieren Sie Ihre Geschäftsregeln erneut, um eine m:n-Beziehung aufzulösen. Haben Sie die Beziehung im Diagramm korrekt dargestellt? Im Beispieltelefonverzeichnis besteht eine m:n-Beziehung zwischen den Entitäten name und fax, wie in Abbildung 1 dargestellt. Die Geschäftsregeln besagen: “Eine Person kann keine, eine oder viele Telefaxnummern haben; eine Telefaxnummer kann für mehrere Personen gelten.” Basierend auf unserer zuvor getroffenen Auswahl des Primärschlüssels für die Entität voice (Rufnummer) besteht eine m:n-Beziehung.

Ein Problem besteht im Zusammenhang mit der Entität fax, da die Telefonnummer, die als Primärschlüssel deklariert ist, in der Entität fax mehrmals vorkommen kann. Dies widerspricht der Definition eines Primärschlüssels. Primärschlüssel müssen eindeutig sein.

Zum Auflösen dieser m:n-Beziehung können Sie eine Schnittmengenentität zwischen den Entitäten name und fax einfügen, wie in Abbildung 1 gezeigt. Die neue Schnittmengenentität faxname (Telefaxname) enthält zwei Attribute, fax_num (Telefaxnummer) und rec_num (Datensatznummer). Der Primärschlüssel für die Entität ist eine Kombination aus beiden Attributen. Für sich allein genommen ist jedes Attribut ein Fremdschlüssel, der auf die Tabelle verweist, aus der es stammt. Zwischen den Tabellen name und faxname besteht eine 1:n-Beziehung, weil ein Name zwar vielen Telefaxnummern zugeordnet sein kann, jede Kombination von faxname hingegen nur einem Exemplar von rec_num. Zwischen den Tabellen fax und faxname besteht eine 1:n-Beziehung, weil jede Nummer vielen Kombinationen von faxname zugeordnet sein kann.
Abbildung 1. Auflösen einer Viele-zu-viele-Beziehung (m:n)
Das Diagramm besteht aus zwei Teilen. Ein Teil zeigt die Situation vor dem Hinzufügen einer Schnittmengenentität, der andere die Situation nach dem Hinzufügen einer Schnittmengenentität. Alle Attribute sind in den Entitäten angegeben, aber nur die Primär- und Fremdschlüssel werden in diesem Text beschrieben. Auf der Seite 'BEFORE' des Diagramms hat die Entität 'name' den Primärschlüssel 'rec_num'. Sie ist mit der Entität 'fax' verbunden, die den Primärschlüssel 'fax_num' und den Fremdschlüssel 'rec_num' hat. Das 'fax'-Ende der Beziehungslinie weist die Symbole für 'viele' und 'optional' auf. Das 'name'-Ende der Beziehungslinie weist das Symbol für 'viele' auf. Auf der Seite 'NACHHER' wurde eine neue Entität zwischen 'name' und 'fax' hinzugefügt. Die neue Entität hat den Namen 'faxname'. Ein Hinweis verweist darauf, dass 'faxname' die Schnittmengenentität ist. Die Entität 'faxname' weist einen aus den beiden Attributen 'fax_name' und 'rec_num' bestehenden Primärschlüssel auf. Diese beiden Attribute werden als Fremdschlüssel verwendet. Die Entität umfasst keine weiteren Attribute. Die Entität 'fax' hat den Primärschlüssel 'fax_num' und keinen Fremdschlüssel. Die Entität 'name' hat den Primärschlüssel 'rec_num' und keinen Fremdschlüssel. Es gibt eine Beziehungslinie zwischen 'faxname' und 'fax'. Das 'fax'-Ende der Linie weist keine besonderen Symbole auf. Das 'faxname'-Ende der Linie weist das Symbol für 'viele' auf. Es gibt auch eine Beziehungslinie zwischen 'name' und 'faxname'. Das 'name'-Ende der Linie weist keine besonderen Symbole auf. Das 'faxname'-Ende der Linie weist die Symbole für 'optional' und 'viele' auf.


Feedback | Beispielaustausch | Fehlerbehebung

Die PDF-Datei finden Sie unter Publications for the IBM Informix 12.10 family of products.
Releaseinformationen, Dokumentationshinweise und/oder Systeminformationen finden Sie auf der Seite Releaseinformationen.
Zeitmarke Freigabedatum: März 2013