平成31年度 春期 午前Ⅱ 問13
データ操作
属性がn個ある関係の異なる射影
属性がn個ある関係の異なる射影は幾つあるか。ここで,射影の個数には,元の関係と同じ結果となる射影,及び属性を全く含まない射影を含めるものとする。
- ア2n
- イ2^n
- ウlog_2 n
- エn
答えと解説を見る
✓ これが正解イ2^n
解説
各属性を含めるか含めないかの2通りがn個あるので、2^n個です。
射影は、元の関係からどの属性を残すかを選ぶ操作です。異なる射影の数は、n個の属性の中から残す属性の組合せが何通りあるかに等しくなります。属性一つひとつについて、残すか残さないかの2通りがあり、それがn個分あるので、2×2×…×2=2^n通りです。設問は、全属性を残して元の関係と同じになるものと、属性を一つも残さないものも数えると定めているので、どちらも引く必要はなく、2^nがそのまま答えです。例えばn=3なら、属性なし1通り、1属性3通り、2属性3通り、3属性1通りで合計8=2^3です。属性の集合の部分集合の個数として数える、と考えると覚えやすくなります。
ほかの選択肢はなぜ違うのか
- ア2n:2nは、属性ごとに2通りある選び方を、掛け合わせずに足し合わせてしまった値です。n=3で実際に数えると8通りあるのに対し、2nでは6となって足りません。
- ウlog_2 n:log_2 nは、射影の個数を数える過程からは出てこない値で、nが増えてもほとんど増えません。n=4でも2にしかならず、属性を一つずつ残す射影だけでも4通りあることと矛盾します。
- エn:nは、属性を一つだけ残す射影だけを数えた値です。2個以上の属性を残す射影や、全く残さない射影を落としています。n=3なら3となり、実際の8通りと合いません。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問13
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)