![]()
平成25年 秋期 基本情報技術者 午後 問02
問02 5問選択問2 選手情報を管理する関係データベースの設計及び運用に関する次の記述を読んで, 設問1〜4に答えよ。 ある少年野球リーグの事務局では,登録選手の氏名や成績などの個人情報を管理するために, 関係データベースを構築することにした。このリーグには,近隣の8チームが参加している。 まず,リーグに所属するチームと登録選手の情報を管理するために,図1に示すチーム表と 選手表を設計した。下線付きの項目は,主キーを表す。
![]() 図1 チーム表と選手表のデータ格納例
設問1 チームの対戦成績を管理する表を設計する。
次の記述中の このリーグでは,毎年4月から翌年の3月までを1シーズンとし,試合は各チームが 他のチームの全てと1回だけ対戦する総当たり方式で行う。 このデータベースでは,各チームの対戦成績や,勝利投手,敗戦投手などの情報を管理する。 チーム成績は勝点によって順位付けする。勝点は,勝利チームに3点, 敗戦チームに0点,引分けの場合は両チームに1点ずつを付与する。
最初,図1に示すチーム表に,必要な項目を追加することを考えたが,
総当たりで対戦することから,表に繰返し項目が発生することになる。これを改善する
ために
![]() 図2 日程表と結果表のデータ格納例 a に関する解答群 エ 第3正規化 オ セキュリティを強化 b に関する解答群
設問2 勝点が多いチームから降順にチーム番号,チーム名,勝点,総得点を表示する。 このとき,勝点が等しい場合は,総得点の降順に表示する。次の SQL 文の ![]()
SUM(結果表.勝点) AS 勝点,SUM(結果表.得点) AS 総得点 FROM チーム表,結果表 WHERE チーム表.チーム番号 = 結果表.チーム番号 ![]() 解答群 ORDER BY 勝点 ASC,総得点 ASC
イ GROUP BY チーム表.チーム番号,チーム表.チーム名 ウ ORDER BY 勝点,総得点 ASC エ ORDER BY 勝点,総得点 DESC
設問3 選手個人の打撃成績を管理するために,図3に示す打席表と打撃表を作成した。
ホームランを打った数(以下,ホームラン数という)が多い選手から降順に選手番号,
選手名,ホームラン数を表示する。次の SQL 文の
![]() FROM 打席表,選手表 WHERE 打席表.打者 = 選手表.選手番号 AND 打席表.打撃結果 = (SELECT 打撃表.打撃結果 FROM 打撃表 WHERE 打席表.名称 = 'ホームラン') GROUP BY 打席表.打者,選手表.氏名 ORDER BY 集計数 ![]()
![]() 図3 打席表と打撃表のデータ格納例 d に関する解答群
設問4 このリーグでは,チーム表や選手表は更新しながら継続的に使用する。 対戦成績と打撃成績はシーズンごとに表を作成するが,過去の情報も参照できるように, シーズン終了後も蓄積しておく。
リーグに所属する選手情報の管理について,次の記述中の
新しい選手の情報は,選手表に追加すればよい。リーグを離れる選手の情報は, 蓄積されている情報の参照を考慮して,削除せずに残しておいた方がよい。
ある選手がシーズン途中に別のチームへ移籍する場合,選手表のチーム番号を
更新すると,例えば,SQL 文を用いて当該シーズンにおける
![]() 図4 変更後の表構成とデータ格納例 解答群 ウ チームごとの総得点 エ チームごとのホームラン数 オ リーグの総得点 カ リーグのホームラン数
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| |||||||||||||||