■問6■ |
定期刊行物の購読管理システムに関する次の記述を読んで、設問1〜5に答えよ。
E社は定期刊行物の発行と通信販売を行っている。販売している定期刊行物は“週刊政治”、“月刊政治”など約20種類で、刊行間隔は週刊、月刊の2種があり、各刊行物ごとに“政治”、“経済”などの分野に分類されている。
顧客は個人である。顧客は刊行物、購読期間、冊数を指定して購読を申し込み、申込み時に購読料金を全額払い込む。購読期間終了時には購読を継続するか終了するかを通知する。E社はこれらの顧客情報、購読内容を購読管理システムで管理している。
購読管理システムの関係データベースを構成する表とデータの一部を次に示す。
購読内容表、購読完了表の購読開始号、購読終了号は“年/号”の形式で、号は月刊誌、週刊誌ともに各年ごとに 01 から通し番号が付けられている。したがって、月刊誌は 01 から 12 まで、週刊誌は 01 から 52 又は 53 までである。別冊や増刊などは発行していない。
新規購読、継続購読、中断後の再購読に対しては、新たな購読コードを付けたレコードを購読内容表に追加する。
毎年12月分の最終刊行物の発送完了後、購読が終了しているデータを購読内容表から削除し、購読完了表に追加する。したがって、4月1日時点の購読内容表には、既に購読を終了したデータ(3月以前分までで購読完了したデータ)と購読中のデータ、これから購読を開始するデータが混在している。購読完了表には 1993 年からのデータを蓄積している。
なお、設問中の一時表A、Bはあらかじめ適切なデータ項目が定義された空の表として作成されているとし、設問中の検索処理は 1999年4月18日 に実施するものとする。
|
■設問1■
|
次の二つのSQL文を順に実行して得られる情報として適切なものを、解答群の中から選べ。ただし、当該顧客が購読開始前か購読終了後かは考慮しないものとする。
INSERT INTO 一時表A
SELECT DISTINCT 顧客コード
FROM 刊行物表,購読内容表
WHERE 刊行物表.刊行物コード=購読内容表.刊行物コード
AND 刊行物表.分野コード=’1’
SELECT 送付先表.顧客コード,送付先表.顧客氏名,送付先表.住所
FROM 送付先表,一時表A
WHERE 送付先表.顧客コード=一時表A.顧客コード
ORDER BY 送付先表.顧客コード
解答群
ア 刊行物別の顧客一覧 イ 経済分野刊行物の顧客一覧
ウ 月刊誌の顧客一覧 エ 購読開始月順の顧客一覧
オ 政治分野刊行物の顧客一覧 カ 分野別の顧客一覧
|
■設問2■
|
設問1のSQL文で得られるデータと同じデータを得るためのSQL文を作成した。【 】に入れる適切な字句を、解答群の中から選べ。解答は重複して選んでもよい。
SELECT DISTINCT 送付先表.顧客コード,送付先表.顧客氏名,送付先表.住所
FROM 購読内容表,送付先表,刊行物表
WHERE 送付先表.顧客コード=購読内容表.顧客コード
AND 【 a 】.【 b 】【 c 】 購読内容表.【
d 】
AND 【 e 】.【 f 】【 g 】【
h 】
ORDER BY 送付先表.顧客コード
a,b,d〜fに関する解答群
ア 送付先表 イ 刊行物表
ウ 分野コード表
エ 購読内容表 オ 購読完了表 カ 顧客コード
キ 刊行物コード ク 分野コード
ケ 購読コード
c,gに関する解答群
ア = イ < ウ > エ <= オ >= カ <>
hに関する解答群
ア ’1’ イ ’2’ ウ ’3’
エ ’4’ オ ’5’
|
■設問3■
|
2000年01号以降も購読を継続している顧客について、購読刊行物数が多い順(購読刊行物数が同じ顧客は顧客コードの昇順)に顧客一覧を作成する目的で次の二つのSQL文を作成した。
【 】に入れる適切な字句を、解答群の中から選べ。ただし、同一刊行物を2冊以上購読している顧客の購読刊行物数は1とする。
INSERT INTO 一時表B
SELECT 顧客コード,COUNT(顧客コード) AS 購読刊行物数
FROM 購読内容表
WHERE 購読終了号>=’2000/01’
GROUP BY 【 i 】
SELECT 一時表B.購読刊行物数,送付先表.顧客コード,送付先表.顧客氏名,送付先表.住所
FROM 送付先表,一時表B
WHERE 送付先表.顧客コード=一時表B.顧客コード
ORDER BY 【 j 】【 k 】,【 ℓ
】
解答群
ア ASC イ DESC
ウ 一時表B.購読刊行物数 エ 刊行物表.分野コード
オ 購読終了号 カ 顧客コード
キ 送付先表.顧客コード
|
■設問4■
|
1999年4月号で購読が完了する月刊誌の顧客の一覧を作成するために次の手順を実行した。しかし、目的のデータを正しく検索できていないことが分かった。この手順での検索結果の間違いを、解答群の中から選べ。
購読内容表から、購読終了号が’1999/04’であるデータを検索し、そこから同一顧客コードを1件として、顧客コードだけの一時表Cを作成する。
一時表Cと送付先表とから、顧客の住所と名称の一覧表を作成する。
解答群
ア 購読期間が 1999年4月号 までの顧客で、購読冊数が2冊以上の顧客が含まれていない。
イ 購読期間が 2000年4月号
までの顧客が含まれている。
ウ 週刊誌の顧客が含まれている。
エ 政治分野の月刊誌の顧客のデータが含まれていない。
|
■設問5■
|
新たに、刊行物のバックナンバーの内容を収めた CD-ROM を作成して、販売することになった。刊行物ごとに1年分の内容が1枚の CD-ROM に収められている。CD-ROM に収められている年の当該刊行物のすべての号を購読していた顧客に対しては、CD-ROM を割引価格で販売することになった。“月刊政治”の 1998 年版 CD-ROM 申込み顧客の顧客コードが“申込み表 1998”に入っている。割引対象になる顧客コードの一覧表を作成するための次の SQL
文では、本来割引対象になるべき顧客が選択されなかった。選択すべき対象でありながら、選択されなかった顧客を、解答群の中から二つ選べ。
SELECT 顧客コード
FROM 申込み表1998,購読完了表
WHERE 申込み表1998.顧客コード=購読完了表.顧客コード
AND 購読完了表.購読開始号<=’1998/01’
AND 購読完了表.購読終了号>=’1998/12’
AND 購読完了表.刊行物コード=’2’
ア |
1997年2月号から1998年1月号までで購読をいったん終了し、1998年2月号から1998年12月号まで継続して再購読した顧客 |
イ |
1998年1月号から1998年12月号までだけを購読していた顧客 |
ウ |
1998年6月まで“月刊政治”を購読していて、1998年7月から“週刊政治”を購読するように変更した顧客 |
エ |
購読開始号が1997年1月号以前の顧客 |
オ |
購読開始号が1997年4月号で購読終了号が1999年12月号の顧客 |
|
■答え■
|
設問1 : |
オ |
設問2 : |
a−イ,b−キ,c−ア,d−キ,e−イ,f−ク,g−ア,h−ア |
設問3 : |
i−カ,j−ウ,k−イ,ℓ−キ |
設問4 : |
ウ |
設問5 : |
ア,オ |
|
|