電子書籍の厳選無料作品が豊富!

設問3での答えが疑問です。

答えは以下の通りとなっていますよね?
(主キーは【】でくくってあります)

会議室(【会議室番号】、会議室タイプ)
予約簿(【予約番号】、【使用時間帯区分コード】、利用者番号、会議室番号、使用予定日)
会議室料金表(【会議室タイプ】、【使用時間帯区分コード】、料金)
時間帯(【使用時間帯区分コード】、使用時間帯)
利用者台帳(【利用者番号】、氏名、住所、電話番号)

このとき、『予約簿』における「使用時間帯区分コード」は主キーなのでしょうか?

『予約簿』においては図2に例がありますが、これをみても使用時間帯については他の予約とかぶる部分があり一意性が無いと言えますよね?

つまり主キーにはなりえないと思うのですが・・。

主キーとは一意性があり、かつNULL値を許さないという条件がありますよね?

『予約簿』以外でも『時間帯』以外では一意性が無いと感じるのですが・・。

まだ、主キーがはっきり分かっていないだけなのかもしれませんが、なぜ「使用時間帯区分コード」は主キーではないのでしょうか?

A 回答 (3件)

問題をちょっとしか見ていない上での回答です。



#2さんの言うとおりです。
予約番号と使用時間帯区分コードの二つを併せて初めて主キーになるということです。
こういう「複数の項目で成されるキー」を日本語では「複合キー」と言います。(だったと思います)
主キーが複合キーだったら「複合主キー」だったかな?


問題文より
>(3)申込者が予約を承諾した場合,受付係は予約番号(予約ごとに一意),氏名,住所,電話番号,会議室番号,使用予定日,使用時間帯を予約簿に記入するとともに,会議室予約台帳へ予約番号を記入し予約登録を行う。
> なお,1件の予約は,1日限り,1室限りとする。使用時間帯については,複数指定できる。
の通りに予約簿テーブルに予約内容が登録されますが、この文章から、
1)[予約番号]は1件の予約に付き1つずつ
2)[予約番号」が同じで、[使用時間帯区分コード]の異なる
レコードが予約簿テーブルに存在しうる。
と言うことを読み取らねばなりません。
(おそらく使用時間帯をまたいでの予約を見越しての仕様でしょう)

2)から、[予約番号]だけを指定してもこのテーブルからひとつのレコードを特定できるとは限らないということがわかります。
ですから、予約番号と仕様時間帯区分コードの2つがそろって初めて主キーとなるのです。

おまけ
「このテーブルの主キーはどれ?」と聞かれたら、
これを外したらレコードを確実に1つに特定できないよな・・・
と思う項目を全て挙げればよいのです。
問題文をよーーく読めばそう難しいことではないと思います。
    • good
    • 0

> 最下部にリンクがあります。


過去問、みました。

> 予約簿(【予約番号】、【使用時間帯区分コード】、利用者番
と捉えられていらっしゃる部分に問題があります。

「予約番号」「使用時間帯区分」の2つを別々に主キーとするなら、表1の表記は「Y」ふたつでないとおかしい。
セル結合(で良いのか?)した上で「Y」と書いてありますよね。

「使用時間帯区分コード」は主キーの一部ではありますが、主キーそのものでは無い。
「予約番号と使用時間帯区分のセット」(コンポジットキーだったか?)こそが主キーです。
    • good
    • 0

問題のリンクがどこかにありますかネ?



予約番号と使用時間帯区分が1:1ならそれでも良いでしょうが、ひとつの予約番号で複数の使用時間帯をとることができる(1:n)なら、【予約番号+使用時間帯区分】が主キーとなるのかも。

ここの部分が重要と思います。

この回答への補足

問題のリンクはあります。

直リンクは避けた方が良いと思いしませんでした。

googleにて、「ソフトウェア開発 過去問」と入力後一番上に表示されるページの最下部にリンクがあります。

(抽象的すぎてすみません)


 本題に戻って、確かに問題文を見ると予約簿の図は1:nになっています。

1つの予約番号に対して複数の使用時間帯をとることができます。

この場合は使用時間帯区分も主キーになるんですか?

中には予約番号が違っても使用時間帯区分が同じ場合もあります。

この場合確かに予約番号に一意性があっても、使用時間帯区分には無いと思うのですが・・・。

もしよろしければ、重要ポイントの説明をお願いしたいです。

(1:nであれば、主キーになりえる理由です)

補足日時:2006/10/04 23:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!