検索
連載

「関数従属性」を理解する「データベーススペシャリスト試験」戦略的学習のススメ(8)(1/2 ページ)

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

Share
Tweet
LINE
Hatena

連載目次

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

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

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


※編集部注:前回記事「さまざまな種類の「キー」を理解する」はこちら

関数従属性

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


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


Key Word

関数従属性、部分関数従属性、推移的関数従属性、午後演習、推論則


関数従属性を理解する

 ある属性Xを決めると、他の属性Yの値が一意に決まる場合、「YはXに関数従属している」といいX→Yと表現します。このときXを決定項、Yを被決定項と呼びます。

関数従属性の例

 また、次の例のように決定項や被決定項が複数の属性の組合せになる場合もあります。

決定項、被決定項が複数となる場合の関数従属性の例

 尚、関数従属性の表記はE-R図のリレーションシップの表記と似ていますが、異なる概念ですので注意して下さい。

鉄則 関数従属する方向とE-R図の矢印方向は、全く逆だと心得よ。

部分関数従属性

 以下のように候補キーの一部に関数従属している状態を「部分関数従属している」といいます。(逆に候補キーの一部ではなく全てに対して関数従属している状態を「完全関数従属している」といいます。)

部分従属性の例

推移的関数従属性

 関数従属性が推移的に行われている、即ち(1)X→Y、(2)Y→Z、(かつX→Zでは無い)を全て満たす性質を、推移的関数従属性と呼びます。

推移的関数従属性の例

午後で極めて多い、関数従属性列挙の問題

 午後問題では、関数従属性を列挙する問題が非常に多く出題されます。別途、書籍「ポケットスタディ データベーススペシャリスト[第2版]」の「午後対策編」で解答ロジックを用いた解法を説明します。

関数従属性の完成 ロジック4本文中の表現から関数従属性を抽出
部分関数従属性の列挙 ロジック2候補キーと関数従属性図から抽出
推移的関数従属性の列挙 ロジック3関数従属性図の形状から抽出

午後演習

 午後問題では、本分野が次のように出題されます。最終到達目標のイメージを掴みましょう。

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

 衣料品の販売管理に関するデータベースを作成するために、データモデルの関係スキーマについて検討した。

〔衣料品販売情報の関係スキーマと関数従属性〕

 衣料品の小売店を全国展開しているW社は、販売実績を基に営業戦略を策定するために、データ集計・分析の支援環境の構築を目指している。検討中の衣料品販売情報の関係スキーマを、図1に示す。属性の意味及び制約は、表1のとおりである。また、図2の関数従属性の表記法に従って、各関係の属性間の主な関数従属性を表すと、図3及び図4のとおりとなる。

 商品の仕様は、柄、デザイン、素材、色、サイズなどの様々な要素によって決まる。商品の販売価格や数量は、各商品の色及びサイズを最小単位として管理している。この単位をSKU(Stock Keeping Unit)と呼ぶ。

図1 衣料品販売情報の関係スキーマ
図1 衣料品販売情報の関係スキーマ
表1 属性の意味及び制約(一部省略)
属性名 意味及び制約
商品コード 商品を一意に識別するコード。柄コード、デザインコード、素材コードが同一でも、別の商品コードが振られることがある
SKU コード 各商品の色及びサイズを区別したSKU を一意に識別するコード
デザインコード スタイルやシルエット、襟やそでの形状などのデザインを識別するコード
柄コード 無地、しま、チェックなどのほか、各種の絵柄、文字・記号、パターンや、その組合せなどを識別するコード
素材コード 綿、毛、皮などの材質を識別するコード
色コード 白、黒、ピンク、ブルーなど、色を識別するコード
サイズコード S、M、L、LL、7号、8 号など、サイズを識別するコード
大分類コード 紳士服、婦人服、子供服、スポーツウェアなどの分類を識別するコード
中分類コード 大分類コードで分類された商品を更に分類したもので、大分類ごとに分類内容は異なる。例えば、大分類が紳士服の場合は、スーツ、シャツ、ズボンなどの分類。中分類コードは、一意に大分類コードを識別できる。
伝票番号 売上伝票に振られる、W社で一意な番号
明細番号 売上伝票の各明細行を識別する番号
販売店コード 販売店を一意に識別するコード
従業員番号 W 社の従業員を一意に識別する番号
レジ番号 レジに付けられた、販売店ごとに一意な番号
販売年月日 売上伝票に記録される販売日付
レシート番号 レシートに付けられた、レジごと、販売年月日ごとに一意な番号
販売開始日 商品の販売を開始した日付
販売終了フラグ 商品の販売終了を示すフラグ。販売期間中は値“false”が設定され、販売を終了したときに、値“true”が設定される。
定価 販売開始日ごとに定められる、商品の値段。定価を変更する場合は、いったん、その商品の販売を終了し、新規に販売開始日と定価が決定される。
販売価格 値引き販売されたときなどの、実際に販売した商品の値段
図2 関数従属性の表記法
図2 関数従属性の表記法
図3 関係“商品”、“中分類”、“SKU”及び“販売”の属性間の主な関数従属性(未完成)
図3 関係“商品”、“中分類”、“SKU”及び“販売”の属性間の主な関数従属性(未完成)
図4 関係“販売実績”の属性間の主な関数従属性
図4 関係“販売実績”の属性間の主な関数従属性

(筆者注:以下略)


設問1

関係“商品”、“中分類”、“SKU”及び“販売”について、(1)〜(3)に答えよ。

 (1) 表1の属性の意味及び制約を基に、図3を完成させよ。□には属性名を記述し、関数従属性は図2の表記法に従うこと。導出される関数従属性は、省略するものとする。

 (2)関係“商品”中の、推移的関数従属の例を一つ挙げよ。

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


 *解答は次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る