見出し画像

【デスペ3問】キー(データベーススペシャリスト)

このNoteには「キー」についてまとめました。

デスペではデータベースの理論を深く覚える必要があります。

  • 主キー:1行を特定する

  • 外部キー:他の表とつなげる

  • 候補キー:主キーの候補

  • スーパーキー:候補キー+蛇足

  • 代理キー:候補キーで主キーにならなかった

  • 代替キー:人工的に作った項目

たくさんあるんですが、午後問題でも必要になるのは3つ。「候補キーを挙げよ」という問題が良くでるので「候補キーって何だっけ!?」とならないようにここで押さえましょう。>令和5年秋午後1問1解説Note

それでは始めましょう!


私が独学合格した経験と、IT専門学校での授業内容を基に作っています



講座 | 主キー, 候補キー, スーパーキーなど


項目にはやってはイケナイ制約がかかっているときがあります。

  • 一意制約:重複が許されない

  • 非NULL制約:空欄(NULL, ナル, ヌル)を許さない

  • 主キー制約:一意制約+非NULL制約

主キーになる項目は「~番号」「~コード」という名前が多いです。例えば「会員番号」は、他の行と重複したら困りますし、空欄でも困りますよね。

主キーになる項目は1つでも複数でも構いません。複数の場合は「複合主キー」と云います。例えば、氏名+住所、同姓同名で同じ住所の人はいませんから2つ併せて複合主キーになりますね。


まずは3つ。

  • 候補キー:主キーの候補になる

  • 主キー:一行を一発で決める

  • 代理キー:候補キーのうち、主キーにならなかったもの

主キーは勿論ですが、候補キーは知っておいてください。午前にも午後にも出てきます。


例えば、{会員番号, 氏名, 住所, 電話番号}の表があった時、ざっくりですが、

  • 候補キー:{会員番号}、{氏名, 住所}、{電話番号}

  • 主キー:{会員番号}

主キーは、会員番号が良いですね。氏名や電話番号は変わる可能性があるので。主キーに採用しなった{氏名, 住所}、{電話番号}は「代理キー」と云います。

また会員番号は、人工的に作ったので「代替キー」と云います。代理キーと混同しちゃうので「サロゲートキー」と呼ぶことも。

最後。「スーパーキー」は、候補キーに項目を追加したものです。蛇足ですね。例えば{氏名, 住所, 電話番号}など。




問題演習1 | 外部キーは1パターンで5回も


2年ごとに5回も出ています。令和5年には出てないので、6年(2024年秋)に出るかもしれませんね。

データベーススペシャリスト 平成24年春午前2問2
データベーススペシャリスト 平成26年春午前2問3
データベーススペシャリスト 平成28年春午前2問5
データベーススペシャリスト 平成30年春午前2問2
データベーススペシャリスト 令和02年春午前2問6

正答はア。

  • ア:正しい。

  • イ:B表に列aを追加して外部キーにすべきです。B表の1行に対応するデータがA表に1行表れるので。逆に、A表の1行に対応するデータが、B表に複数表れるので、A表にB表への外部キーを設けられません。

  • ウ:多対多は、間に「連関エンティティ」を設けて「1対多」「多対1」にします。

  • エ:ウに同じ。


イの「1対多」の外部キーについて図示しておきますね。


ウ・エの「連関エンティティ」について図示しておきますね。>ER図のパターン解説Note



問題演習2 | 候補キー


関係モデルの候補キーの説明のうち、適切なものはどれか。

ア:関係Rの候補キーは関係Rの属性の中から選ばない
イ:候補キーの値はタプルごとに異なる
ウ:候補キーは主キーの中から選ぶ
エ:一つの関係に候補キーが複数あってはならない

データベーススペシャリスト 平成24年春午前2問6
データベーススペシャリスト 平成28年春午前2問7

正答はイ。

ア:属性(項目)の中から選ばなければどこから選ぶのですか、という話。

イ:正答。候補キーは主キーになる候補です。よって値は一意(他と被らない)なので、異なります。タプルとはデータの「組」、つまり一行を意味します。

ウ:設問の説明は逆です。主キーになり得る候補キーが複数あって、候補キーの中から主キーを選びます。

エ:候補キーは主キーになり得る項目なので、複数あって構いません。



関係R{A, B, C, D, E}に以下の関数従属がある。
{A, B}→C、{B, C}→D、D→{A, E}
この時、候補キーを全て挙げたものはどれか。

ア:{A, B, C}
イ:{A, B}、{B,C}
ウ:{A, B}、{B, C}、{B, D}
エ:{B, C}、{C, D}

データベーススペシャリスト 平成年29午前2問4より改変

正答はウ。


{A, B}→Cより、{A, B}を候補キーになる線で考えてみます。

  • {A, B}→Cより、AとBが候補キーになりそう。

  • {B,C}→Dは、Cは上記でA,Bから決まるため、Bのみ候補キーになりそう。

  • D→{A, E}より、Dは上記でB, Cから決まるため候補キーにはならなそう。

以上より、{A, B}が候補キーなら、C, D, Eが求まりそうです。

ただし、D→{A, E}なので、Aが候補キーでない場合もありそうです。


{B, C}→Dより、{B, D}を候補キーにする線で考えてみます。

  • {B, C}→Dは問題なし。Dが新たに求まります。

  • D→{A, E}は問題なし。AとEが新たに求まります。

  • {A, B}→Cについて。そもそもCは{B, C}で与えられているので問題なし。

以上より、{B, C}が候補キーでも、D, A, Eが求まりそうです。


D→{A, E}より、Dを候補キーにする線で考えてみます。

  • D→{A, E}より、AとEが求まります。

  • {A, B}→Cについて、Bが必要そうです。

  • {B, C}→Dについて、Cは上記で求まりますが、Bは必要そうです。

以上より、DのみではA, Eは求まりますが、Bが必要そうです。よって候補キーは{B, D}。


以上より、候補キーは{A, B}, {B, C}, {B, D}の3パターンが考えられます。

従属性は図示しても分かりやすいので「過去問道場さん」も覗いてみてくださいね。


関数従属性の過去問を集めたNoteも準備しましたので、併せてどうぞ。>関数従属性の解説Note

候補キーを挙げる問題は、直近の午後問題にも出ています。>令和5年秋午後1問1解説Note



私が合格してきた勉強法についてもNoteにしました。まずは書籍の読み倒し方、AMIIの勉強だけでも参考にして頂ければ、嬉しいです。

p.s. 普段は >> 専門学校とIT就職のブログ << をやってます。

でわでわ(・ω・▼)ノシ


この記事が参加している募集

学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ