データベースのカーディナリティとは何ですか?


85

インターネットで検索してきましたが、理解できる答えが見つからなかったようです。

親切に、誰かが例の助けを借りて私に説明することができれば、データベースのカーディナリティとは何ですか?

ありがとうございました。

回答:


122

混乱の原因は、データモデリングとデータベースクエリの最適化という2つの異なるコンテキストでの単語の使用である可能性があります。

データモデリングの用語では、カーディナリティは、あるテーブルが別のテーブルとどのように関連しているかを示します。

  • 1-1(テーブルAの1行はテーブルBの1行に関連しています)
  • 1-多数(テーブルAの1行はテーブルBの多数の行に関連しています)
  • 多-多(テーブルAの多くの行はテーブルBの多くの行に関連しています)

上記にはオプションの参加条件もあります(一方のテーブルの行がもう一方のテーブルにまったく関連している必要はありません)。

カーディナリティ(データモデリング)に関するウィキペディアを参照してください。


データベースクエリの最適化について話すとき、カーディナリティはテーブルの列のデータ、具体的にはその中にある一意の値の数を指します。この統計は、クエリの計画と実行プランの最適化に役立ちます。

カーディナリティに関するウィキペディア(SQLステートメント)を参照してください。


2
カーディナリティがゼロの場合、2つのテーブルが相互に関連していないことを意味しますか?
タイラー

カーディナリティはゼロですか?あまり使われている用語ではありませんが、それはそれを意味すると思います。通常、ERダイアグラムにはそのようなテーブルを結ぶ線はないため、カーディナリティを示す必要はありません。
2015

データモデリングのゼロカーディナリティは、オプションの関係を示すために使用されます。0..1または0..nのように
Walter Mitty 2017

カーディナリティという用語の数学的な意味に類似しています:**(データモデリング)2つのテーブル間のカーディナリティは2つのテーブル間の値の一意性です(2つのセット間の関数としてのカーディナリティ)**(データベースクエリの最適化)テーブルのカーディナリティはその列の行の一意性(セット自体のカーディナリティ)
harshvchawla 2018

29

それは文脈に少し依存します。カーディナリティとは何かの数を意味しますが、さまざまな状況で使用されます。

  • データモデルを構築する場合、カーディナリティは多くの場合、テーブルBに関連するテーブルAの行数を指します。つまり、Aのすべての行に対してBに1つの行があり(1:1)、N行あります。 A(1:N)のすべての行に対してBに、A(N:M)のN行ごとにBにM行があります。
  • ab * -treeインデックスまたはビットマップインデックスを使用する方が効率的かどうか、または述語の選択性などを検討する場合、カーディナリティは特定の列の個別の値の数を指します。PERSONたとえば、テーブルがある場合、GENDERカーディナリティの列が非常に低い可能性があり(おそらく、値は2つしかないGENDER)、PERSON_IDカーディナリティの列は非常に高い可能性があります(すべての行の値が異なります)。
  • クエリプランを見る場合、カーディナリティとは、特定の操作から返されると予想される行の数を指します。

おそらく、人々が異なるコンテキストを使用してカーディナリティについて話し、別の意味を持つ他の状況があります。


8

データベース内の、カーディナリティのテーブル内の行の数。

ここに画像の説明を入力してください imgソース


ここに画像の説明を入力してください imgソース


  • 関係は、カーディナリティ(つまり、セットの要素の数)によって名前が付けられ、分類されます。
  • エンティティの近くに表示される記号は最大カーディナリティーで、もう1つは最小カーディナリティーです。
  • エンティティリレーションは、リレーションラインの終わりを次のように示します。
    ここに画像の説明を入力してください

ここに画像の説明を入力してください

画像ソース


1
表やERDを含むテキストには、画像やリンクではなくテキストを使用してください。他のテキストからの言い換えまたは引用。必要なものだけを提供し、それを問題に関連付けます。画像は、テキストとして表現できないもの、またはテキストを補強するためにのみ使用してください。画像を検索したり、切り取って貼り付けたりすることはできません。
philipxy

4

カーディナリティとは、列に含まれるデータの一意性を指します。列に重複データが多数ある場合(「true」または「false」のいずれかを格納する列など)、カーディナリティは低くなりますが、値が非常に一意である場合(社会保障番号など)、カーディナリティは高くなります。


1
カーディナリティはいくつかの異なることを指すことがありますが、Odedの答えはおそらくあなたが探しているものです。
アンドリュー

-2

セットのカーディナリティは、セット内の要素の数です。セットa> a、b、c <があるため、このセットには3つの要素が含まれます。3はそのセットのカーディナリティです。


-2

定義:データベースにテーブルがあります。リレーショナルデータベースでは、テーブル間に関係があります。これらの関係は、1対1、1対多、または多対多の場合があります。これらの関係は「カーディナリティ」と呼ばれます。

カーディナリティの重要性:

多くのリレーショナルデータベースは、スティックビジネスルールに従って設計されています。データベースを設計するときは、ビジネスルールに基づいてカーディナリティを定義します。しかし、すべてのオブジェクトには独自の性質もあります。

オブジェクト間でカーディナリティを定義するときは、正しいカーディナリティを定義するためにこれらすべてのことを考慮する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.