Was ist Kardinalität in Datenbanken?

85

Ich habe im ganzen Internet gesucht, aber ich konnte anscheinend keine Antwort finden, die ich verstehen kann.

Wenn mir jemand anhand von Beispielen erklären könnte, was ist Kardinalität in Datenbanken?

Vielen Dank.

Jemanden
quelle

Antworten:

122

Eine Quelle der Verwirrung kann die Verwendung des Wortes in zwei verschiedenen Kontexten sein - Datenmodellierung und Optimierung von Datenbankabfragen.

In Bezug auf die Datenmodellierung ist Kardinalität die Beziehung einer Tabelle zu einer anderen.

  • 1-1 (eine Zeile in Tabelle A bezieht sich auf eine Zeile in Tabelle B)
  • 1-Viele (eine Zeile in Tabelle A bezieht sich auf viele Zeilen in Tabelle B)
  • Viele-Viele (Viele Zeilen in Tabelle A beziehen sich auf viele Zeilen in Tabelle B)

Darüber hinaus gibt es optional die Teilnahmebedingungen an den oben (wo eine Zeile in einer Tabelle nicht funktioniert hat , überhaupt zu der anderen Tabelle zu beziehen).

Siehe Wikipedia zur Kardinalität (Datenmodellierung) .


Bei der Optimierung von Datenbankabfragen bezieht sich die Kardinalität auf die Daten in einer Spalte einer Tabelle, insbesondere auf die Anzahl der darin enthaltenen eindeutigen Werte. Diese Statistik hilft bei der Planung von Abfragen und der Optimierung der Ausführungspläne.

Siehe Wikipedia zur Kardinalität (SQL-Anweisungen) .

Oded
quelle
2
Würde eine Kardinalität von Null bedeuten, dass sich die beiden Tabellen nicht aufeinander beziehen?
Tyler
Kardinalität von Null? Kein Begriff, der viel gebraucht wird - aber ich nehme an, das würde das bedeuten. Normalerweise gibt es in einem ER-Diagramm keine Verbindungslinie zwischen solchen Tabellen, sodass keine Kardinalität angegeben werden muss.
Oded
Die Kardinalität Null bei der Datenmodellierung wird verwendet, um optionale Beziehungen anzuzeigen. Wie in 0..1 oder 0..n
Walter Mitty
Analogie zur mathematischen Konnotation des Begriffs Kardinalität: ** (Datenmodellierung) Kardinalität zwischen zwei Tabellen ist die Eindeutigkeit der Werte zwischen zwei Tabellen (Kardinalität als Funktion zwischen zwei Mengen) ** (Datenbankabfrageoptimierung) Kardinalität einer Tabelle ist wie einzigartig die Zeilen für diese Spalte sind (Kardinalität der Menge selbst)
harschvchawla
29

Es kommt ein bisschen auf den Kontext an. Kardinalität bedeutet die Anzahl von etwas, wird aber in einer Vielzahl von Kontexten verwendet.

  • Wenn Sie ein Datenmodell erstellen, bezieht sich Kardinalität häufig auf die Anzahl der Zeilen in Tabelle A, die sich auf Tabelle B beziehen. Das heißt, gibt es 1 Zeile in B für jede Zeile in A (1: 1), gibt es N Zeilen in B für jede Zeile in A (1: N) gibt es M Zeilen in B für jede N Zeilen in A (N: M) usw.
  • Wenn Sie sich beispielsweise ansehen, ob die Verwendung des ab * -tree-Index oder eines Bitmap-Index effizienter wäre oder wie selektiv ein Prädikat ist, bezieht sich die Kardinalität auf die Anzahl der unterschiedlichen Werte in einer bestimmten Spalte. Wenn Sie beispielsweise eine PERSONTabelle haben, GENDERist dies wahrscheinlich eine Spalte mit sehr niedriger Kardinalität (es sind wahrscheinlich nur zwei Werte enthalten GENDER), während PERSON_IDes sich wahrscheinlich um eine Spalte mit sehr hoher Kardinalität handelt (jede Zeile hat einen anderen Wert).
  • Wenn Sie sich Abfragepläne ansehen, bezieht sich Kardinalität auf die Anzahl der Zeilen, von denen erwartet wird, dass sie von einer bestimmten Operation zurückgegeben werden.

Es gibt wahrscheinlich andere Situationen, in denen Menschen in einem anderen Kontext über Kardinalität sprechen und etwas anderes bedeuten.

Justin Cave
quelle
8

In der Datenbank Kardinalitätsanzahl der Zeilen in der Tabelle.

Geben Sie hier die Bildbeschreibung ein img Quelle


Geben Sie hier die Bildbeschreibung ein img Quelle


  • Beziehungen werden nach ihrer Kardinalität (dh Anzahl der Elemente der Menge ) benannt und klassifiziert .
  • Symbole, die in der Nähe der Entität angezeigt werden, sind die maximale Kardinalität und das andere die minimale Kardinalität .
  • Entitätsbeziehung, zeigt das Ende der Beziehungslinie wie folgt:
    Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Bildquelle

Premraj
quelle
1
Bitte verwenden Sie Text, keine Bilder / Links, für Text - einschließlich Tabellen und ERDs . Paraphrase oder Zitat aus anderem Text. Geben Sie genau das, was Sie brauchen, und beziehen Sie es auf Ihr Problem. Verwenden Sie Bilder nur für das, was nicht als Text ausgedrückt werden kann, oder um Text zu erweitern. Bilder können nicht gesucht oder ausgeschnitten und eingefügt werden.
philipxy
4

Kardinalität bezieht sich auf die Eindeutigkeit der in einer Spalte enthaltenen Daten. Wenn eine Spalte viele doppelte Daten enthält (z. B. eine Spalte, in der entweder "wahr" oder "falsch" gespeichert ist), weist sie eine geringe Kardinalität auf. Wenn die Werte jedoch sehr eindeutig sind (z. B. Sozialversicherungsnummern), weist sie eine hohe Kardinalität auf.

Andrew
quelle
1
Kardinalität kann sich auf ein paar verschiedene Dinge beziehen, aber Odeds Antwort ist höchstwahrscheinlich das, wonach Sie suchen.
Andrew
-2

Die Kardinalität einer Menge ist der Name der Elemente in der Menge, da wir eine Menge a> a, b, c <haben. Diese Menge enthält also 3 Elemente. 3 ist die Kardinalität dieser Menge

user2923871
quelle
-2

Definition: Wir haben Tabellen in der Datenbank. In der relationalen Datenbank haben wir Beziehungen zwischen den Tabellen. Diese Beziehungen können eins zu eins, eins zu viele oder viele zu viele sein. Diese Beziehungen werden als "Kardinalität" bezeichnet.

Signifikant für die Kardinalität:

Viele relationale Datenbanken wurden nach den Geschäftsregeln von Stick entworfen. Wenn Sie die Datenbank entwerfen, definieren wir die Kardinalität basierend auf den Geschäftsregeln. Aber jedes Objekt hat auch seine eigene Natur.

Wenn Sie die Kardinalität zwischen Objekten definieren, müssen Sie all diese Dinge berücksichtigen, um die richtige Kardinalität zu definieren.

kta
quelle