私の教科書 データベースシステム は、カーディナリティを次のように定義します。
関係のカーディナリティは、関係に含まれるタプルの数です。対照的に、タプルの数は関係のカーディナリティーと呼ばれ、タプルが追加または削除されると、これは変化します。高カーディナリティ-多くのタプル、低カーディナリティ-少数のタプル。
カーディナリティ(SQLステートメント) に関するWikipediaの記事では、次のように定義しています。
カーディナリティとは、データベーステーブルの特定の列(属性)に含まれるデータ値の一意性を指します。カーディナリティが低いほど、列内の重複要素が多くなります。カーディナリティには、高カーディナリティ、通常のカーディナリティ、および低カーディナリティの3つのタイプがあります。
どちらも正しいかもしれませんが、2つの定義を関連する定義として接続できません。言い換えれば明言されます!
彼らは同じことを話している、それはタプル(relational algebra
)または行(素人の用語)。
高いカーディナリティが特定の属性(またはフィールド)の可能な値であり、一意であるため、行またはタプルの数が多いと示されている場合:
例:
StudentID Lastname Firstname Gender
101 Smith John M
102 Jones James M
103 Mayo Ann F
104 Jones George M
105 Smith Suse F
StudentIDまでは、cardinality
は一意であるため、high
になります。これには、5つのタプル/行があります。
一方、Lastnameのカーディナリティは通常であり、特に一意のタプル/行は3つしかありません。したがって、それはnormal cardinality
。
そして最後にGenderには可能な一意のタプルが2つしかないため、Low Cardinality
。
おそらく、ここでCardinality
とDegree
を、attributes/fields
リレーション(またはテーブル)。
一方、Database
の教科書は、Cardinality
について話すとき、通常、あるエンティティと別のエンティティとの関係に関係しています。つまり、特定の関係タイプ。したがって、たとえばbinary relationship
cardinality
はone-to-one
、one-to-many
またはmany-to-many
。
どちらの定義も、カーディナリティーは「行数」であると言っています。違いは、比較が「テーブル内」であるか「特定の列内」であるかです。
データベースのテキストブックのバージョンは、リレーショナル代数とテーブルの構造(その用語では「リレーション」)に焦点を当てています。
ウィキペディアのエントリの方が実用的です。これには、テーブルに主キーがあると仮定して、テキストブックの定義が含まれます(主キーのカーディナリティはテーブルと同じです)。ただし、フラグカラムなどにも適用できます。フラグが2つの値(0
対 1
)の場合、列のカーディナリティは2であると言えます。
これはクエリを最適化するために重要です。カーディナリティは、データを結合、集計、選択するための最良の方法を選択する際の1つの要素です。実際には、ほとんどのデータベースは、カーディナリティーよりも多くの情報を使用します。これは、最適化のための列とその値に関する「統計」と呼ばれます。
2つの概念があります。
これは、インデックスのカーディナリティを参照していると信じていますが、まったく異なります https://www.ibm.com/developerworks/data/library/techarticle/dm-1309cardinal /
これが別の例です https://en.wikipedia.org/wiki/Cardinality_(SQL_statements)
Wordのカーディナリティだけで、テーブル間の関係に焦点を当てていると思います特に、これは単一のテーブルやデータの一意性を説明するために使用される用語ではありません
IBMのドキュメント(独自の単語を検索した場合は記載されていません) https://www.ibm.com/support/knowledgecenter/en/SSEP7J_10.2.2/com.ibm.swg.ba.cognos。 ug_cog_rlp.10.2.2.doc/c_cog_rlp_rel_cardinality.html カーディナリティを解釈するときは、関係の両端に表示される表記を考慮する必要があります。可能な終了ラベルを次のリストに示します。
数学では、セットのカーディナリティは「セットの要素数」の尺度です。 (ユニークなbtwの言及なし) https://en.wikipedia.org/wiki/Cardinality
データベース設計では、あるデータアスペクトのカーディナリティまたは基本原則が別のデータアスペクトに対して重要な機能です。各アスペクトがどのようにリンクするかを説明するために、互いの関係は正確かつ正確でなければなりません。リレーショナルモデルでは、テーブルは「1対多」、「多対多」、「1対0または1」などのいずれかとして関連付けることができます。これは、別のテーブルに対する特定のテーブル。 https://en.wikipedia.org/wiki/Cardinality_(data_modeling)
テーブルAとBがある場合、カーディナリティはテーブルAの行に関連するテーブルBの行数と考えてください。テーブルがPERSONとVEHICLEであり、リレーションシップがRODE_ONの場合、カーディナリティは高いので、人は過去に多くの異なる車に乗っていました、そしてほとんどの車は多くの人を運転しました。関係がOWNSの場合、カーディナリティは低くなります。ほとんどの人は1台の車両を所有し、一部の車両は所有していません。また、車両には通常1人または2人の所有者がいます。
リレーションの一方のカーディナリティは、もう一方のカーディナリティと等しくないことに注意してください。テーブルがPERSONとFINGERであり、リレーションシップがBELONG TOの場合、人には多くの指がありますが、各指は1人の人にのみ属しています。