Arbeiten mit Beziehungen und Kardinalität
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.
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.
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.
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.
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.
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.
Weitere Informationen finden Sie unter Anwenden von m:n-Beziehungen in Power BI Desktop.