あの“津崎さん”も保有する難関資格「データベーススペシャリスト」。本企画では、データベーススペシャリスト試験 午前/午後試験対策のための「基礎知識」を抜粋してお届けします。今回は、「キーの基礎」を解説します。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍ポケットスタディ データベーススペシャリスト [第2版](2015年12月22日発行)』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
※編集部注:前回記事「概念データモデル設計における「スーパタイプ」「サブタイプ」とは」はこちら
出題頻度 午前II:●●- 午後I:●●● 午後II:●●●
●--:過去14年間での過去問出題数が1〜9回
●●-:過去14年間での過去問出題数が10〜19回
●●●:過去14年間での過去問出題数が20回以上
●スーパーキー、候補キー、主キー、外部キー、午後演習
関係データベースには、様々な種類の「キー」があります。主なキーについて以下の表に示します。
例えば以下の図のように「社員テーブル」と「部門テーブル」を設計する場合、通常は社員に対して一意な社員番号を振り、社員を特定するための主キーとして利用します。尚、社員番号(候補キーA)の他にも、候補キーBのように社員を特定するために使えそうな属性がありますが、どちらを主キーにしても構いません。(どの属性を主キーにするかは設計者が決定します。)
続いて部門について「どのような部門があるか?」は部門テーブルに切り出し、「各社員がどの部門に所属しているか?」は社員テーブルの属性である「所属部門コード」に設定します。ここで、社員テーブルと部門テーブルは「部門コード」という共通の属性により関連付けられており、リレーションシップが存在します。社員テーブルの所属部門コードは、部門テーブルの属性である「部門コード」の値を利用していますが、この場合、社員テーブルの所属部門コードは、部門テーブルの主キーである部門コードを「参照している。」といいます。また、他のテーブルを参照している属性である所属部門コードを外部キーと呼びます。
このようにリレーションシップがあるところには必ず主キーと外部キーが存在します。
午後問題では、以下の各キーを列挙する問題が非常に多く出題されます。書籍「ポケットスタディ データベーススペシャリスト[第2版]」の「午後対策編」で紹介する解答ロジックを適用すれば比較的簡単に解くことができます。関係データベースの基礎知識に自信がある方は、解答ロジックを確認してみてください。
よく出る問題 | 対策 | |
---|---|---|
候補キーの列挙 | ロジック2で機械的に抽出(基本的に楽勝!)。関数従属性の知識が必要。 | |
主キーの列挙 | ロジック5で各キーの候補を見つけた後、本文を眺め、そのキーが正しことを検証。 | |
外部キーの列挙 | ||
午後試験では、本分野が次のような形で出題されます。最終目標を確認するため、設問1の(1)だけ問題を解いてみましょう。
データベースの設計に関する次の記述を読んで、設問1〜3に答えよ。
A社は、犬と猫、及びその関連サービス・用品を販売するペット
ショップをチェーン展開している。(筆者注:中略)
〔業務概要〕
1.商品管理
A社の商品には、ペット、ケアサービス及びペット用品があり、それぞれペットコード、サービスコード及びペット用品コードで識別される。現在は、それぞれが別システムで管理されているので、ペットコード、サービスコード及びペット用品コードの中に、コード値が同一のものがある。
(1) ペット
ペットは、ペットコードによって個体識別される。さらにペットは、次のペット区分とペット種類コードで分類される。
(2) ケアサービス
ケアサービスには、シャンプー、カット、つめ切り、一時預りなどがある。ケアサービスは、サービスコードによって、一意に識別される。
ケアサービスの料金は、サービスコード、ペット区分、成長区分及び体型区分ごとに、表1のように設定されている。成長区分は、成犬と幼犬及び成猫と幼猫の区分を表す。体型区分は、ペット区分とペット種類コードによって定まるもので、犬の場合は大型、中型及び小型、猫の場合は長毛と短毛の区分を表す。
(3) ペット用品
ペット用品には、えさ、服、食器、アクセサリ、おもちゃなどがある。ペット用品は、ペット用品コードによって、一意に識別される。
サービス名 (サービスコード) |
ペット区分 | 成長区分 | 体型区分 | 料金(円) | |
---|---|---|---|---|---|
シャンプー (12345678) |
犬 | 成犬 | 大型 | 6,300 | |
中型 | 5,250 | ||||
小型 | 4,200 | ||||
幼犬 | 大型 | 3,150 | |||
中型 | 2,625 | ||||
小型 | 2,100 | ||||
猫 | 成猫 | 長毛 | 6,300 | ||
短毛 | 4,200 | ||||
幼猫 | 長毛 | 3,150 | |||
短毛 | 2,100 | ||||
(筆者注:中略) |
設問1 指摘事項(1)〜(3)について、(1)〜(3)に答えよ。
(1) “ペット種類”テーブルについて、主キー及び外部キーを示せ。
(H20春DB午後I問2設問1(1))
*解答は次のページへ
Copyright © ITmedia, Inc. All Rights Reserved.