分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング...

13
目 次 分野別予想問題シリーズの刊行にあたって 学習のガイダンス編 7 1.出題範囲とスキル標準の概要 9 2.出題傾向 14 3.学習のアドバイス 17 4.本書の使い方 19 午前共通知識問題編 23 午前共通知識 25 午前専門知識問題編 55 第1部 技術要素 57 第2部 コンピュータシステム 167 第3部 開発技術 177 午後問題編 185 第1部 データベース設計の基礎理論 187 問題文中で共通に使用される表記ルール(午後共通) 188 第2部 データベースの分析・設計 219 第3部 SQL 255 第4部 データベースの実装設計・運用 289

Upload: others

Post on 09-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

目 次

分野別予想問題シリーズの刊行にあたって

1 学習のガイダンス編 7

1.出題範囲とスキル標準の概要 9

2.出題傾向 14

3.学習のアドバイス 17

4.本書の使い方 19

2 午前Ⅰ共通知識問題編 23

午前Ⅰ共通知識 25

3 午前Ⅱ専門知識問題編 55

第1部 技術要素 57

第2部 コンピュータシステム 167

第3部 開発技術 177

4 午後Ⅰ問題編 185

第1部 データベース設計の基礎理論 187

問題文中で共通に使用される表記ルール(午後Ⅰ・Ⅱ共通) 188

第2部 データベースの分析・設計 219

第3部 SQL 255

第4部 データベースの実装設計・運用 289

Page 2: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

5 午後Ⅱ問題編 327

第1部 データベース設計 329

第2部 概念データモデリング 389

6 午前Ⅰ共通知識解答・解説編 447

午前Ⅰ共通知識 449

7 午前Ⅱ専門知識解答・解説編 477

第1部 技術要素 479

第2部 コンピュータシステム 565

第3部 開発技術 574

8 午後Ⅰ解答・解説編 581

第1部 データベース設計の基礎理論 583

第2部 データベースの分析・設計 615

第3部 SQL 638

第4部 データベースの実装設計・運用 658

9 午後Ⅱ解答・解説編 683

第1部 データベース設計 685

第2部 概念データモデリング 720

Page 3: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

10 巻末資料 767

1.情報処理技術者試験と試験制度概要 769

2.受験ガイド 780

3.午前の出題範囲 783

商標表示 各社の登録商標及び商標,製品名に対しては,特に注記のない場合でも,これを十分に尊重いたします。

Page 4: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

17

3-1 午前の対策

午前Ⅰ(共通知識)問題には,旧試験には含まれなかった基礎理論,システム

戦略,経営戦略,企業と法務の問題が出題されます。特に基礎理論のうち,デー

タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

データベースと深く関連する分野であり,知識の整理が必要です。また,従来か

らネットワーク技術は出題対象外ですが,インターネットとデータベース(Web

とデータベース)は実用的にも重要な内容であり,セキュリティなどとの関連で

出題される可能性は今後もあると思われます。

午前Ⅱ問題は,コンピュータシステム(コンピュータの構成要素,システム構

成要素),技術要素(データベース,セキュリティ),開発技術(システム開発技

術,ソフトウェア開発技術)について出題されます。技術要素については,特に

本書に収録した問題以外に,データベース試験の過去問題を繰り返し解かれるこ

とをお勧めします。

3-2 午後の対策

(1) 決められた時間内に解答できるように演習する

午後Ⅰ問題における演習の重要なポイントは,次の 3 点になります。

・問題を速く確実に読んで正確に理解する。→ アンダーラインを活用する。

・指定文字数で簡潔に記述する。→ 長めの記述を要約する練習をする。

・問題文の言葉を変更した解答にしない。 → キーワードをそのまま使う。

(2) 午後Ⅰ問題(記述式)の事前対策

午後Ⅰの記述式問題を解くために,受験までに行うべきことは次の 2 点です。

① データベースと関連する自分の立場がデータ管理者か,データベース管理

者のどちらに近いかを決める。

データベーススペシャリストには,大きく分けるとデータ管理者とデータ

ベース管理者という二つの立場があります。

データ管理者の役割は,情報システム全体のデータ資源を管理することで

す。データ管理者は,主としてデータモデリング(概念データモデル,論理

3.学習のアドバイス

Page 5: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

18

データモデル)を担当します。

データベース管理者の役割は,基幹データベースの構築と維持管理です。デ

ータベース管理者は,主としてデータベースの物理設計と運用を担当します。

受験に際しては,データ管理者とデータベース管理者のどちらに近い立場で

仕事をするかによって,3 問中 2 問を選択するときに,ある程度,得意の分野

を選択することが可能ではないかと予想しています。もう一つ(データベース)

アプリケーションプログラムプログラマ(SQL)という立場がありますが,こ

こではどちらかに含まれるとします。データ管理者に近い方は,(1)基礎理論と

(2)データベース設計,データベース管理者に近い方は,(2)データベース設計

と(3)SQL/物理データベース設計の問題を選択されるのをお勧めします。

② 決められた時間内に解答できるように訓練する。

午後Ⅰ問題は,1 問当たり 45 分で解答しなければなりません。問題を正し

く速く読み,簡潔明瞭に記述する訓練が重要です。問題演習では,解答例を

すぐに見てしまうのではなく,時間内に必ず自分で解答してから解答例と比

較することが重要です。

(3) 午後Ⅱ問題(事例解析)の対策

午後Ⅱ問題は,旧データベース試験では,データ管理者かデータベース管理者

かによって,2 問中の 1 問を選択できましたが,データベーススペシャリスト試

験では,どちらかというとデータ管理者よりの問題になっています。従来は,1

問がデータモデル(概念データモデルとデータベース設計,整合性制約,移行な

ど),もう 1 問が概念データモデルと分かれていました。今後も同じ傾向と予想

していますが,特に最近では,マスタ系とトランザクション系に分かれた概念デ

ータモデルをトップダウン手法とボトムアップ手法を併用するデータモデリング

の本格的な問題が主流です。サブタイピングが以前に比較して少し難しくなって

おり,履歴管理と関連して,一見正規化に違反しているのではと思わせるような

非キー属性を重複してもたせる関係スキーマの設計も多くなりました。

事例解析問題は,実務能力を問う問題ですから,この選択は特に重要です。問

題の内容は違っても,問題発見と解答の定石はあります。問題文の内容そのもの

をしっかり把握する訓練が大切です。

Page 6: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

19

本書では,午前問題の出題範囲に基づいて,章ごとに学習目標,キーワードを

設定し,午後問題では部ごとに学習目標を設定しています。学習の際には,まず,

この部分を読み,どのような内容が含まれているかを頭に入れましょう。

第1章 データベース

1.1 データベース方式 【学習目標】

� データベースにはどのような種類があるか,それらの特徴は何かを把握す

る。データベースにはデータベースのモデルが存在するが,その種類と区別,

それぞれの存在意義を整理しておく。データベースのモデル(概念,論理,

物理)と3層スキーマモデルは違うが,対応関係が付くかどうか確認しておく。

■キーワード

■ データベースの種類と特徴 ■ 関係データベース

■ 階層型データベース ■ 網型データベース

① 学習目標

学習の到達度や学習時間の目安になります。

出題分野別の学習概要を確認してください。

② キーワード

理解しているキーワードの□をチェックしましょう。

意味が分からないものは,教科書・参考書で学習してください。全てのキー

ワードにチェックができるように学習を進めてください。

出題分野一覧の重点分野のうち,出題頻度が高いと予想される章を

で示しています。ここに掲載された問題は必ず解いてください。キ

ーワードの□にチェックが少ない場合は,特に重点的に学習してください。

キーワードのチェックが終わったら,問題を解いてみましょう。

4.本書の使い方

最重要!!

②✎

重 要!

重 要!

Page 7: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

20

問1-30 SQL におけるドメインに関する記述のうち,適切なものはどれか。

(H25 春-DB 午前Ⅱ問 7)

ア 基底表を定義するには,ドメインの定義が必須である。

イ ドメインの定義には CREATE 文,削除には DROP 文を用いる。

ウ ドメインの定義は,それを参照する基底表内に複製される。

エ ドメイン名は,データベースの中で一意である必要はない。

③ チェックボックス

次の方法で問題演習をすると効果的です。

問題番号の右に三つのチェックボックス があります。これを

使って,解答に対する自信の度合いをチェックします。チェックボックスは,

1 問に付き 3 回にわたってチェックをすることができます。

最後まで問題を解いたら,解答を確認しましょう。

正 解

この問題は,完全に理解しています。しかし,油断は禁物,関

連部分の再チェックも怠りなく。

不正解

直ちに知識の訂正をしましょう。その場で徹底的に調べること

で,以後,絶対に間違わなくなります。この部分の学習は充実

すること請け合いです。

ここで紹介したチェックの方法は,一つの例です。自分が最も効果的である

と思う方法で,チェックボックスを有効に活用してください。

④ 問題区分

問題の区分を表します。問題に関する得意不得意の判断となり,効率的な問

題選択ができます。

計算・・・問題文の条件から数値を導き出す能力が問われる。

考察・・・問題文の条件から適切な推測をする能力が問われる。

用語・・・用語の意味・定義についての知識が問われる。

文章・・・選択肢の文章を理解する能力が問われる。

CHECK 文 章

③ ④

Page 8: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

58

第1章 データベース

1.1 データベース方式 【学習目標】

� データベースにはどのような種類があるか,それらの特徴は何かを把握す

る。データベースにはデータベースのモデルが存在するが,その種類と区別,

それぞれの存在意義を整理しておく。データベースのモデル(概念,論理,

物理)と3層スキーマモデルは違うが,対応関係が付くかどうか確認しておく。

■キーワード

■ データベースの種類と特徴 ■ 関係データベース

■ 階層型データベース ■ 網型データベース

■ オブジェクト指向データベース ■ データベースのモデル

■ 概念データモデル ■ 論理データモデル

■ 関係モデル ■ 階層モデル ■ ネットワークモデル

■ 物理データモデル ■ 概念スキーマ ■ 外部スキーマ

■ 内部スキーマ ■ 関係(リレーション) ■ タプル(組,行)

■ 属性(列,フィールド) ■ 実現値(インスタンス)

■ 定義域(ドメイン) ■ DBMS など

1.2 データベース設計 【学習目標】

� データ分析の手段(トップダウンとボトムアップ)の区別とそれらに対応

する概念データモデル(E-R 図など)の記述手法,正規化との関係を把握し

ておく。第 1 正規形から第 3 正規形,BCNF(ボイス・コッド正規形)まで,

できれば第 4 正規形まで理解しておく。

■キーワード

■ データ分析 ■ データ項目の標準化

■ トップダウンアプローチ ■ ボトムアップアプローチ

■ データベースの概念設計 ■ E-R 図 ■ UML クラス図

■ データベースの論理設計 ■ スーパーキー ■ 主キー(候補キー)

■ 外部キー ■ キー属性 ■ 非キー属性 ■ データの正規化

■ 第 1 正規形 ■ 第 2 正規形 ■ 第 3 正規形 ■ BCNF

■ 第 4 正規形 ■ 完全関数従属性 ■ 部分関数従属性 ■ 推移的関数従属性

重 要!

最重要!!

Page 9: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

62

データベース 1.1 データベース方式

問1-1 DBMS の記憶管理に関する記述のうち,最も適切なものはどれか。

(H18 春-DB 問 43) ア 関係データベースの参照制約を実現する処理の高速化に連結リストを用い

ることが多い。

イ 関係データベースの一つの表は,ページと呼ばれるデータベースの格納単

位内に収まるよう管理される。

ウ クラスタリングとは,磁気ディスク装置へのアクセス効率向上を目的とし

たデータ格納手法である。

エ バッファ管理では,通常 FIFO(First In First Out)と呼ばれる手法によ

って,主記憶上のデータ領域を管理する。

問1-2 オンライントランザクション処理システムを構成するサーバ上のソフトウェア

のうち,データベース管理システムの役割の説明として,適切なものはどれか。

(H21 春-IP 問 58) ア アプリケーションプログラムからデータの検索や更新の要求を受け付け

て,データベース内のデータの検索や更新をする。

イ クライアントからトランザクション処理要求を受け付けて,要求に対応す

るアプリケーションプログラムを起動する。

ウ トランザクション処理要求によって,必要に応じてデータの検索や更新の

要求を出して業務処理をする。

エ ネットワークを介してクライアントとの通信処理をする。

CHECK 文 章

CHECK 文 章

第1章

Page 10: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

193

午後Ⅰ

データベース設計の基礎理論

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

(746388)

ソフトウェア会社である A 社は,プロジェクト稼働管理システム(以下,プロ

ジェクトを PJ という)に関するデータベースを作成するために,データモデル

の関係スキーマについて検討することになった。

取り上げた PJ 稼働管理システムの関係スキーマを図 1 に示す。関係の意味及

び制約と,主要な属性の意味及び制約は,それぞれ表 1 及び表 2 のとおりである。

属性間の関数従属性は図 2 に示すとおりである。関数従属性の記法は,図 3 に従

った。

ランク(ランクコード,ランク名)

時間単価(ランクコード,改訂番号,組織コード,年月,時間単価)

所属組織(社員コード,開始年月,終了年月,組織コード,組織名,

発足年月日,廃止年月日)

PJ(PJ コード,PJ 名,所属組織コード,PJ 発足年月日,PJ 終了年月日)

PJ 稼働計画(PJ コード,計画番号,社員コード,年月,設定年月日,

社員氏名,PJ リーダ,稼働時間)

図1 PJ 稼働管理システムの関係スキーマ

表1 関係の意味及び制約

関係 意味及び制約

ランク 関係“ランク”は,ランクコードとその名称を保持する。

時間単価

関係“時間単価”は,ランクコードごと組織コードごとに毎月改

訂される時間単価を保持する。

所属組織

関係“所属組織”は,人事異動に伴う社員の所属組織を保持する。

人事異動は月初に行われる。

PJ

プロジェクト(以下,PJ という)は,事業部内の社員の稼働状況

を管理する単位である。関係“PJ”は,PJ の名称,発足年月日,

終了年月日,PJ が所属する組織コード(事業部)を保持する。

PJ 稼働計画

関係“PJ 稼働計画”は,PJ に所属する社員の月ごとの稼働時間

(計画値)を保持する。PJ 発足時に設定された稼働時間は,毎月

見直される。

CHECK

Page 11: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

479

解答

技術要素

第1部 技術要素

問1-1 ウ DBMS の記憶管理に関する記述 (H18 春-DB 問 43)

(ウ)のクラスタリングは,静的クラスタリングのことであり,特定の格納手

法を用いてデータの集まり(クラスタ)をあらかじめ磁気ディスクなどの記憶媒

体に格納しておく。これには,クラスタインデックス(クラスタキー)やハッシ

ュインデックスなどが該当するが,いずれも「磁気ディスク装置へのアクセス効

率向上を目的」としており,(ウ)が最も適切な記述である。なお,並列データベ

ースマシンなどではハッシュビットアレイやソートマージを用いて実行時に動的

にクラスタリングを行うが,これを動的クラスタリングという。

ア: 「参照制約実現のための処理を高速化する」ためには,連結リストではなく,

B 木インデックスやハッシュインデックスが用いられる。

イ: 「関係データベースの一つの表」は,ページではなく,DBMS によって呼び

方は様々であるが,表領域などと呼ばれるファイルスペースに格納される。

エ: バッファ管理は,FIFOも間違いではないが通常LRU(Least Recently Used)

と呼ばれる手法によって管理される。最も適切とはいえない。

問1-2 ア データベース管理システムの役割の説明 (H21 春-IP 問 58)

オンライントランザクション処理システムは,データベース内のデータの検索

や更新を伴うリアルタイム処理である。サーバ上には,アプリケーションプログ

ラムとデータベースがあり,データベースはデータベース管理システム

(DataBase Management System;DBMS)を通してアプリケーションシステ

ムからの要求を受け付ける。データベース管理システムを通してデータベースを

読み書きすることで,データベース内のデータは障害から保護される。また,デ

ータベース管理システムを通すことで,別のオンライントランザクション処理シ

ステムからデータベース内のデータを検索,更新することも可能になる。したが

って,(ア)が適切な説明である。

イ:アプリケーションサーバの役割である。

ウ:データベース管理システムは,データベース内のデータしか処理できない。こ

のため業務処理をすることはない。

エ:クライアントサーバモデルにおけるサーバの役割である。

問1-3 ア 3 層スキーマアーキテクチャ (H24 春-DB 午前Ⅱ問 1)

ANSI/SPARC3 層スキーマアーキテクチャに基づく 3 層スキーマとしては,概

念スキーマ,内部スキーマ,外部スキーマがある。

Page 12: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

583

解答

データベース設計の基礎理論

第1部 データベース設計の基礎理論

問1-1 データベースの基礎理論 (746388)

■公06HDBPⅠ1

【解答例】 [設問1] (1) 不適切なものの番号:④ (2) 候補キー:{PJ コード,計画番号} {PJ コード,社員コード,年月,設定年月日} (3) 部分関数従属性:PJ コード→PJ リーダ 社員コード→社員氏名 [設問2] (1) 正規形名:第 2 正規形

根拠:すべての属性が単一値で,候補キーからの部分関数従属性は

なく,推移的関数従属性{社員コード,開始年月}→組織コー

ド→{組織名,発足年月日,廃止年月日}を含むため。 (2) データ登録時の不都合 次の内容のいずれかを適切に指摘していること。

・主キー制約のため,社員の開始年月の値が決まらないと,組織名,

発足年月日などの組織情報を登録できない。 ・組織名,発足年月日などの組織情報が冗長であり,重複して登録

するため不整合が生じる可能性がある。 (3) 所属組織(社員コード,開始年月,終了年月,組織コード) 組織(組織コード,組織名,発足年月日,廃止年月日) (注) 属性の並びは順不同。関係名は内容を適切に表現するものであれ

ば可。 [設問3] 次図の太い矢線部が解答となる。

年月

設定年月日

時間単価

改訂番号

ランクコード

組織コード

社員コード

Page 13: 分野別予想問題シリーズの刊行にあたって · 第2部 概念データモデリング 720. 10 巻末資料 767 ... タ構造(木構造,2 分木など),アルゴリズム(整列,併合,探索など)などは,

584

【解説】 プロジェクト稼働管理システムを対象にした正規化理論に関する出題である。

[設問1] (1) 不適切な関数従属性

表 1「関係の意味及び制約」と表 2「主要な属性の意味及び制約」から,①~⑤

の関数従属性が成り立つかどうかを読みとる。結論から先にいうと,④だけが不適

切なものに該当する。①~⑤の関数従属性について,個々に見ていく。 ① {PJ コード,計画番号}→稼働時間

表 1 の PJ 稼働計画と表 2 の稼働時間の説明から,{PJ コード,社員コード,

年月}→稼働時間,になることが読みとれる。更に,表 2 の設定年月日の説明か

ら,稼働時間は設定年月日の時点において設定又は見直されることが分かる。つ

まり,稼働時間は時系列管理されており,{PJ コード,社員コード,年月,設定

年月日}→稼働時間,となることが分かる。{PJ コード,社員コード,年月,設

定年月日}は,関係“PJ 稼働計画”の行を一意に識別する候補キーである。 表 2 から,計画番号は「PJ に所属する社員の月ごとの稼働時間が設定又は見

直されるたびに採番される,PJ コード内の通番である」。この説明から,{PJ コ

ード,計画番号}によって,関係“PJ 稼働計画”のタプルを一意に識別できるこ

とが読みとれる。{PJ コード,計画番号}は候補キーであり,稼働時間は,この

候補キーに関数従属する。①は適切である。 ② {PJ コード,社員コード,年月,設定年月日}→計画番号

上記①で述べたように,{PJ コード,社員コード,年月,設定年月日}は関係

“PJ 稼働計画”の候補キーである。 この関数従属性に反射律を適用すると,次のようになる。 {PJ コード,社員コード,年月,設定年月日}→{PJ コード,計画番号} この関数従属性は候補キー間の 1 対 1 対応関係を表しており,②は適切である。

③ {PJ コード,計画番号}→{社員コード,年月,設定年月日} この関数従属性に反射律を適用すると,次のようになる。 {PJ コード,計画番号}→{PJ コード,社員コード,年月,設定年月日} この関数従属性は候補キー間の 1 対 1 関係を表しており,③は適切である。

④ 社員コード→PJ コード 表 2 の社員コードの説明によれば,「1 人の社員は,一つ又は複数の PJ を担当

する」。この説明から,社員コードは,PJ コードを多値決定する(社員コード→

→PJ コード)。社員コードが決まっても,PJ コードは一意に決まらない。 したがって,④の関数従属性は不適切である。

⑤ PJ コード→{PJ 名,所属組織コード,PJ 発足年月日,PJ 終了年月日} 表 1 の PJ 及び表 2 の説明から,この関数従属性は適切である。

(2) 関係“PJ 稼働計画”の候補キー 上記(1)①②③の説明から,{PJ コード,計画番号}と{PJ コード,社員コード,