平成26年度 春期 データベーススペシャリスト試験 午後Ⅰ
http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2014h26_1/2014h26h_db_pm1_qs.pdf
問2
設問1 会議室予約システムについて,(1)~(4)に答えよ。
(1) 図2中のSQL文の a ~ c に入れる適切な字句を答えよ。
〔会議室予約システムのテーブル〕
会議室予約システムの主要なテーブルのテーブル構造,概要は,図1,表1のとおりである。
会議室予約システムの主要なテーブルのテーブル構造,概要は,図1,表1のとおりである。
社員(社員番号,社員氏名,…)
会議室(会議室番号,収容可能人数,階数,プロジェクタ設置有無,TV会議設備設置有無,…)
会議室予約(会議室番号,予約日,予約開始時刻,予約終了時刻,社員番号)
図1 主要なテーブルのテーブル構造(一部省略)
表1 主要なテーブルの概要
テーブル名 | 概要 |
---|---|
社員 |
・社員の情報を管理する。社員番号で社員を一意に識別する。
|
会議室 |
・会議室の情報を管理する。会議室番号で会議室を一意に識別する。
・会議室ことに収容可能な人数,階数,設備の設置有無が設定されている。 |
会議室予約 |
・会議室の予約状況を管理する。会議室番号,予約日,予約開始時刻で
会議室予約を一意に識別する。 ・予約開始時刻及び予約終了時刻の分の指定は00分または30分とする。 |
〔会議室予約システムでの検索〕
会議室予約システムで空き会議室の検索結果一覧を表示する際に必要な情報を得るために実行するSQL文の例を図2に示す。
なお,図2中のホスト変数のhv1は予約希望日,hv2は予約希望開始時刻,hv3は予約希望終了時刻を表す。
SELECT * FROM 会議室 X
WHERE a
(SELECT * FROM 会議室予約 Y
WHERE X.会議室番号 = Y.会議室番号 AND Y.予約日 = :hv1
AND Y.予約開始時刻 b :hv3 AND Y.予約終了時刻 c :hv2)
図2 検索で実行するSQL文の例
図2のSQLから、判明できることは、
対象となるテーブルは、会議室と会議室予約
副問合せの部分に、Xが使用されていることから、相関副問合せである。
→ a は、EXISTS または NOT EXISTS であるが、予約がまったくない状態であれば、
全ての会議室が検索できることから、NOT EXISTSと想定される。
hv2、hv3がそれぞれ、開始と終了、終了と開始というペアになっている。
だめだ、これだけでは、データイメージが湧かないので、表を描いてみる。
会議室テーブルのデータイメージ
会議室番号 | … |
---|---|
101 | … |
102 | … |
103 | … |
104 | … |
会議室予約テーブルのデータイメージ
会議室番号 | 予約日 | 予約開始時刻 | 予約終了時刻 |
---|---|---|---|
101 | 2014-04-01 | 09:00 | 10:00 |
101 | 2014-04-01 | 11:00 | 12:00 |
102 | 2014-04-01 | 09:00 | 12:00 |
103 | 2014-04-01 | 13:00 | 18:00 |
検索結果のデータイメージ
検索条件 :
予約希望日 "2014-04-01"、予約希望開始時刻 "10:00"、予約希望終了時刻 "11:00"
会議室番号 | … |
---|---|
101 | … |
103 | … |
104 | … |
○会議室予約.予約開始時刻が ≧ 予約希望終了時刻ならば、予約可能と扱う。
SQLの条件は、予約不可の条件なので、判定結果を逆にする式「<」となる。
会議室番号 | 予約日 | 予約開始時刻 | 予約終了時刻 |
---|---|---|---|
101 | 2014-04-01 | 09:00 | 10:00 |
101 | 2014-04-01 | 11:00 | 12:00 |
102 | 2014-04-01 | 09:00 | 12:00 |
103 | 2014-04-01 | 13:00 | 18:00 |
○会議室予約.予約終了時刻が ≦ 予約希望開始時刻ならば、予約可能と扱う。
SQLの条件は、予約不可の条件なので、判定結果を逆にする式「>」となる。
会議室予約テーブルのデータイメージ
会議室番号 | 予約日 | 予約開始時刻 | 予約終了時刻 |
---|---|---|---|
101 | 2014-04-01 | 09:00 | 10:00 |
101 | 2014-04-01 | 11:00 | 12:00 |
102 | 2014-04-01 | 09:00 | 12:00 |
103 | 2014-04-01 | 13:00 | 18:00 |
【回答】
a : NOT EXISTS
b : <
c : >
コメント
コメントを投稿