誰かが例の助けを借りて、データベースのカーディナリティとは何かを私に説明できますか?
6 に答える
混乱の原因は、データモデリングとデータベースクエリの最適化という2つの異なるコンテキストでの単語の使用である可能性があります。
データモデリングの用語では、カーディナリティは、あるテーブルが別のテーブルとどのように関連しているかを示します。
- 1-1(テーブルAの1行はテーブルBの1行に関連しています)
- 1-多数(テーブルAの1行はテーブルBの多数の行に関連しています)
- 多-多(テーブルAの多くの行はテーブルBの多くの行に関連しています)
上記にはオプションの参加条件もあります(一方のテーブルの行がもう一方のテーブルにまったく関連している必要はありません)。
カーディナリティ(データモデリング)に関するウィキペディアを参照してください。
データベースクエリの最適化について話すとき、カーディナリティはテーブルの列のデータ、具体的にはその中にある一意の値の数を指します。この統計は、クエリの計画と実行計画の最適化に役立ちます。
カーディナリティに関するウィキペディア(SQLステートメント)を参照してください。
それは文脈に少し依存します。カーディナリティとは何かの数を意味しますが、さまざまな状況で使用されます。
- データモデルを構築する場合、カーディナリティは多くの場合、テーブルBに関連するテーブルAの行数を指します。つまり、A(1:1)のすべての行に対してBに1行あり、N行あります。 A(1:N)のすべての行に対してBに、A(N:M)のN行ごとにBにM行があります。
- ab *-treeインデックスまたはビットマップインデックスを使用する方が効率的かどうか、または述語がどれほど選択的であるかなどを検討する場合、カーディナリティは特定の列の個別の値の数を指します。
PERSON
たとえば、テーブルがある場合、GENDER
カーディナリティの列が非常に低い可能性があります(おそらく、値は2つだけですGENDER
)PERSON_ID
が、カーディナリティの列は非常に高い可能性があります(すべての行の値が異なります)。 - クエリプランを見る場合、カーディナリティとは、特定の操作から返されると予想される行の数を指します。
人々が異なる文脈を使用してカーディナリティについて話し、何か別のことを意味する他の状況がおそらくあります。
カーディナリティとは、列に含まれるデータの一意性を指します。列に重複データが多数ある場合(たとえば、「true」または「false」のいずれかを格納する列)、カーディナリティは低くなりますが、値が非常に一意である場合(たとえば、社会保障番号)、カーディナリティは高くなります。
セットのカーディナリティは、セット内の要素の数です。セットa> a、b、c <であるため、このセットには3つの要素が含まれます。3はそのセットのカーディナリティです。
定義:データベースにテーブルがあります。リレーショナルデータベースでは、テーブル間に関係があります。これらの関係は、1対1、1対多、または多対多の場合があります。これらの関係は「カーディナリティ」と呼ばれます。
カーディナリティの重要性:
多くのリレーショナルデータベースは、スティックビジネスルールに従って設計されています。データベースを設計するときは、ビジネスルールに基づいてカーディナリティを定義します。しかし、すべてのオブジェクトには独自の性質もあります。
オブジェクト間でカーディナリティを定義するときは、正しいカーディナリティを定義するためにこれらすべてのことを考慮する必要があります。