Definieren einer m:n-Beziehung

Wenn Sie eine Dimension definieren, wird typischerweise jeder Fakt mit einem und nur einem Dimensionsmitglied verknüpft, wogegen ein einzelnes Dimensionselement vielen verschiedenen Fakten zugeordnet sein kann. Beispielsweise können für jeden Kunden mehrere Bestellungen vorliegen, aber jede Bestellung kann nur einem einzelnen Kunden zugeordnet sein. In der Terminologie von relationalen Datenbanken wird dies als 1:n-Beziehung bezeichnet. Manchmal kann allerdings ein einzelner Fakt mit mehreren Dimensionselementen verknüpft sein. In der Terminologie von relationalen Datenbanken wird dies als m:n-Beziehung bezeichnet. Ein Kunde kann beispielsweise mehrere Gründe für einen Kauf haben, und ein Kaufgrund kann mehreren Käufen zugeordnet sein. Eine Verknüpfungstabelle wird verwendet, um die Kaufgründe zu definieren, die sich auf den jeweiligen Kauf beziehen. Eine mit solchen Beziehungen konstruierte Sales Reason-Dimension würde dann mehrere Elemente aufweisen, die mit einer einzelnen Verkaufstransaktion verknüpft ist. Durch m:n-Beziehungen werden das dimensionale Modell über das klassische Sternschema hinaus erweitert und komplexe Analysen unterstützt, wenn Dimensionen nicht direkt mit einer Faktentabelle verknüpft sind.

In Microsoft SQL Server 2005 Analysis Services (SSAS) definieren Sie eine m:n-Beziehung zwischen einer Dimension und einer Measuregruppe, indem Sie eine Zwischenfakttabelle angeben, die mit der Dimensionstabelle verknüpft ist. Eine Zwischenfakttabelle ist wiederum mit einer Zwischendimensionstabelle verknüpft, die mit der Faktentabelle verknüpft ist. Von den m:n-Beziehungen zwischen der Zwischenfakttabelle und der Dimensionstabelle in der Beziehung und der Zwischendimension werden die m:n-Beziehungen zwischen Elementen der primären Dimension und Measures in der Measuregruppe erstellt, die durch die Beziehung angegeben wird. Damit eine m:n-Beziehung zwischen einer Dimension und einer Measuregruppe über eine Zwischenmeasuregruppe definiert werden kann, muss die Zwischenmeasuregruppe eine oder mehrere Dimensionen mit der ursprünglichen Measuregruppe gemeinsam nutzen.

Bei einer m:n-Beziehung werden die Werte getrennt summiert, was bedeutet, dass sie nicht mehr als einmal für das All-Element aggregiert werden.

ms170463.note(de-de,SQL.90).gifHinweis:
Eine Primärschlüssel-Fremdschlüssel-Beziehung muss in der Datenquellensicht zwischen allen beteiligten Tabellen definiert werden, um eine m:n-Beziehung zu unterstützen. Sie können sonst nicht die entsprechende Zwischenmeasuregruppe auswählen, wenn Sie die Beziehung auf der Registerkarte Dimensionsverwendung des Cube-Designers einrichten.

Weitere Informationen finden Sie unter Dimensionsbeziehungen und Definieren einer m:n-Beziehung und deren Eigenschaften.

In den Aufgaben in diesem Thema definieren Sie die Sales Reasons-Dimension und die Sales Reasons-Measuregruppe, und Sie definieren eine m:n-Beziehung zwischen der Sales Reason-Dimension und der Sales-Measuregruppe durch die Sales Reasons-Measuregruppe.

Hinzufügen erforderlicher Tabellen zur Datenquellensicht

So fügen Sie der Datenquellensicht erforderliche Tabellen hinzu

  1. Öffnen Sie den Datenquellensicht-Designer für die Adventure Works DW-Datenquellensicht.

  2. Klicken Sie mit der rechten Maustaste an eine beliebige Stelle im Bereich Diagrammplaner, klicken Sie auf Neues Diagramm, und geben Sie dann Internet Sales Order Reasons als Namen für dieses neue Diagramm an. Weitere Informationen finden Sie unter Verwenden von Diagrammen in einer Datenquellensicht (Analysis Services).

    Ein neues Diagramm wird ohne Tabellen erstellt und im Bereich Diagramm angezeigt.

  3. Ziehen Sie die InternetSales (dbo.FactInternetSales)-Tabelle aus dem Bereich Tabellen in den Bereich Diagramm.

  4. Klicken Sie mit der rechten Maustaste an eine beliebige Stelle im Bereich Diagramm, und klicken Sie dann auf Tabellen hinzufügen/entfernen.

  5. Fügen Sie im Dialogfeld Tabellen hinzufügen/entfernen der Liste Eingeschlossene Objekte die Tabellen DimSalesReason und FactInternetSalesReason hinzu, und klicken Sie dann auf OK.

    Beachten Sie, dass die Primärschlüssel-Fremdschlüssel-Beziehungen zwischen den beteiligten Tabellen automatisch eingerichtet werden, weil diese Beziehungen in der zugrunde liegenden relationalen Datenbank definiert werden. Wenn diese Beziehungen nicht in der zugrunde liegenden relationalen Datenbank definiert wären, müssten Sie sie in der Datenquellensicht definieren.

  6. Zeigen Sie im Menü Format auf Automatisches Layout, und klicken Sie dann auf Diagramm.

  7. Ändern Sie im Eigenschaftenfenster die FriendlyName-Eigenschaft der DimSalesReason-Tabelle zu SalesReason, und ändern Sie dann die FriendlyName-Eigenschaft der FactInternetSalesReason-Tabelle zu InternetSalesReason.

  8. Erweitern Sie im Bereich TabellenInternetSalesReason (dbo.FactInternetSalesReason), klicken Sie auf SalesOrderNumber, und überprüfen Sie dann die DataType-Eigenschaft für diese Datenspalte im Eigenschaftenfenster.

    Beachten Sie, dass der Datentyp für die SalesOrderNumber-Spalte ein Zeichenfolgendatentyp ist.

  9. Überprüfen Sie die Datentypen für die anderen Spalten in der FactInternetSalesReason-Tabelle.

    Beachten Sie, dass die Datentypen für die anderen zwei Spalten in dieser Tabelle numerische Datentypen sind.

  10. Klicken Sie im Bereich Tabellen mit der rechten Maustaste auf InternetSalesReason (dbo.FactInternetSalesReason), und klicken Sie dann auf Daten durchsuchen.

    Beachten Sie, dass für jede Zeilennummer innerhalb jeder Bestellung von einem Schlüsselwert der Verkaufsgrund für den Kauf von diesem Zeilenelement identifiziert wird, wie im folgenden Bild zu sehen.

    Schlüsselwert zum Identifizieren des Verkaufsgrundes für Käufe

Definieren der Zwischenmeasuregruppe

So definieren Sie die Zwischenmeasuregruppe

  1. Wechseln Sie zum Cube-Designer für den Analysis Services Tutorial-Cube, und klicken Sie dann auf die Registerkarte Cubestruktur.

  2. Klicken Sie mit der rechten Maustaste an eine beliebige Stelle im Bereich Measures, und klicken Sie dann auf Neue Measuregruppe. Weitere Informationen finden Sie unter Definieren und Konfigurieren einer Measuregruppe.

  3. Wählen Sie InternetSalesReason in der Liste Wählen Sie eine Tabelle aus der Datenquellensicht aus im Dialogfeld Neue Measuregruppe aus, und klicken Sie dann auf OK.

    Beachten Sie, dass die Internet Sales Reason-Measuregruppe jetzt im Bereich Measures angezeigt wird.

  4. Erweitern Sie die Internet Sales Reason-Measuregruppe.

    Beachten Sie, dass nur ein einzelnes Measure für diese neue Measuregruppe definiert ist, das Internet Sales Reason Count-Measure.

  5. Wählen Sie Internet Sales Reason Count aus, und überprüfen Sie die Eigenschaften dieses Measures im Eigenschaftenfenster.

    Beachten Sie, dass die AggregateFunction-Eigenschaft für dieses Measure als Count statt Sum definiert ist. Von Analysis Services wird Count ausgewählt, weil der zugrunde liegende Datentyp ein Zeichenfolgendatentyp war. Die anderen zwei Spalten in der zugrunde liegenden Faktentabelle wurden nicht als Measures ausgewählt, weil sie von Analysis Services als numerische Schlüssel statt tatsächliche Measures festgestellt wurden. Weitere Informationen finden Sie unter Definieren von semiadditivem Verhalten.

  6. Ändern Sie im Eigenschaftenfenster die Sichtbar-Eigenschaft des Internet Sales Reason Count-Measures in False.

    Dieses Measure wird nur verwendet, um die Sales Reason-Dimension zu verknüpfen, die Sie nach der Internet Sales-Measuregruppe definieren werden. Benutzer werden dieses Measure nicht direkt durchsuchen.

    Das folgende Bild zeigt die Eigenschaften für das Internet Sales Reason Count-Measure.

    Eigenschaften für das Internet Sales Reason Count-Measure

Definieren der m:n-Dimension

So definieren Sie die m:n-Dimension

  1. Klicken Sie auf der Registerkarte Cubestruktur im Cube-Designer für den Analysis Services Tutorial-Cube mit der rechten Maustaste an eine beliebige Stelle des Bereichs Dimensions, und klicken Sie dann auf Cubedimension hinzufügen.

  2. Klicken Sie im Dialogfeld Cubedimension hinzufügen auf Neue Dimension.

    Der Dimensions-Assistent wird geöffnet.

  3. Klicken Sie auf der Seite Willkommen auf Weiter.

  4. Klicken Sie auf der Seite Datenquellensicht auswählen auf Weiter, um die Daten für die Dimension aus der Adventure Works DW-Datenquellensicht auszuwählen.

  5. Klicken Sie auf der Seite Dimensionstyp auswählen auf Weiter, um anzugeben, dass die Dimension eine Standarddimension sein wird.

  6. Wählen Sie auf der Seite Hauptdimensionstabelle auswählendbo.DimSalesReason in der Haupttabelle-Liste aus, wählen Sie SalesReasonName in der Liste Spalte mit dem Elementnamen (optional) aus, und klicken Sie dann auf Weiter.

  7. Deaktivieren Sie auf der Seite Dimensionsattribute auswählen das Attributkontrollkästchen Sales Reason Alternate Key, ändern Sie den Namen des Sales Reason Reason Type-Attributs zu Sales Reason Type, und klicken Sie dann auf Fertig stellen.

  8. Klicken Sie auf der Seite Assistenten abschließen auf Fertig stellen, um die Sales Reason-Dimension zu erstellen, und klicken Sie dann auf OK, um dem Analysis Services Tutorial-Cube die neu erstellte Datenbankdimension als Cubedimension hinzuzufügen.

  9. Öffnen Sie den Dimensions-Designer für die Sales Reason-Dimension.

  10. Erstellen Sie im Bereich Hierarchien und Ebenen eine Sales Reasons-Hierarchie, die die Sales Reason Type-Ebene und die Sales Reason-Ebene in dieser Reihenfolge enthält.

  11. Definieren Sie im Eigenschaftenfenster All Sales Reasons als Wert für die AllMemberName-Eigenschaft der Sales Reasons-Hierarchie.

  12. Definieren Sie All Sales Reasons als Wert für die AttributeAllMemberName-Eigenschaft der Sales Reason-Dimension.

Definieren der m:n-Beziehung

So definieren Sie die m:n-Beziehung

  1. Wechseln Sie zum Cube-Designer für den Analysis Services Tutorial-Cube, und klicken Sie dann auf die Registerkarte Dimensionsverwendung.

    Beachten Sie, dass für die Sales Reason-Dimension eine reguläre Beziehung zur Internet Sales Reason-Measuregruppe definiert ist, nicht aber eine Beziehung zur Internet Sales-Measuregruppe oder zur Reseller Sales-Measuregruppe. Außerdem ist für die Internet Sales Order Details-Dimension eine reguläre Beziehung zur Internet Sales Reason-Dimension definiert, für die wiederum eine Faktenbeziehung zur Internet Sales-Measuregruppe besteht. Wäre diese Dimension nicht vorhanden (oder wäre eine andere Dimension, für die eine Beziehung sowohl zur Internet Sales Reason- als auch zur Internet Sales-Measuregruppe besteht, nicht vorhanden), könnten Sie die m:n-Beziehung nicht definieren.

  2. Klicken Sie auf die Schaltfläche mit den drei Punkten () in der Zelle am Schnittpunkt der Internet Sales-Measuregruppe und der Sales Reason-Dimension.

  3. Wählen Sie im Dialogfeld Beziehung definierenm:n in der Liste Beziehungstyp auswählen aus.

    Sie müssen die Zwischenmeasuregruppe definieren, die die Sales Reason-Dimension mit der Internet Sales-Measuregruppe verbindet.

  4. Wählen Sie in der Zwischenmeasuregruppe-Liste Internet Sales Reason aus.

    Das folgende Bild zeigt die Änderungen im Dialogfeld Beziehung definieren.

    Beziehung definieren (Dialogfeld)

  5. Klicken Sie auf OK.

    Beachten Sie, dass das m:n-Symbol die Beziehung zwischen der Sales Reason-Dimension und der Internet Sales-Measuregruppe darstellt, wie im folgenden Bild zu sehen.

    Beziehung zwischen Dimension und Measuregruppe

Durchsuchen des Cubes und der m:n-Dimension

Durchsuchen des Cubes und der m:n-Dimension

  1. Klicken Sie im Menü Erstellen auf Analysis Services Tutorial bereitstellen.

  2. Wechseln Sie nach dem erfolgreichen Abschluss der Bereitstellung zur Registerkarte Browser im Cube-Designer für den Analysis Services Tutorial-Cube, und klicken Sie dann auf Verbindung wiederherstellen.

  3. Entfernen Sie jede Ebene der Internet Sales Orders-Benutzerhierarchie aus dem Zeilenbereich des Bereichs Daten, und ersetzen Sie sie durch die Sales Reasons-Benutzerhierarchie aus der Sales Reason-Dimension.

  4. Überprüfen Sie, ob das Internet Sales-Sales Amount-Measure weiterhin im Datenbereich des Bereichs Daten angezeigt wird und ob das Adam Powell-Element der Customer-Dimension im Bereich Filter angezeigt wird. Ist dies nicht der Fall, fügen Sie dem Datenbereich das Internet Sales-Sales Amount-Measure und dem Teilcubebereich (Australia-Queensland-Brisbane-4000) das Adam Powell-Element der benutzerdefinierten Customer Geography-Hierarchie hinzu.

  5. Ändern Sie im Bereich Filter, dem oberen Bereich in der Mitte des Entwurfsbereichs, Filterausdruck zu Queensland, indem Sie das Kontrollkästchen für Adam Powell deaktivieren und das Kontrollkästchen für Queensland in der Filterausdruck-Liste aktivieren.

  6. Erweitern Sie jedes Mitglied der Sales Reason Type-Ebene, um die Dollarwerte zu überprüfen, die mit jedem Grund verknüpft sind, den ein Kunde in Queensland für den Kauf eines Adventure Works-Produkts über das Internet angegeben hat.

    Beachten Sie, dass die Gesamtsummen, die mit jedem Verkaufsgrund verknüpft sind, größer als die Gesamtverkäufe sind. Der Grund dafür ist, dass einige Kunden mehrere Gründe für ihren Kauf angegeben haben.

    Das folgende Bild zeigt den Bereich Filter und den Bereich Daten des Cube-Designers.

    Filter- und Datenbereiche des Cube-Designers

Nächste Aufgabe in dieser Lektion

Definieren von Dimensionsgranularität innerhalb einer Measuregruppe

Siehe auch

Andere Ressourcen

Dimensionsbeziehungen
Definieren einer m:n-Beziehung und deren Eigenschaften

Hilfe und Informationen

Informationsquellen für SQL Server 2005