さまざまな種類の「キー」を理解する:「データベーススペシャリスト試験」戦略的学習のススメ(7)(1/2 ページ)

あの“津崎さん”も保有する難関資格「データベーススペシャリスト」。本企画では、データベーススペシャリスト試験 午前/午後試験対策のための「基礎知識」を抜粋してお届けします。今回は、「キーの基礎」を解説します。

» 2017年06月06日 05時00分 公開

連載目次

ポケットスタディ データベーススペシャリスト [第2版]

書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍ポケットスタディ データベーススペシャリスト [第2版](2015年12月22日発行)』からの抜粋です。

ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。


※編集部注:前回記事「概念データモデル設計における「スーパタイプ」「サブタイプ」とは」はこちら

キー

出題頻度 午前II:●●- 午後I:●●● 午後II:●●●


 ●--:過去14年間での過去問出題数が1〜9回
 ●●-:過去14年間での過去問出題数が10〜19回
 ●●●:過去14年間での過去問出題数が20回以上


Key Word

●スーパーキー、候補キー、主キー、外部キー、午後演習


キーの種類と説明

 関係データベースには、様々な種類の「キー」があります。主なキーについて以下の表に示します。

要暗記
キーの種類 説明
スーパーキー 行を一意に識別するための属性(あるいは属性の組合せ)。
候補キー スーパーキーのうち、行を一意に識別するために必要最低限の組合せ。
主キー あるテーブルのレコードを特定するための識別子。一つのリレーションの中に、候補キーの組合せが複数パターンある場合、この中で主に使用するものを主キーとして設計する。候補キーから任意で選択してよいが、空白(NULL)値は許されないという制約がある。
外部キー リレーションにおいて、他のエンティティの主キーを参照する属性。

 例えば以下の図のように「社員テーブル」と「部門テーブル」を設計する場合、通常は社員に対して一意な社員番号を振り、社員を特定するための主キーとして利用します。尚、社員番号(候補キーA)の他にも、候補キーBのように社員を特定するために使えそうな属性がありますが、どちらを主キーにしても構いません。(どの属性を主キーにするかは設計者が決定します。)

 続いて部門について「どのような部門があるか?」は部門テーブルに切り出し、「各社員がどの部門に所属しているか?」は社員テーブルの属性である「所属部門コード」に設定します。ここで、社員テーブルと部門テーブルは「部門コード」という共通の属性により関連付けられており、リレーションシップが存在します。社員テーブルの所属部門コードは、部門テーブルの属性である「部門コード」の値を利用していますが、この場合、社員テーブルの所属部門コードは、部門テーブルの主キーである部門コードを「参照している。」といいます。また、他のテーブルを参照している属性である所属部門コードを外部キーと呼びます。

 このようにリレーションシップがあるところには必ず主キーと外部キーが存在します。

各種キーの設計例

午後で極めて多い「キー列挙」の問題

 午後問題では、以下の各キーを列挙する問題が非常に多く出題されます。書籍「ポケットスタディ データベーススペシャリスト[第2版]」の「午後対策編」で紹介する解答ロジックを適用すれば比較的簡単に解くことができます。関係データベースの基礎知識に自信がある方は、解答ロジックを確認してみてください。

よく出る問題 対策
候補キーの列挙 ロジック2で機械的に抽出(基本的に楽勝!)。関数従属性の知識が必要。
主キーの列挙 ロジック5で各キーの候補を見つけた後、本文を眺め、そのキーが正しことを検証。
外部キーの列挙

午後演習(1)

 午後試験では、本分野が次のような形で出題されます。最終目標を確認するため、設問1の(1)だけ問題を解いてみましょう。

データベースの設計に関する次の記述を読んで、設問1〜3に答えよ。

 A社は、犬と猫、及びその関連サービス・用品を販売するペット

ショップをチェーン展開している。(筆者注:中略)

〔業務概要〕

1.商品管理

 A社の商品には、ペット、ケアサービス及びペット用品があり、それぞれペットコード、サービスコード及びペット用品コードで識別される。現在は、それぞれが別システムで管理されているので、ペットコード、サービスコード及びペット用品コードの中に、コード値が同一のものがある。

(1) ペット

 ペットは、ペットコードによって個体識別される。さらにペットは、次のペット区分とペット種類コードで分類される。

  • ペット区分:犬、猫の区分を表す。
  • ペット種類コード:ペット区分ごとに次の種類を表す。
    • 犬:ダックスフント、マルチーズ、ポメラニアンなど
    • 猫:アメリカンショートヘア、ロシアンブルー、メインクーンなど

(2) ケアサービス

 ケアサービスには、シャンプー、カット、つめ切り、一時預りなどがある。ケアサービスは、サービスコードによって、一意に識別される。

 ケアサービスの料金は、サービスコード、ペット区分、成長区分及び体型区分ごとに、表1のように設定されている。成長区分は、成犬と幼犬及び成猫と幼猫の区分を表す。体型区分は、ペット区分とペット種類コードによって定まるもので、犬の場合は大型、中型及び小型、猫の場合は長毛と短毛の区分を表す。

(3) ペット用品

 ペット用品には、えさ、服、食器、アクセサリ、おもちゃなどがある。ペット用品は、ペット用品コードによって、一意に識別される。

表1 ケアサービス料金表(抜粋)
サービス名
(サービスコード)
ペット区分 成長区分 体型区分 料金(円)
シャンプー
(12345678)
犬 成犬 大型 6,300
中型 5,250
小型 4,200
幼犬 大型 3,150
中型 2,625
小型 2,100
猫 成猫 長毛 6,300
短毛 4,200
幼猫 長毛 3,150
短毛 2,100
(筆者注:中略)
図3 C君が設計したテーブル構造(筆者注:抜粋) 図3 C君が設計したテーブル構造(筆者注:抜粋)

設問1 指摘事項(1)〜(3)について、(1)〜(3)に答えよ。

(1) “ペット種類”テーブルについて、主キー及び外部キーを示せ。

(H20春DB午後I問2設問1(1))


 *解答は次のページへ

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

スポンサーからのお知らせPR

注目のテーマ

ID・パスワードから始める「引き算」のセキュリティ〜ゼロトラスト狂騒曲の果てに
その「AIコーディング」は本当に必要か?
Microsoft & Windows最前線2026
4AI by @IT - AIを作り、動かし、守り、生かす
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。