データベースの参照のパターン
データベースの参照(SELECT)の際、WHEREの項目について、パターン数を考えたい時どうするか?
直行テストなどの統計的手法では、水準と因子の概念なども登場する。概算でいいので計算したい場合は次のような考え方なのだろうか。
●AND条件
AND条件については、積演算というように、項目同士の水準に対して掛け算を実施することでパターン数が導出できそうだ。ある項目Aとある項目BがAND条件でWHERE上、定義されていて、各項目の水準が2と3なら、6パターンの検索値が存在する。範囲系のパラメータや金額、生年月日などについてだとまた水準などが変わってくるが作業を行なっていておおよそを知りたいならこういった考え方でも計算ができそう。もちろん、正確な見積りが問われるような場面では厳密な計算を選択する必要がある。
●OR条件
OR条件については、和演算というように、項目同士の水準に対して足し算を実施することでパターン導出ができる。ある項目Aとある項目BがAND条件でWHERE上、定義されていて、各項目の水準が2と3なら、5パターンの検索値が存在する。
●AND・OR条件の個数とヒットの範囲
なかなかどうしてか、SQLを実行した際に想定するデータ量を把握しづらいのは人間の認知の限界をもうすでに超えてしまったから、ノイマンのような天才でなければ計算し瞬時に答えを出すなんて芸当はできないだろう。それでもおおよそどれぐらいのデータが返ってくるのだろうか?という見立ては立てたい。その場合は、又聞きではあるが経験者から教わったことがある。ものすごく単純な話で条件の個数が増えれば増えるほど限定的になるということだ。WHERE句の条件が増えたら、ヒットする数も増えそうな感覚ではあるが、感覚は反対で反比例なのだろう。
よくプログラミングはイメージが大事と聞く。イメージしやすいのは、住所の概念ではなかろうか。住所も番号が増えていけば行くほど、ピンポイントに座標のごとく場所を特定できる。高校時代ちんぷんかんぷんで本当に役に立つのだろうかという数学の概念の集合がまさに役に立つのがこの場面なのだろう。SQLの概念も数学の集合論をベースにしていると聞く。
コメント