HOME»データベーススペシャリスト掲示板»R2 午後2 問1 設問1(1)
投稿する
一般的には、対象となるカラムのカーディナリティが高い(テーブルのレコードに対してデータの種類が多い)順にインデックスを指定しますから、桁数だけで言えばセオリー通りではないですが、実際の値のとり幅が世帯区分の方が地域コードのそれよりも多い、という見通しがあったからそういう順序にした可能性が推測されます。
R2 午後2 問1 設問1(1) [0578]
電力さん(No.1)
解答は「世帯区分、地域コード」になっています。
設問に「列名を定義順に答えよ」とあるので、順不同ではない(「地域コード、世帯区分」では不正解)だと思いますが、図2・表1・表2いずれでも地域コードが先にきています。どうして世帯区分が先に来るほうが正解でしょうか。
設問に「列名を定義順に答えよ」とあるので、順不同ではない(「地域コード、世帯区分」では不正解)だと思いますが、図2・表1・表2いずれでも地域コードが先にきています。どうして世帯区分が先に来るほうが正解でしょうか。
2023.09.16 11:36
logres_fanさん(No.2)
★DB ブロンズマイスター
この定義順は、インデックスを定義した順番です。例えば、インデックスの1番目に世帯区分、2番目に地域コード。
インデックスの1番目を使って処理したり、インデックスの1番目と2番目を使って処理したりしますが、いきなりインデックスの2番目を使って処理する事はできません。
インデックスの1番目を使って処理したり、インデックスの1番目と2番目を使って処理したりしますが、いきなりインデックスの2番目を使って処理する事はできません。
2023.09.16 22:01
ガスおじさん(No.3)
※素人の回答なので間違っている可能性があります。
列の定義順は索引とテーブルで異なっていても問題は無いと理解しています。
索引の方で世帯区分が先になっているは項目の桁数が理由なのかなと思っています。
世帯区分:3桁
地域コード:4桁
(世帯区分の方が分母が小さいので、最初においた方が探索効率が良い)
列の定義順は索引とテーブルで異なっていても問題は無いと理解しています。
索引の方で世帯区分が先になっているは項目の桁数が理由なのかなと思っています。
世帯区分:3桁
地域コード:4桁
(世帯区分の方が分母が小さいので、最初においた方が探索効率が良い)
2023.09.23 17:16
GinSanaさん(No.4)
★DB ゴールドマイスター
>索引の方で世帯区分が先になっているは項目の桁数が理由なのかなと思っています。
一般的には、対象となるカラムのカーディナリティが高い(テーブルのレコードに対してデータの種類が多い)順にインデックスを指定しますから、桁数だけで言えばセオリー通りではないですが、実際の値のとり幅が世帯区分の方が地域コードのそれよりも多い、という見通しがあったからそういう順序にした可能性が推測されます。
2023.09.23 17:53
電力さん(No.5)
ありがとうございます!
地域と世帯区分の片方または両方で絞り込む処理なので、処理の内容から順番を絞り込めなさそうです。
最終的には問題文の「主キー、外部キー以外の索引」で順番を絞る形になるかなと思います。
地域と世帯区分の片方または両方で絞り込む処理なので、処理の内容から順番を絞り込めなさそうです。
最終的には問題文の「主キー、外部キー以外の索引」で順番を絞る形になるかなと思います。
2023.09.25 12:43
シルバさん(No.6)
問題文の[RDBSの仕様]に「索引探索が選択されるためには~索引キーの"体又は先頭から連続した一つ以上の列に一致していなければならない」とあります。
そして、表2の処理2では、同じ地域・同じ世帯区分・同じ地域かつ同じ世帯区分という3種類の絞り込みを行うと読み取れます。
この条件により、同じ世帯区分という条件で絞る場合には、世帯区分の方が先に定義されていないと索引探索が機能しないため、世帯区分を先に定義する必要があると思います。
そして、表2の処理2では、同じ地域・同じ世帯区分・同じ地域かつ同じ世帯区分という3種類の絞り込みを行うと読み取れます。
この条件により、同じ世帯区分という条件で絞る場合には、世帯区分の方が先に定義されていないと索引探索が機能しないため、世帯区分を先に定義する必要があると思います。
2023.09.30 17:10