よしたく blog

ITエンジニアとして自分が知らなかったことをまとめています

リレーショナルデータベースにおけるカーディナリティについて

カーディナリティは、データベースのカラムに入っているデータの種類がどれぐらい存在しているかを表す。 もともとの英単語の訳としては濃度という訳が当てはまる。

例えば、genderカラムが存在していたとする。単純な話としたいので、このカラムに入ってくる値は男か女とする。

id gender
1
2

10人分のデータがあったとしても入っている種類は男か女で種類が2つしかない。

id gender
1
2
3
4
5
6
7
8
9
10

こういった場合はデータの種類が少ない、つまりカーディナリティが低いと言います。

もう一つ、カーディナリティが低い例として血液型がある。 bloodカラムがあったとして、ここに入ってくるデータは4種類。 つまり - A - B - O - AB

となる。

id blood
1 O
2 A
3 AB
4 AB
5 B
6 A
7 A
8 O
9 AB
10 B

逆にカーディナリティが高い状態はgenderカラムとbloodカラムの説明でつけたidカラムを言う。 idカラムは1から10の数値を示している。 このように1から順番に上がっていくサロゲートキーのような数値は、1から10まで種類があるのでカーディナリティが高い状態と言える。