【デスペ3問】キー(データベーススペシャリスト)
このNoteには「キー」についてまとめました。
デスペではデータベースの理論を深く覚える必要があります。
主キー:1行を特定する
外部キー:他の表とつなげる
候補キー:主キーの候補
スーパーキー:候補キー+蛇足
代理キー:候補キーで主キーにならなかった
代替キー:人工的に作った項目
たくさんあるんですが、午後問題でも必要になるのは3つ。「候補キーを挙げよ」という問題が良くでるので「候補キーって何だっけ!?」とならないようにここで押さえましょう。>令和5年秋午後1問1解説Note
それでは始めましょう!
私が独学合格した経験と、IT専門学校での授業内容を基に作っています
講座 | 主キー, 候補キー, スーパーキーなど
項目にはやってはイケナイ制約がかかっているときがあります。
一意制約:重複が許されない
非NULL制約:空欄(NULL, ナル, ヌル)を許さない
主キー制約:一意制約+非NULL制約
主キーになる項目は「~番号」「~コード」という名前が多いです。例えば「会員番号」は、他の行と重複したら困りますし、空欄でも困りますよね。
主キーになる項目は1つでも複数でも構いません。複数の場合は「複合主キー」と云います。例えば、氏名+住所、同姓同名で同じ住所の人はいませんから2つ併せて複合主キーになりますね。
まずは3つ。
候補キー:主キーの候補になる
主キー:一行を一発で決める
代理キー:候補キーのうち、主キーにならなかったもの
例えば、{会員番号, 氏名, 住所, 電話番号}の表があった時、ざっくりですが、
候補キー:{会員番号}、{氏名, 住所}、{電話番号}
主キー:{会員番号}
主キーは、会員番号が良いですね。氏名や電話番号は変わる可能性があるので。主キーに採用しなった{氏名, 住所}、{電話番号}は「代理キー」と云います。
また会員番号は、人工的に作ったので「代替キー」と云います。代理キーと混同しちゃうので「サロゲートキー」と呼ぶことも。
最後。「スーパーキー」は、候補キーに項目を追加したものです。蛇足ですね。例えば{氏名, 住所, 電話番号}など。
問題演習1 | 外部キーは1パターンで5回も
2年ごとに5回も出ています。令和5年には出てないので、6年(2024年秋)に出るかもしれませんね。
正答はア。
ア:正しい。
イ:B表に列aを追加して外部キーにすべきです。B表の1行に対応するデータがA表に1行表れるので。逆に、A表の1行に対応するデータが、B表に複数表れるので、A表にB表への外部キーを設けられません。
ウ:多対多は、間に「連関エンティティ」を設けて「1対多」「多対1」にします。
エ:ウに同じ。
イの「1対多」の外部キーについて図示しておきますね。
ウ・エの「連関エンティティ」について図示しておきますね。>ER図のパターン解説Note
問題演習2 | 候補キー
正答はイ。
ア:属性(項目)の中から選ばなければどこから選ぶのですか、という話。
イ:正答。候補キーは主キーになる候補です。よって値は一意(他と被らない)なので、異なります。タプルとはデータの「組」、つまり一行を意味します。
ウ:設問の説明は逆です。主キーになり得る候補キーが複数あって、候補キーの中から主キーを選びます。
エ:候補キーは主キーになり得る項目なので、複数あって構いません。
正答はウ。
{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就職のブログ << をやってます。
でわでわ(・ω・▼)ノシ