Share via


Lektion 5-3: Definieren einer m:n-Beziehung

Gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Wenn Sie eine Dimension definieren, wird typischerweise jeder einzelne Fakt (fact) mit genau einem Dimensionsmitglied verknüpft, wohingegen 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 relationaler 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-Beziehungbezeichnet. Ein Kunde kann beispielsweise mehrere Gründe für einen Kauf haben, und ein Kaufgrund kann mehreren Käufen zugeordnet sein. Eine Jointabelle 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 SQL Server Analysis Services definieren Sie eine m:n-Beziehung zwischen einer Dimension und einer Measuregruppe, indem Sie eine zwischengeschaltete Faktentabelle 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.

Hinweis

Um eine m:n-Dimensionsbeziehung zu unterstützen, muss in der Datenquellensicht zwischen allen beteiligten Tabellen eine Primärschlüssel-Fremdschlüssel-Beziehung definiert werden. 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 Dimensionsbeziehungenund 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

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

  2. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle im Bereich Diagrammplaner , klicken Sie auf Neues Diagramm, und geben Sie anschließend Internet Sales Order Reasons als Namen für dieses neue Diagramm an.

  3. Ziehen Sie die InternetSales -Tabelle aus dem Bereich Tabellen in den Bereich Diagramm .

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

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

    Beachten Sie, dass die Primärschlüssel-Fremdschlüsselbeziehungen zwischen den beteiligten Tabellen automatisch eingerichtet werden, da diese Beziehungen in der zugrunde liegenden relationalen Datenbank definiert sind. 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 anschließend auf Diagramm.

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

  8. Erweitern Sie InternetSalesReason (dbo.FactInternetSalesReason) im Bereich Tabellen, klicken Sie auf SalesOrderNumber, und überprüfen Sie anschließend 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 anschließend 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 in der folgenden Abbildung zu sehen.

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

Definieren der Zwischenmeasuregruppe

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

  2. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle im Bereich Measures und anschließend auf Neue Measuregruppe. Weitere Informationen finden Sie unter Erstellen von Measures und Measuregruppen in mehrdimensionalen Modellen.

  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 anschließend 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.

    Die AggregateFunction -Eigenschaft für dieses Measure wurde als Count anstelle von Sumdefiniert. SQL Server Analysis Services anzahl ausgewählt, da der zugrunde liegende Datentyp ein Zeichenfolgendatentyp ist. Die anderen beiden Spalten in der zugrunde liegenden Faktentabelle wurden nicht als Measures ausgewählt, da SQL Server Analysis Services sie als numerische Schlüssel und nicht als tatsächliche Measures erkannt haben. Weitere Informationen finden Sie unter Semiadditives Verhalten definieren.

  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.

    Die folgende Abbildung zeigt die Eigenschaften für das Internet Sales Reason Count -Measure.

    Eigenschaften für das Measure

Definieren der m:n-Dimension

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

  2. Klicken Sie auf der Seite Willkommen beim Dimensions-Assistenten auf Weiter.

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

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

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

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

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

  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 anschließend 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 Keyaus, 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 dem SQL Server Analysis Services Tutorial-Cube als Cubedimension hinzuzufügen, wechseln Sie zu Cube Designer. Klicken Sie mit der rechten Maustaste in den Bereich Dimensionen der Registerkarte Cubestruktur , und wählen Sie die Option Cubedimension hinzufügenaus.

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

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

Definieren der m:n-Beziehung

  1. Wechseln Sie zum Cube Designer für den SQL Server 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 anschließend 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 Reasonaus.

    Die folgende Abbildung zeigt die Änderungen im Dialogfeld 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.

Durchsuchen des Cubes und der m:n-Dimension

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

  2. Wenn die Bereitstellung erfolgreich abgeschlossen wurde, wechseln Sie im Cube Designer für den SQL Server Analysis Services Tutorial-Cube zur Registerkarte Browser, und klicken Sie dann auf Erneut verbinden.

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

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

  5. Erweitern Sie im Metadatenbereich Customer, Location, Customer Geography, Members, All Customers, Australia, klicken Sie mit der rechten Maustaste auf Queenslandund anschließend auf Zu Filter hinzufügen.

  6. Erweitern Sie jedes Mitglied der Ebene Verkaufsgrundtyp , um die Dollarwerte zu überprüfen, die jedem Grund zugeordnet 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.

    Die folgende Abbildung zeigt den Bereich Filter und den Bereich Daten des Cube-Designers.

    Filter- und Datenbereiche in den Bereichen Cube Designer

Nächste Aufgabe in der Lektion

Definieren von Dimensionsgranularität innerhalb einer Measuregruppe

Weitere Informationen

Verwenden von Diagrammen im Datenquellensicht-Designer (Analysis Services)
Dimensionsbeziehungen
Definieren einer m:n-Beziehung und deren Eigenschaften