Kardinalität und referenzielle Integrität
Für das Einrichten einer Datenquelle müssen Sie die Datenstruktur der einzelnen Tabellen und mögliche Kombinationen verstehen. Dabei ist es unerheblich, wie Sie die Daten kombinieren. Es gibt mehrere wichtige Aspekte, die berücksichtigt werden sollten:
- Detailgenauigkeit: wie detailliert die Daten sind – ihre Granularität. Darunter können Sie sich die Antwort auf die Frage "Was definiert eine Zeile?" vorstellen. Weitere Informationen zur Granularität finden Sie unter Strukturdaten für die Analyse.
- Freigegebenes Feld: Es muss mindestens ein Feld vorhanden sein, das für die Verknüpfung zwischen Tabellen verwendet werden kann. Für eine Verknüpfung definieren diese Felder die Join-Klausel. In verwandten Tabellen bestimmen sie die Beziehung.
- Kardinalität: Wie viele oder wie wenige eindeutige Werte es für das gemeinsame Feld gibt (Einzigartigkeit). Weitere Informationen finden Sie im nächsten Abschnitt.
- Referenzielle Integrität: Ein Wert in einer Tabelle hat garantiert eine Übereinstimmung in der anderen Tabelle. Mit anderen Worten kann es keinen Datensatz in einer Tabelle geben, für den kein entsprechender Datensatz in der anderen Tabelle vorliegt. Weitere Informationen finden Sie unten.
Kardinalität
Die Kardinalität in einer einzelnen Spalte oder in einem einzelnen Feld bezieht sich darauf, wie eindeutig die zugehörigen Werte sind. Eine geringe Kardinalität bedeutet, dass es nur wenige eindeutige Werte gibt (z. B. in einem Feld für die Augenfarbe). Eine hohe Kardinalität bedeutet, dass es viele eindeutige Werte gibt (z. B. ein Feld für Telefonnummern).
Die Kardinalität zwischen Tabellen ist ähnlich, bezieht sich jedoch darauf, ob eine Zeile aus einer Tabelle mit mehreren Zeilen in einer anderen Tabelle verknüpft werden könnte. (Denken Sie dabei daran, dass die Kardinalität nicht berücksichtigt, ob in beiden Tabellen Daten fehlen. Das Fehlen von Daten ist eine referenzielle Integrität. Obwohl diese Konzepte zusammenarbeiten, handelt es sich um zwei verschiedene Attribute der Beziehung.)
Die Optionen lauten eins-zu-eins, eins-zu-viele, viele-zu-eins oder viele-zu-viele.
Eins-zu-eins
Beispiel: Jedes Auto hat ein eigenes Kennzeichen, und ein Kennzeichen ist spezifisch für ein einzelnes Auto. Auto-zu-Kennzeichen ist eins-zu-eins. Selbst wenn ein Auto abgemeldet wird oder einem Auto noch kein Kennzeichen zugewiesen wurde, wird diese Diskrepanz durch die referenzielle Integrität beschrieben. Ein Auto kann nur ein Kennzeichen haben, und ein Kennzeichen kann nur einem Auto zugewiesen werden, so dass die Kardinalität eins-zu-eins bleibt. |
|
Eins-zu-viele oder Viele-zu-eins
Beispiele: Viele Arbeitnehmer haben den gleichen Vorgesetzten. Mitarbeiter-zu-Vorgesetzter ist viele-zu-eins. Vorgesetzter-zu-Mitarbeiter ist eins-zu-viele. |
|
Viele-zu-viele
Beispiele: Ein Schauspieler spielt in vielen Filmen, und in einem Film spielen viele Schauspieler. Schauspieler-zu-Film ist viele-zu-viele. Mehrere Bücher können in derselben Transaktion gekauft werden, und ein Buch kann mehrmals gekauft werden. ISBN-zu-Bestellnummer ist viele-zu-viele. |
|
Die Kardinalität kann in den Einstellungen für die Leistungsoptionen angegeben werden. Weitere Informationen finden Sie unter Optimieren von Beziehungsabfragen mithilfe von Leistungsoptionen.
Referenzielle Integrität
Es gibt ein verwandtes Konzept namens referenzielle Integrität. Demnach hat eine Zeile in einer Tabelle immer eine übereinstimmende Zeile in der anderen Tabelle, die durch den Wert ihrer freigegebenen Felder bestimmt wird. Wenn die Datenbank keine Datensätze für Fahrzeuge ohne Kennzeichen oder Kennzeichen ohne Autos enthält, weist diese Beziehung eine referenzielle Integrität auf.
In Tableau wird die referenzielle Integrität auf beiden Seiten der Beziehung konfiguriert. In den Einstellungen für die Leistungsoptionen bedeutet die Einige Datensätze stimmen überein, dass keine referenzielle Integrität vorliegt (oder Sie wissen nicht, ob sie vorliegt). Alle Datensätze stimmen übereinbedeutet, dass es eine referenzielle Integrität gibt. Bei der Standardeinstellung wird nicht davon ausgegangen, dass eine referenzielle Integrität vorliegt (einige Datensätze stimmen überein).
Weitere Informationen finden Sie unter Optimieren von Beziehungsabfragen mithilfe von Leistungsoptionen.
Testen Sie sich selbst
Können Sie die Kardinalität und referenzielle Integrität für jedes Diagramm definieren? Was bedeutet das in Worten?
Beispiel:
Wenn wir die linke Tabelle als Bücher und die rechte Tabelle als Autoren festlegen, die mit der AuthorID verknüpft sind, fassen Sie das Diagramm in Wörter:
- Ein Buch kann mehrere Autoren haben (die violetten Datensätze zeigen eine Zeile in der Buchtabelle auf der linken Seite, die mehreren Datensätzen in der Autorentabelle auf der rechten Seite entsprechen).
- Kein Autor hat mehrere Bücher (für jeden Autorendatensatz auf der rechten Seite wird nur ein Bucheintrag auf der linken Seite geführt).
- Es gibt keine Bücher ohne Autoren (keine Datensätze auf der linken Seite entsprechen nicht einem Datensatz auf der rechten Seite).
- Einige Autoren haben möglicherweise keine Bücher (für den grauen Autorendatensatz auf der rechten Seite gibt es keinen entsprechenden Bücherdatensatz auf der linken Seite.)
Klicken Sie auf die einzelnen Abschnitte unten, um sie zu erweitern.
Warum ist dies wichtig?
Mit einer korrekten Konfiguration der Kardinalitätseinstellungen oder referenziellen Integritätseinstellungen kann die Leistung durch Abfrageoptimierung gesteigert werden. Falsche Konfigurationen können jedoch zu Problemen bei der Aggregation aufgrund von Verlust oder Duplizierung von Daten führen. Die Standardeinstellungen für die Leistungsoption lauten Viele für die Kardinalität und Einige Datensätze stimmen überein für die referenzielle Integrität. Sie sollten nur angepasst werden, wenn Sie sich bezüglich der korrekten Eigenschaften Ihrer Daten sicher sind.
Weitere Informationen dazu, wie Tableau die einzelnen Einstellungen verarbeitet, finden Sie unter Was die Einstellungen für Kardinalität und referenzielle Integrität bedeuten.
Ein Beispiel in Tableau
Lassen Sie uns untersuchen, was passiert, wenn die Kardinalität nicht ordnungsgemäß konfiguriert ist.
Hinweis: Im folgenden Beispiel wird eine Teilmenge von Tabellen aus dem Der Bookshop-Datensatz verwendet. Sie können die Arbeitsmappe herunterladen, um das durchzuspielen, oder Sie können die Rohdaten herunterladen, um die Datenquellen selbst zu erstellen. Die verwendeten Tabellen sind Bücher, Info und Edition aus Bookshop.xlsx (nur einige Felder werden beibehalten) und LibraryProfile und Katalog aus BookshopLibraries.xlsx.
Die Tabellen "Buch" und "Info" haben eine 1:1-Beziehung – Info sind im Wesentlichen zusätzliche Spalten für die Tabelle "Buch". Aus diesem Grund ist es sinnvoll, sie zu verknüpfen, um eine neue logische Tabelle mit allen Spalten zu erstellen, obwohl sie miteinander verknüpft sein könnten. Die Edition hat eine n:1-Beziehung zu dieser kombinierten Tabelle, da es mehrere Ausgaben für ein einzelnes Buch geben kann (in der Regel mit unterschiedlichen Formaten). (Beachten Sie, dass das folgende Diagramm die Beziehung zwischen der Tabelle "Buch+Info" und "Edition" als 1:n zeigt.)
Die "Edition" ist mit dem "Katalog" als 1:n-Beziehung mit ISBN verknüpft. Die Tabellen "Katalog" und "LibraryProfile" sind mit der Bibliotheks-ID über eine n:n-Beziehung verknüpft. Der entscheidende Punkt ist, dass die Tabelle "LibraryProfiles" mehrere Zeilen pro Bibliothek enthält, eine für jeden Mitarbeitertyp (Bibliothekar, Bibliotheksassistent, Bibliothekstechniker). Weitere Informationen zur Struktur dieser Tabellen finden Sie unter Der Bookshop-Datensatz.
Die richtigen Einstellungen
Wenn die Katalog-LibraryProfile-Beziehung richtig eingerichtet ist, können wir eine einfache Visualisierung erstellen, die die Anzahl Mitarbeiter für jede Bibliothek für mehrere Bücher anzeigt. Obwohl die Erstellung dieser Visualisierung wenig sinnvoll erscheint, ist sie hilfreich, um den Sachverhalt zu veranschaulichen. Die Idle Hour-Bibliothek hat 130 Mitarbeiter, unabhängig davon, von welchem Buch wir sprechen. Es gibt drei Werte für den Personaltyp, sodass jede Gesamtzahl aus drei Datensätzen besteht – der Zahl in Klammern.
Anzahl Mitarbeiter nach Bibliothek und Titel. (Zahlen in Klammern geben die Anzahl Datensätze in jeder Markierung an.)
Die falschen Einstellungen: eins-zu-eins
Wenn die Beziehung fälschlicherweise als 1:1 festgelegt ist, wird in der Visualisierung jeder Titel aus dem Katalog effektiv mit nur einem Datensatz aus der LibraryProfile-Tabelle verbunden (wie durch die Datensatzanzahl in Klammern angegeben).
Anzahl Mitarbeiter nach Bibliothek und Titel. (Zahlen in Klammern geben die Anzahl Datensätze in jeder Markierung an.)
Oben können wir sehen, dass für jede Bibliothek nur die minimale Anzahl Mitarbeiter angezeigt wird. (Siehe die fett gedruckten Zahlen in der Visualisierung unten. Die niedrigste Anzahl Mitarbeiter ist die Zahl, die sich in der Visualisierung der Mitarbeiteranzahl widerspiegelt.)
Aufschlüsselung des Personals nach Typ und Bibliothek.
Weitere Informationen dazu, wie Beziehungen zu kontextbezogenen Verknüpfungen für eine Visualisierung werden, finden Sie unter Einführung in die neue Datenmodellierung in Tableau(Link wird in neuem Fenster geöffnet) im Tableau-Blog.
Die falsche Einstellung: Verbinden
Obwohl es Möglichkeiten gibt, diese Art von Problem zu umgehen (Detailgenauigkeitsausdrücke sind ein häufiges), kann das Verbinden von Tabellen, die eine unterschiedliche Granularität oder "viele" in ihrer Kardinalität aufweisen, zu Duplizierungen führen. Hier ist die Anzahl Mitarbeiter für Titel korrekt, die nur ein Format haben, aber für die Bücher, die zwei Formate in der Tabelle "Editionen" haben, wird diese Verdoppelung auch an die Anzahl Mitarbeiter weitergegeben (beachten Sie, dass die Datensatzanzahl in Klammern nicht 3, sondern fälschlicherweise 6 lautet).
Anzahl Mitarbeiter nach Bibliothek und Titel. (Zahlen in Klammern geben die Anzahl Datensätze in jeder Markierung an.)
Die falsche Einstellung: falsche Annahme der referenziellen Integrität
Wenn Tableau mitgeteilt wird, dass eine referenzielle Integrität vorliegt (alle Datensätze stimmen überein), obwohl dies nicht der Fall ist, können Werte ausgelassen werden. Hier sind diese beiden Visualisierungen ähnlich, aber die auf der rechten Seite stammt aus einer Datenquelle, die für die Annahme einer referenziellen Integrität konfiguriert ist. In der Visualisierung sind die Nullen verloren gegangen. Obwohl dies unter bestimmten Umständen in Ordnung sein kann, ist es wichtig zu verstehen, was diese Nullen bedeuten. Hier, wo die Visualisierung die Anzahl Editionen in den einzelnen Bibliotheken angibt, zeigen die Nullen zwei Editionen an, die zwar in der Editionstabelle vorhanden sind, aber in keiner Bibliothek vorliegen. Dies könnte ein wichtiges Versehen sein, bei dem fälschlicherweise davon ausgegangen würde, dass die referenzielle Integrität übersehen wird.
Untersuchen Sie die Arbeitsmappe und ihre Datenquellen, um zu prüfen, welche anderen Probleme durch falsch kombinierte Tabellen auftreten können.
Auswirkungen auf die Leistung
Wenn eine falsche Konfiguration dieser Einstellungen zu fehlenden oder duplizierten Daten führen kann, warum lässt Tableau dann überhaupt ihre Änderung zu? In vielen Fällen können und sollten Sie die Standardeinstellungen beibehalten: Tabellen verknüpfen statt verbinden, die Kardinalität als n:n belassen und nicht von einer referenziellen Integrität ausgehen. Dies ist vor allem dann der Fall, wenn Sie nicht sicher sind, was die Einstellungen bedeuten sollen.
Kardinalität und referenzielle Integrität sind jedoch Leistungsoptionen, da sie Auswirkungen auf die Leistung der Standardeinstellungen haben können. Wenn Sie sich bezüglich der Struktur Ihrer Daten sicher sind, kann das Konfigurieren der richtigen Einstellungen die Abfrageausführung reduzieren, um die Geschwindigkeit zu verbessern.
Unter der Haube
Hinweis: In diesem Abschnitt werden Analogien zu anderen Datenkombinationstechniken verwendet, um lediglich ein konzeptionelles Framework bereitzustellen. Es handelt sich nicht um eine technische Beschreibung, wie Tableau die Leistungseinstellungen für Beziehungen verwendet.
Kardinalität
Die Kardinalität der Beziehung wirkt sich auf den Zeitpunkt der Aggregation aus. Darunter kann die Verschmelzung verstanden werden. Bei der Datenverschmelzung werden zwei Datenquellen unabhängig voneinander abgefragt. Jede Datenquelle wird bei Bedarf unabhängig von der anderen Datenquelle auf die gewünschte Detailebene für die Ansicht aggregiert. Bei Beziehungen wirkt sich die Kardinalitätseinstellung darauf aus, ob die Aggregation vor oder nach der Verknüpfung erfolgt.
Im obigen Beispiel bedeutet die Einstellung "Viele", dass die Anzahl Mitarbeiter für jede Bibliothek aggregiert wird, bevor diese Daten mit den Buchinformationen kombiniert werden. Dadurch wird sichergestellt, dass für jedes Buch die richtigen Zahlen vorliegen. Wenn die Kardinalität fälschlicherweise auf "Eins" festgelegt ist, wurde die Anzahl Mitarbeiter vor dem Kombinieren mit den Buchdaten nicht aggregiert. Dies führt zu falschen Werten.
Beachten Sie, dass nicht nur die falschen Werte angezeigt werden, sondern alle Werte dem Mitarbeitertyp "Bibliothekare" zugewiesen werden, obwohl sie zu allen drei Mitarbeitertypen gehören. Eine fehlerhafte Konfiguration dieser Einstellung kann zu unvorhersehbaren und falschen Werten führen. Diese Filterung der Ergebnisse erfolgt nur, wenn ein Feld aus einer anderen Tabelle auf der anderen Seite der falsch festgelegten Beziehung in der Ansicht verwendet wird.
Wenn die Werte jedoch eindeutig sind, kann Tableau die Aggregation vor der Verknüpfung entfernen, wenn die Abfrage optimiert wird.
Referenzielle Integrität
Obwohl sich die referenzielle Integrität auf eine Einstellung für Beziehungen bezieht, können Sie sie sich als Verknüpfungstyp vorstellen. Bei einer vollständigen äußeren Verknüpfung werden alle Datensätze beibehalten, unabhängig davon, ob eine Übereinstimmung in der anderen Tabelle vorhanden ist oder nicht. Dies erfolgt jedoch zulasten der Leistung. Wenn Sie nicht sicher sind, ob Datensätze verloren gehen, ist eine äußere Verknüpfung sicherer. Auf diese Weise werden Tabellen behandelt, wenn möglicherweise keine referenzielle Integrität vorliegt (einige Datensätze stimmen überein).
Bei einer inneren Verknüpfung werden nur die Datensätze beibehalten, bei denen eine Übereinstimmung beider Tabellen vorliegt. Datensätze, die nicht in jeder Tabelle angezeigt werden, werden ausgelassen. Wenn Sie wissen, dass eine innere Verknüpfung die erforderlichen Daten nicht eliminiert, ist sie effizienter. Wenn die Leistungsoptionen auf "Alle Datensätze stimmen überein" festgelegt sind, wird von einer referenziellen Integrität ausgegangen, und Verknüpfungen werden ohne Berücksichtigung nicht übereinstimmender Werte ausgeführt.
Eine falsche Einstellung für die referenzielle Integrität kann filterartige Auswirkungen auf die kombinierten Daten haben, wobei nicht übereinstimmende Werte entfernt werden. Weitere Informationen zum Potenzial der Beibehaltung nicht übereinstimmender Datensätze finden Sie unter Fragen zu mehreren verwandten Tabellen im Tableau-Blog. Weitere Informationen zu den Verknüpfungstypen finden Sie unter Verknüpfen Ihrer Daten.
Beibehalten der Standardwerte
Wenn Ihre Analyse eine akzeptable Leistung aufweist, empfehlen wir dringend, die Standardeinstellungen für die Leistungsoptionen beizubehalten und keine referenzielle Integrität anzunehmen. Das Potenzial der Beziehungen ergibt sich aus ihrer Fähigkeit, genaue, kontextbezogene Ergebnisse basierend auf den Tabellen bereitzustellen, die in der Analyse verwendet werden. Wenn Sie diese Einstellungen ändern, wird die semantische Flexibilität von Beziehungen entfernt.