Share via


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 Analysis Services 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.

HinweisHinweis

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).

  3. Ziehen Sie die InternetSales-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 InternetSalesReason-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 Verkaufsgrunds 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 von Measuregruppen.

  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 ist. 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 Measure 'Anzahl Internetverkaufsgrund'

Definieren der m:n-Dimension

So definieren Sie die m:n-Dimension

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Dimensionen, und klicken Sie dann auf Neue Dimension.

  2. Klicken Sie auf der Seite Willkommen auf Weiter.

  3. Überprüfen Sie, ob die Option Vorhandene Tabelle verwenden auf der Seite Erstellungsmethode auswählen ausgewählt ist, und klicken Sie dann auf Weiter.

  4. Überprüfen Sie auf der Seite Quellinformationen angeben, ob die Adventure Works DW-Datenquellensicht ausgewählt ist.

  5. Wählen Sie in der Liste Haupttabelle den Eintrag SalesReason aus.

  6. Überprüfen Sie in der Liste Schlüsselspalten, ob SalesReasonKey aufgelistet wird.

  7. Wählen Sie in der Liste Namensspalte den Eintrag SalesReasonName aus.

  8. Klicken Sie auf Weiter.

  9. Auf der Seite Dimensionsattribute auswählen wird das Sales Reason Key-Attribut automatisch ausgewählt, da es das Schlüsselattribut ist. Deaktivieren Sie das Kontrollkästchen neben dem Sales Reason Reason Type-Attribut, ändern Sie den Namen in Sales Reason Type, und klicken Sie dann auf Weiter.

  10. Klicken Sie auf der Seite Assistenten abschließen auf Fertig stellen, um die Sales Reason-Dimension zu erstellen.

  11. Klicken Sie im Menü Datei auf Alle speichern.

  12. Wählen Sie im Bereich Attribute des Dimensions-Designers für die Sales Reason-Dimension Sales Reason Key aus, und ändern Sie die Name-Eigenschaft im Fenster Eigenschaften in Sales Reason.

  13. Erstellen Sie im Bereich Hierarchien des Dimensions-Designers eine Sales Reasons-Benutzerhierarchie, die die Sales Reason Type-Ebene und die Sales Reason-Ebene in dieser Reihenfolge enthält.

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

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

  16. Um die neu erstellte Dimension als Cubedimension zum Analysis Services Tutorial-Cube hinzuzufügen, wechseln Sie zum Cube-Designer. Klicken Sie mit der rechten Maustaste in den Bereich Dimensionen der Registerkarte Cubestruktur, und wählen Sie die Option Cubedimension hinzufügen aus.

  17. Wählen Sie im Dialogfeld Cubedimension hinzufügen den Eintrag Sales Reason aus, und klicken Sie dann auf OK.

  18. Klicken Sie im Menü Datei auf Alle speichern.

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 Zelle am Schnittpunkt der Internet Sales-Measuregruppe und der Sales Reason-Dimension, und klicken Sie dann auf die Schaltfläche zum Durchsuchen ().

  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.

    Dialogfeld 'Beziehung definieren'

  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.

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. Löschen Sie alle Measures und Hierarchien im Datenbereich.

  4. Fügen Sie das Internet Sales-Sales Amount-Measure dem Datenbereich des Bereichs Daten hinzu.

  5. Fügen Sie die benutzerdefinierte Sales Reasons-Hierarchie aus der Sales Reason-Dimension dem Zeilenbereich des Datenbereichs hinzu.

  6. Erweitern Sie im Metadatenbereich Customer, erweitern Sie Location, erweitern Sie Customer Geography, erweitern Sie Members, erweitern Sie All Customers, erweitern Sie Australia, klicken Sie mit der rechten Maustaste auf Queensland, und klicken Sie dann auf Zu Teilcubebereich hinzufügen.

  7. 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.

    Bereiche 'Filter' und 'Daten' des Cube-Designers