wake-up-neo.com

was ist Kardinalität in Datenbanken?

ich habe im ganzen Internet gesucht, aber es scheint keine Antwort zu geben, die ich verstehen kann.

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

Danke dir.

67
Some Body

Eine Quelle der Verwirrung kann die Verwendung von Word in zwei verschiedenen Kontexten sein - Datenmodellierung und Datenbankabfrageoptimierung.

In Bezug auf die Datenmodellierung bezieht sich Kardinalität auf die Beziehung zwischen einer Tabelle und einer anderen.

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

Es gibt auch optionale Teilnahmebedingungen für die oben genannten (wobei sich eine Zeile in einer Tabelle nicht mit have auf die andere Tabelle bezieht).

Siehe Wikipedia über Kardinalität (Datenmodellierung) .


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

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

96
Oded

Es hängt etwas vom Kontext ab. Kardinalität bedeutet die Anzahl von etwas, wird jedoch in einer Vielzahl von Zusammenhängen 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 für jede Zeile in A (1: 1) eine Zeile in B, 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 die Dinge untersuchen, beispielsweise, ob es effizienter wäre, einen B * -Tree-Index oder einen Bitmap-Index zu verwenden oder wie selektiv ein Prädikat ist, bezieht sich Kardinalität auf die Anzahl unterschiedlicher Werte in einer bestimmten Spalte. Wenn Sie eine PERSON-Tabelle haben, ist GENDER wahrscheinlich eine Spalte mit sehr niedriger Kardinalität (wahrscheinlich gibt es nur zwei Werte in GENDER), während PERSON_ID wahrscheinlich eine Spalte mit sehr hoher Kardinalität ist (jede Zeile hat einen anderen Wert). .
  • Wenn Sie Abfragepläne betrachten, bezieht sich Kardinalität auf die Anzahl der Zeilen, die von einer bestimmten Operation zurückgegeben werden sollen.

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

25
Justin Cave

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, die entweder "true" oder "false" speichert), hat sie eine geringe Kardinalität, aber wenn die Werte sehr eindeutig sind (z. B. Sozialversicherungsnummern), hat sie eine hohe Kardinalität.

2
Andrew

In der Datenbank verweist Cardinality auf eine Reihe von Zeilen in der Tabelle.

enter image description here img source


enter image description here img source


  • Beziehungen werden nach ihrer cardinality benannt und klassifiziert (d. H. Anzahl der Elemente der Menge ). 
  • Symbole, die der Entität als geschlossen erscheinen, sind Maximum cardinality und die andere ist minimum cardinality.
  • Entity-Relation zeigt das Ende der Relationship-Zeile wie folgt:
    enter image description here

enter image description here

bild Quelle

1
Premraj