カーディナリティ(DB)
数学の、特に集合論では基数(cardinal number)あるいは濃度(cardinality)という意味
データベースの場合、カラムに格納されているデータの種類がどのくらいあるのか
カラムの値の種類の絶対値
オプティマイザがクエリの実行計画の作成に使う統計情報の一つでもある
しかしデータ・モデリングの観点?だと、多重度(1対1とか多対多など)の概念に絡んできたり、いろいろな情報を見ると文脈によって細かい意味が変わっているようにも見える困った言葉
データの種類の多い、少ないに関連して「カーディナリティが低い」、「カーディナリティが多い」という言葉がある
カーディナリティが低い
性別なら、男と女の二種類
カラムのデータの種類が、テーブルのレコード数に比べて二種類と少ない
カラムのデータの種類が、テーブルのレコード数に比べて多い場合 カーディナリティが低いという。
都道府県も47「しか」ないので低そう
カーディナリティが高い
顧客番号のようなIDの場合、たくさんの種類(番号)が存在する
user_id
customer_id
カラムのデータの種類が、テーブルのレコード数に比べて多い場合 カーディナリティが高いという。
Oracle DBのカーディナリティ取得
code:memo
SELECT table_name, num_rows
FROM dba_tab_statistics
WHERE table_name = 'YOUR_TABLE';
確認用
Q. カーディナリティ
Q. カーディナリティの計算方法
Q. カーデナリティが低い、高いとは
Q. カーデナリティが低い場合の例
Q. カーデナリティが高い場合の例
Q. インデックスはどういうカラムに張った方がよいか
Q. 複合インデックスを際はどういう風にインデックスを貼るべきか
参考
カーディナリティについてまとめてみた - Qiita
【誰でも描けるERD】-関連の多重度
カーディナリティとは - 意味をわかりやすく - IT用語辞典 e-Words
濃度 (数学) - Wikipedia
カーディナリティ - オラクル・Oracleをマスターするための基本と仕組み
関連
実行計画
データ・モデリング観点の、関連のカーディナリティ(多重度)
1対1
1対多
多対多
メモ
https://en.wikipedia.org/wiki/Cardinality?wprov=sfti1
https://docs.oracle.com/cd/F19136_01/tgsql/query-optimizer-concepts.html
#db