Maybaygiare.org

Blog Network

Was ist Kardinalität in einer Datenbank?

Datenbanken haben viel Jargon, und Kardinalität ist eines dieser Wörter, die erfahrene Menschen vergessen, die sie einmal nicht kannten. Aber wenn Sie es nicht wissen — und es dauert eine Weile, um sich wirklich mit Kardinalität vertraut zu machen —, ist es sehr verwirrend, wenn der DBA es einfach in die Mitte eines Satzes fallen lässt, ohne langsamer zu werden! Fürchte dich nicht: Ich habe dich, wie sie sagen.Kardinalität bedeutet zwei Dinge in Datenbanken. Für unsere Zwecke ist das eine viel wichtiger als das andere. Lassen Sie uns zuerst das einfache tun und uns dann mit dem befassen, das für die Abfrageleistung wichtig ist.Die Definition der Kardinalität, die für die Abfrageleistung sehr wichtig ist, ist die Datenkardinalität. Hier geht es darum, wie viele verschiedene Werte in einer Spalte enthalten sind.Die erste Bedeutung von Kardinalität ist, wenn Sie die Datenbank entwerfen – was als Datenmodellierung bezeichnet wird. In diesem Sinne bedeutet Kardinalität, ob eine Beziehung eins zu eins, viele zu eins oder viele zu viele ist. Sie sprechen also wirklich über die Beziehung Kardinalität.Die offizielle, Nicht-Datenbank-Wörterbuchdefinition von Cardinality ist mathematisch: die Anzahl der Werte in einer Menge. Bei der Anwendung auf Datenbanken ist die Bedeutung etwas anders: Es handelt sich um die Anzahl der eindeutigen Werte in einer Tabellenspalte im Verhältnis zur Anzahl der Zeilen in der Tabelle. Wiederholte Werte in der Spalte zählen nicht.Normalerweise sprechen wir jedoch nicht über Kardinalität als Zahl. Es ist üblicher, einfach über „hohe“ und „niedrige“ Kardinalität zu sprechen. Viele unterschiedliche Werte sind hohe Kardinalität; Viele wiederholte Werte sind niedrige Kardinalität.Abbildung einer Produktbeschreibungstabelle in einer E-Commerce-Datenbank:Die ProductID Spalte wird eine hohe Kardinalität haben, da sie wahrscheinlich der Primärschlüssel dieser Tabelle ist, also völlig einzigartig. Wenn die Tabelle tausend Zeilen enthält, gibt es tausend verschiedene ProductID -Werte. Die Category Spalte wird viel Wiederholung haben, und es wird niedrige oder mittlere Kardinalität sein: vielleicht 50 oder 100 verschiedene Category Werte. Name ist wahrscheinlich eine hohe Kardinalität, es sei denn, diese Tabelle enthält mehr als auf den ersten Blick (z. B. mehrere Zeilen für verschiedene Produktfarben und andere Variationen).Kardinalität wirkt sich stark auf die Leistung aus, da sie den Abfrageausführungsplan beeinflusst. Der Planer untersucht Spaltenstatistiken und verwendet sie, um unter anderem herauszufinden, mit wie vielen Werten eine Abfrage wahrscheinlich übereinstimmt. Je nachdem, was gefunden wird, werden möglicherweise unterschiedliche Abfrageausführungspläne verwendet, um die beste Leistung zu erzielen. Aber das ist ein Thema für einen anderen Blog-Post, weil es ein bisschen Arbeit braucht, um explain.So jetzt, Das nächste Mal, wenn jemand „hohe Kardinalität“ in einen Satz fallen lässt, ohne eine Pause einzulegen, Sie wissen, dass sie wirklich „viele verschiedene Werte“ meinen.“ Und da hast du es!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.