Arbeiten mit Beziehungen und Kardinalität
Anders als bei anderen Datenbankverwaltungssystemen gilt bei Power BI das Konzept der Direktionalität einer Beziehung. Die Direktionalität spielt eine wichtige Rolle beim Filtern von Daten aus mehreren Tabellen. Beim Laden von Daten sucht Power BI automatisch nach Beziehungen zwischen Daten. Dazu werden die Spaltennamen abgeglichen. Über Beziehungen verwalten können Sie diese Optionen auch manuell bearbeiten.
Sie haben zum Beispiel viele Tabellen aus der Datenbank „Sales“ abgerufen. Das folgende Bild ist ein Beispiel für Ihr semantisches Modell. Power BI hat automatisch mehrere Beziehungen erkannt, aber Sie können nicht erkennen, was sie bedeuten. Sie möchten sicherstellen, dass die Beziehungen genau den Beziehungen zwischen Ihren Daten entsprechen.
Beziehungen
Im Folgenden werden die verschiedenen Beziehungstypen aufgeführt, die es in Power BI gibt.
n:1‑ (*:1)
oder 1:n‑ (1: *)
Beziehung
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
Ist der häufigste Direktionalitätstyp und Standard in Power BI bei der automatischen Erstellung von Beziehungen
Ein Beispiel für eine 1:n-Beziehung sind die Tabellen „CountryName“ und „Territory“. In dieser Beziehung können viele Gebiete einem einzelnen Land zugeordnet sein.
1:1-Beziehung:
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; es ist besser, die Tabellen zu verbinden.
Eine 1:1-Beziehung liegt zum Beispiel vor, wenn Produkte und Produkt-IDs in zwei verschiedenen Tabellen aufgeführt werden. Die 1:1-Beziehung ist redundant. Die zwei Tabellen sollten in einer zusammengefasst werden.
n:n (.)-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 n:n-Beziehung zwischen den Tabellen „Sales“ und „Order“ für die Spalte OrderDate, da mehreren Verkäufen mehrere Aufträge zugeordnet werden können. So kommt es zu Mehrdeutigkeit, da beide Tabellen das gleiche Auftragsdatum haben können.
Kreuzfilterrichtung
Daten können auf einer oder auf beiden Seiten einer Beziehung gefiltert werden.
Einfache Kreuzfilterrichtung:
Für das Filtern von Daten kann nur eine Tabelle in einer Beziehung verwendet werden. So kann zum Beispiel Tabelle 1 nach Tabelle 2 gefiltert werden, aber Tabelle 2 nicht nach Tabelle 1.
Tipp
Die Richtung des Pfeils auf der Beziehung zwischen Ihren Tabellen zeigt an, in welche Richtung gefiltert wird. Dieser Pfeil sollte in der Regel auf die Faktentabelle zeigen.
Bei einer 1:n‑ oder n:1-Beziehung wird von der Seite „1“ aus gefiltert, das heißt, die Filterung erfolgt in der Tabelle mit den vielen Werten.
Zweifache Kreuzfilterrichtung bzw. bidirektionale Kreuzfilterung:
Es kann eine Tabelle in einer Beziehung zum Filtern der anderen verwendet werden. Eine Dimensionstabelle kann nach der Faktentabelle gefiltert werden und umgekehrt.
Die bidirektionale Kreuzfilterung bei n:n-Beziehungen kann sich negativ auf die Leistung auswirken.
Noch ein Hinweis zur bidirektionalen Kreuzfilterung: Sie sollten diese nur aktivieren, wenn Sie sich über die Auswirkungen im Klaren sind. Ihr Einsatz kann zu Mehrdeutigkeit, zu vielen Ergebnissen, unerwarteten Ergebnissen und Leistungsbeeinträchtigungen 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, um ein bestimmtes Produkt zu erhalten. Oder Sie können nach einem Produkt filtern, und erhalten eine Produkt-ID zurück.
Bei n:n-Beziehungen können Sie in eine oder mit der bidirektionalen Kreuzfilterung in beide Richtungen filtern. Die Mehrdeutigkeit, die bei der bidirektionalen Kreuzfilterung entsteht, wird bei n:n-Beziehungen noch verstärkt, da mehrere Pfade zwischen verschiedenen Tabellen bestehen. Wenn Sie ein Measure, eine Berechnung oder einen Filter erstellen, kann es beim Filtern Ihrer Daten zu unbeabsichtigten Folgen kommen. Je nachdem, welche Beziehung das Power BI-Modul beim Anwenden des Filters wählt, kann das Endergebnis unterschiedlich ausfallen. Das gilt auch für bidirektionale Beziehungen, weshalb Sie diese stets mit Bedacht einsetzen sollten.
Aus diesem Grund sind n:n-Beziehungen und/oder bidirektionale Beziehungen kompliziert. Sie müssen sich 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.
n:n-Beziehungen erstellen
Nehmen wir mal an, dass Sie ein Visual erstellen sollen, mit dem Budgets für Kunden und Konten überprüft werden sollen. Sie können mehrere Kunden auf demselben Konto und mehrere Konten für denselben Kunden haben. Sie müssen also eine n:n-Beziehung erstellen.
Gehen Sie zu Beziehungen verwalten>Neu, um diese Beziehung zu erstellen. Erstellen Sie im neu geöffneten Fenster eine Beziehung zwischen der Spalte Customer ID in den Tabellen CustomerTable und AccountTable. Die Beziehung ist auf n:n und der Filter auf beide Richtungen gesetzt. Es erscheint die Warnung, 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.
Wählen Sie OK aus. Sie haben nun erfolgreich eine n:n-Beziehung erstellt.
Weitere Informationen finden Sie unter n:n-Beziehungen in Power BI.