Arbeiten mit Beziehungen und Kardinalität

Abgeschlossen

Im Gegensatz zu anderen Datenbankverwaltungssystemen gibt es in Power BI das Konzept der Direktionalität für Beziehungen. Diese Direktionalität spielt beim Filtern von Daten zwischen mehreren Tabellen eine entscheidende Rolle. Wenn Sie Daten laden, sucht Power BI automatisch nach den in den Daten vorhandenen Beziehungen, indem Spaltennamen abgeglichen werden. Sie können diese auch über die Option Beziehungen verwalten manuell bearbeiten.

Wenn Sie beispielsweise viele Tabellen aus der Sales-Datenbank abgerufen haben, würde Ihr semantisches Modell wie das in der folgenden Abbildung aussehen. Power BI hat mehrere Beziehungen automatisch ermittelt, aber Sie können deren Bedeutung nicht erkennen. Sie müssen sicherstellen, dass die Beziehungen genau den Beziehungen innerhalb der Daten entsprechen.

Screenshot des semantischen Beispielmodells

Beziehungen

Nachfolgend finden Sie verschiedene Arten von Beziehungen, die in Power BI vorkommen.

Viele-zu-eins-Beziehung (*:1) oder Eins-zu-viele-Beziehung (1: *)

  • Beschreibt eine Beziehung, in der viele Instanzen eines Werts in einer Spalte vorliegen, die nur mit einer Instanz in einer anderen Spalte in verknüpft sind

  • Beschreibt die Direktionalität zwischen Fakten- und Dimensionstabellen

  • Die häufigste Direktionalität und die Standardeinstellung in Power BI, wenn Beziehungen automatisch erstellt werden

Eine 1:n-Beziehung liegt beispielsweise zwischen den Tabellen CountryName und Territory vor, denn es gibt viele Gebiete, die mit nur einem Land verknüpft sind.

Screenshot der n:1-Beziehung (Viele-zu-eins)

Eins-zu-eins-Beziehung (1:1):

  • Beschreibt eine Beziehung, bei der zwei Tabellen nur eine Instanz eines Werts gemeinsam haben

  • Erfordert eindeutige Werte in beiden Tabellen

  • Wird nicht empfohlen, da in dieser Beziehung redundante Informationen gespeichert werden – deutet auf ein falsch entworfenes Modell hin, Tabellen sollten bevorzugt kombiniert werden.

Ein Beispiel für eine 1:1-Beziehung liegt vor, wenn Produkte und Produkt-IDs sich in zwei verschiedenen Tabellen befinden. Es ist überflüssig, eine 1:1-Beziehung zu erstellen. Diese Tabellen sollten kombiniert werden.

Screenshot der 1:1-Beziehung

Viele-zu-viele-Beziehung (.):

  • Beschreibt eine Beziehung, bei der zwei Tabellen viele Werte gemeinsam haben

  • Erfordert keine eindeutigen Werte in den Tabellen einer Beziehung

  • Wird nicht empfohlen, da ein Mangel an eindeutigen Werten zu Mehrdeutigkeit führt und Benutzer ggf. nicht wissen, worauf einzelne Wertspalten verweisen

Auf der folgenden Abbildung sehen Sie eine m:n-Beziehung zwischen den Tabellen Sales und Order, die für die Spalte OrderDate vorliegt, da mehreren Verkäufen auch mehrere Bestellungen zugeordnet werden können. So kommt es zu Mehrdeutigkeit, da beide Tabellen das gleiche Bestelldatum enthalten können.

Screenshot: m:n-Beziehung

Kreuzfilterrichtung

Daten können auf einer oder beiden Seiten einer Beziehung gefiltert werden.

Bei einer Kreuzfilterrichtung:

  • Es kann nur eine Tabelle in einer Beziehung verwendet werden, um die Daten zu filtern. Tabelle 1 kann beispielsweise nach Tabelle 2 gefiltert werden, aber Tabelle 2 nicht gleichzeitig nach Tabelle 1.

    Tipp

    Die Richtung des Beziehungspfeils zwischen Ihren Tabellen gibt an, in welche Richtung gefiltert wird. Dieser Pfeil sollte in der Regel auf die Faktentabelle zeigen.

  • Bei 1:n- und n:1-Beziehungen geht die Kreuzfilterrichtung von der 1-Seite aus. Das bedeutet, dass in der Tabelle gefiltert wird, die n-Werte enthält.

Bei zwei Kreuzfilterrichtungen oder bidirektionaler Kreuzfilterung:

  • Eine Tabelle in einer Beziehung kann verwendet werden, um die andere zu filtern. Beispielsweise kann eine Dimensionstabelle durch die Faktentabelle gefiltert werden und umgekehrt.

  • Die bidirektionale Kreuzfilterung bei m:n-Beziehungen kann sich negativ auf die Leistung auswirken.

Beachten Sie bei der bidirektionalen Kreuzfilterung Folgendes: Sie sollten die bidirektionale Kreuzfilterung nur anwenden, wenn Sie deren Auswirkungen vollständig verstanden haben. Der Einsatz kann zu Mehrdeutigkeit, Überquotierung, unerwarteten Ergebnissen und Leistungsbeeinträchtigung führen.

Kardinalität und Kreuzfilterrichtung

Bei 1:1-Beziehungen kann nur die bidirektionale Kreuzfilterung eingesetzt werden. Daten können auf beiden Seiten der Beziehung gefiltert werden. Das Ergebnis ist ein eindeutiger Wert. Sie können beispielsweise nach einer Produkt-ID filtern, damit ein einzelnes Produkt zurückgegeben wird oder umgekehrt.

Bei vielen m:n-Beziehungen können Sie in eine oder beide Richtungen filtern, indem Sie die bidirektionale Kreuzfilterung nutzen. Die Mehrdeutigkeit, die bei bidirektionaler Kreuzfilterung entsteht, wird bei m:n-Beziehungen noch verstärkt, da mehrere Pfade in verschiedenen Tabellen vorhanden sein werden. Wenn Sie Measures, Berechnungen oder Filter erstellen, kann es unbeabsichtigt dazu kommen, dass Ihre Daten falsch gefiltert werden und das Ergebnis (je nach Beziehung, die die Power BI-Engine beim Anwenden des Filters auswählt) abweicht. Das gilt auch für bidirektionale Beziehungen, weshalb Sie diese stets mit Bedacht einsetzen sollten.

Deshalb sind m:n-Beziehungen und/oder bidirektionale Beziehungen kompliziert. Sie müssen sicher sein, wie die Daten nach der Aggregierung aussehen sollen. Andernfalls können diese offenen Beziehungen mit mehreren Filterrichtungen zu mehreren Pfaden in den Daten führen.

Erstellen von m:n-Beziehungen

Nehmen Sie an, dass Sie ein Visual erstellen sollen, das Budgets für Kundenmitarbeiter und Kunden überprüft. Mehrere Kundenmitarbeiter können mit einem Kunden in Beziehung stehen und umgekehrt. Sie müssen also eine m:n-Beziehung erstellen.

Screenshot: m:n-Beziehung

Sie können unter Beziehungen verwalten>Neu eine Beziehung erstellen. Erstellen Sie im dadurch geöffneten Fenster eine Beziehung zwischen der Spalte für die Kunden-ID in den Tabellen CustomerTable und AccountTable. Die Beziehung ist auf m:n und der Filtertyp auf beide Richtungen eingestellt. Daraufhin werden Sie sofort gewarnt, dass Sie diese Beziehung nur verwenden sollten, wenn keine Spalte eindeutige Werte enthält, da es andernfalls zu unerwarteten Werten kommen kann. Da Sie in beide Richtungen filtern möchten, sollten Sie die bidirektionale Kreuzfilterung auswählen.

Klicken Sie auf OK. Sie haben nun erfolgreich eine m:n-Beziehung erstellt.

Screenshot: m:n-Beziehung in „Beziehungen verwalten“

Weitere Informationen finden Sie unter Anwenden von m:n-Beziehungen in Power BI Desktop.