情報処理技術者試験(今のところは基本情報技術者試験)の過去問(データベース-データベース方式・設計)を集めて,シンプルにまとめています。関係モデル(属性),関係データベース(RDBMS,データ構造,命名規約,データディクショナリ,3層スキーマアーキテクチャ,クエリ,オプティマイザ,データ機密保護,主キー,外部キー),E-R図,UML(クラス図,多重度),正規化(関数従属,推移的関数従属,第3正規形)について,理解度を確認することができます。解けなかった問題や,完全に理解できていない問題については,【参考】にあるリンク先ページを読んで,もう一度,解いてみてください。難しい問題もあると思いますが,繰り返し解くことにより,だんだんと身に付いてきますので,根気よく頑張りましょう。
- 平成31年度 基本情報技術者試験 春期 午前 問26
- 平成28年度 基本情報技術者試験 春期 午前 問26
- 平成25年度 基本情報技術者試験 秋期 午前 問29
- 平成23年度 基本情報技術者試験 秋期 午前 問31
- 平成22年度 基本情報技術者試験 春期 午前 問29
- 平成26年度 基本情報技術者試験 秋期 午前 問26
- 平成27年度 基本情報技術者試験 春期 午前 問26
- 平成27年度 基本情報技術者試験 秋期 午前 問25
- 平成27年度 基本情報技術者試験 春期 午前 問30
- 平成26年度 基本情報技術者試験 春期 午前 問25
- 平成30年度 基本情報技術者試験 春期 午前 問27
- 平成23年度 基本情報技術者試験 特別 午前 問35
- 平成28年度 基本情報技術者試験 秋期 午前 問26
- 平成24年度 基本情報技術者試験 春期 午前 問28
- 平成24年度 基本情報技術者試験 秋期 午前 問26
- 平成23年度 基本情報技術者試験 特別 午前 問29
- 平成23年度 基本情報技術者試験 秋期 午前 問33
- (令和4年度) 基本情報技術者試験 サンプル問題 科目A 問22
- 令和元年度 基本情報技術者試験 秋期 午前 問25
- 平成30年度 基本情報技術者試験 秋期 午前 問26
- 平成29年度 基本情報技術者試験 秋期 午前 問28
- 平成25年度 基本情報技術者試験 春期 午前 問26
- 平成29年度 基本情報技術者試験 春期 午前 問26
- 平成27年度 基本情報技術者試験 春期 午前 問28
- 平成30年度 基本情報技術者試験 秋期 午前 問27
- 平成27年度 基本情報技術者試験 春期 午前 問29
- 平成24年度 基本情報技術者試験 秋期 午前 問28
- 平成21年度 基本情報技術者試験 秋期 午前 問32
- 平成25年度 基本情報技術者試験 秋期 午前 問30
- 平成28年度 基本情報技術者試験 春期 午前 問29
- 平成23年度 基本情報技術者試験 特別 午前 問34
- 平成26年度 基本情報技術者試験 秋期 午前 問28
- 平成28年度 基本情報技術者試験 秋期 午前 問27
- 平成29年度 基本情報技術者試験 春期 午前 問25
- 平成26年度 基本情報技術者試験 春期 午前 問26
- 令和5年度 基本情報技術者試験 公開問題 科目A 問6
- 平成21年度 基本情報技術者試験 春期 午前 問32
- 平成22年度 基本情報技術者試験 春期 午前 問30
- 平成22年度 基本情報技術者試験 秋期 午前 問29
- 平成27年度 基本情報技術者試験 秋期 午前 問27
- まとめ
平成31年度 基本情報技術者試験 春期 午前 問26
問 関係モデルの属性に関する説明のうち,適切なものはどれか。
ア 関係内の属性の定義域は重複してはならない。
イ 関係内の属性の並び順に意味はなく,順番を入れ替えても同じ関係である。
ウ 関係内の二つ以上の属性に,同じ名前を付けることができる。
エ 名前をもたない属性を定義することができる。
【解答】イ
【解説】
■ 関係モデル(リレーショナルモデル)
論理データモデルのひとつで,データを2次元の表で表す。
ア 定義域は重複しても問題ない
ウ 関係内では,属性名は一意でなければならない
エ 名前をもたない属性は定義できない
平成28年度 基本情報技術者試験 春期 午前 問26
問 関係モデルとその実装である関係データベースの対応に関する記述のうち,適切なものはどれか。
ア 関係は,表に対応付けられる。
イ 属性も列も,左から右に順序付けられる。
ウ タプルも行も,ともに重複しない。
エ 定義域は,文字型又は文字列型に対応付けられる。
【解答】ア
【解説】
■ 関係モデル(リレーショナルモデル)
論理データモデルのひとつで,データを2次元の表で表す。
イ 関係モデルの場合は属性の並びという概念自体がないが,関係データベースの場合は順序が設定される
ウ 関係モデルの場合はタプル(組)は重複してはいけないが,関係データベースの場合は重複が生じることがある
平成25年度 基本情報技術者試験 秋期 午前 問29
平成23年度 基本情報技術者試験 秋期 午前 問31
問 関係データベースのデータ構造の説明として,適切なものはどれか。
ア 親レコードと子レコードをポインタで結合する。
イ タグを用いてデータの構造と意味を表す。
ウ データと手続を一体化(カプセル化)してもつ。
エ データを2次元の表によって表現する。
【解答】エ
【解説】
■ 関係モデル(リレーショナルモデル)
論理データモデルのひとつで,データを2次元の表で表す。
ア 階層型データベース
イ HTMLなど
ウ オブジェクト指向のカプセル化の概念
平成22年度 基本情報技術者試験 春期 午前 問29
問 関係データベースの説明として,適切なものはどれか。
ア 属性単位に,属性値とその値をもつレコード格納位置を組にして表現する。索引として利用される。
イ データを表として表現する。表間は相互の表中の列の値を用いて関連付けられる。
ウ レコード間の関係を,ポインタを用いたデータ構造で表現する。木構造の表現に制限される。
エ レコード間の関係を,リンクを用いたデータ構造で表現する。木構造や網構造も表現できる。
【解答】イ
【解説】
■ 関係モデル(リレーショナルモデル)
論理データモデルのひとつで,データを2次元の表で表す。
ア インデックス
ウ 階層型データベース
エ ネットワーク型データベース
平成26年度 基本情報技術者試験 秋期 午前 問26
問 RDBMSにおけるスキーマの説明として,適切なものはどれか。
ア 実表ではない,利用者の視点による仮想的な表である。
イ データの性質,形式,他のデータとの関連などのデータ定義の集合である。
ウ データの挿入,更新,削除,検索などのデータベース操作の総称である。
エ データベースの一貫性を保持するための各種制約条件の総称である。
【解答】イ
【解説】
■ 3層スキーマ(データベース定義)
3層スキーマとは,データベースのスキーマ(構造やデータの格納形式)を3つの階層に分けて定義する方式をいいます。
※ スキーマ…形式,図式,枠組みなどの意味を持つ
外部スキーマ | 利用者やアプリケーションプログラムから見たデータを定義する。関係データベースのビュー定義に相当する。概念スキーマに変更があった場合でも,ビューを変更するだけでよく,アプリケーションプログラムを変更する必要はない(論理的データ独立性) |
概念スキーマ | データの論理的な構造を定義する。関係データベースの表(テーブル)定義に相当する |
内部スキーマ | 記憶装置上のデータの配置や格納方法について定義する。概念スキーマに変更があった場合でも,データベースファイルを変更する必要はない(物理的データ独立性) |
ア ビュー
ウ SQL
エ 整合性制約
平成27年度 基本情報技術者試験 春期 午前 問26
問 DBMSが,3層スキーマアーキテクチャを採用する目的として,適切なものはどれか。
ア 関係演算によって元の表から新たな表を導出し,それが実在しているように見せる。
イ 対話的に使われるSQL文を,アプリケーションプログラムからも使えるようにする。
ウ データの物理的な格納構造を変更しても,アプリケーションプログラムに影響が及ばないようにする。
エ プログラム言語を限定して,アプリケーションプログラムとDBMSを緊密に結合する。
【解答】ウ
【解説】
■ 3層スキーマ(データベース定義)
3層スキーマとは,データベースのスキーマ(構造やデータの格納形式)を3つの階層に分けて定義する方式をいいます。
※ スキーマ…形式,図式,枠組みなどの意味を持つ
外部スキーマ | 利用者やアプリケーションプログラムから見たデータを定義する。関係データベースのビュー定義に相当する。概念スキーマに変更があった場合でも,ビューを変更するだけでよく,アプリケーションプログラムを変更する必要はない(論理的データ独立性) |
概念スキーマ | データの論理的な構造を定義する。関係データベースの表(テーブル)定義に相当する |
内部スキーマ | 記憶装置上のデータの配置や格納方法について定義する。概念スキーマに変更があった場合でも,データベースファイルを変更する必要はない(物理的データ独立性) |
ア ビュー
イ カーソル
平成27年度 基本情報技術者試験 秋期 午前 問25
問 DBMSにおいて,スキーマを決める機能はどれか。
ア 機密保護機能 | イ 障害回復機能 |
ウ 定義機能 | エ 保全機能 |
【解答】ウ
【解説】
■ データベース管理システム(DBMS;DataBase Management System)
データベース管理システムの機能には,次のようなものがある。
データベース定義 | データベースの構造やデータの格納形式を3層スキーマとして定義する |
データベース操作 | データベースへの操作(作成,読出し,更新,削除)を,データベース言語を使用して行う |
同時実行制御 (排他制御) | 複数のトランザクションを同時に実行した場合でも,データの整合性を保つ機能 |
障害回復 | 障害が起こった際に,データベースを回復し元の状態に戻す機能 |
平成27年度 基本情報技術者試験 春期 午前 問30
問 図は,DBMSが受け付けたクエリを実行するまでの処理の流れを表している。①~③に入る処理の組合せとして,適切なものはどれか。
① | ② | ③ | |
ア | コード生成 | 構文解析 | 最適化 |
イ | コード生成 | 最適化 | 構文解析 |
ウ | 構文解析 | コード生成 | 最適化 |
エ | 構文解析 | 最適化 | コード生成 |
【解答】エ
【解説】
クエリ ⇒ 構文解析(内容の解釈)⇒ 最適化(効率の良い実行方法の決定)⇒ コード生成 ⇒ 実行
【参考】 |
平成26年度 基本情報技術者試験 春期 午前 問25
問 SQL文を実行する際に,効率が良いと考えられるアクセス経路を選択する関係データベース管理システム(RDBMS)の機能はどれか。
ア オプティマイザ | イ ガーベジコレクション |
ウ クラスタリング | エ マージソート |
【解答】ア
【解説】
■ オプティマイザ
最適化(効率の良い実行方法の決定)を行うための機能(やソフトウェア)のこと。
【参考】 |
平成30年度 基本情報技術者試験 春期 午前 問27
問 DBMSが提供する機能のうち,データ機密保護を実現する手段はどれか。
ア 一連の処理を論理的単位としてまとめたトランザクションを管理する。
イ データに対するユーザのアクセス権限を管理する。
ウ データを更新するときに参照制約をチェックする。
エ データを更新する前に専有ロックをかける。
【解答】イ
【解説】
ア,ウ,エ 整合性を保つ手段
平成23年度 基本情報技術者試験 特別 午前 問35
問 DBMSが管理するデータ,利用者,プログラムに関する情報,及びそれらの間の関係を保持するデータの集合体はどれか。
ア データウェアハウス | イ データディクショナリ |
ウ データマート | エ データマイニング |
【解答】イ
【解説】
■ データディクショナリ
メタデータ(データの属性や意味,内容などを管理するための情報)を集めて管理するもの。
平成28年度 基本情報技術者試験 秋期 午前 問26
平成24年度 基本情報技術者試験 春期 午前 問28
問 E-R図に関する記述のうち,適切なものはどれか。
ア 関係データベースの表として実装することを前提に表現する。
イ 管理の対象をエンティティ及びエンティティ間のリレーションシップとして表現する。
ウ データの生成から消滅に至るデータ操作を表現する。
エ リレーションシップは,業務上の手順を表現する。
【解答】イ
【解説】
■ E-R図
データベースの概念設計で用いられる。データベース化の対象となる実世界のデータを,エンティティ(実体)とリレーションシップ(関連)という概念で抽象化する。
■ E-R図の構成要素
エンティティ(実体) | データベース化の対象となる実世界を構成する要素で,いくつかの属性を持つ。物理的な実体だけでなく,抽象的な事象も要素となり得る |
リレーションシップ(関連) | 実世界の規則やルールなどによるエンティティ間の関係。属性を持つこともできる |
アトリビュート(属性) | エンティティが持つ性質や特性 |
カーディナリティ | エンティティ間の対応関係を表したもの。「1対1」,「1対多」,「多対多」といった関係がある |
ア 関係データベースに限らない
ウ DFD
【参考】 | 「E-R図(概念設計) -情報処理シンプルまとめ」 |
平成24年度 基本情報技術者試験 秋期 午前 問26
問 E-R図の説明のうち,適切なものはどれか。
ア エンティティタイプ間には,1対多,多対多などのリレーションシップがある。
イ エンティティタイプ間の関連は,参照側から被参照側への方向の矢印線で表現する。
ウ エンティティタイプには属性をもたせないで,リレーションシップタイプに属性をもたせる。
エ エンティティタイプの中に関連先のエンティティ名を記述することによって,リレーションシップを表す。
【解答】ア
【解説】
■ E-R図
データベースの概念設計で用いられる。データベース化の対象となる実世界のデータを,エンティティ(実体)とリレーションシップ(関連)という概念で抽象化する。
■ E-R図の構成要素
エンティティ(実体) | データベース化の対象となる実世界を構成する要素で,いくつかの属性を持つ。物理的な実体だけでなく,抽象的な事象も要素となり得る |
リレーションシップ(関連) | 実世界の規則やルールなどによるエンティティ間の関係。属性を持つこともできる |
アトリビュート(属性) | エンティティが持つ性質や特性 |
カーディナリティ | エンティティ間の対応関係を表したもの。「1対1」,「1対多」,「多対多」といった関係がある |
イ エンティティタイプの関連は,1対1「-」,1対多「→」,多対多「↔」で表す
【参考】 | 「E-R図(概念設計) -情報処理シンプルまとめ」 |
平成23年度 基本情報技術者試験 特別 午前 問29
問 UMLを用いて表した図のデータモデルの多重度の説明のうち,適切なものはどれか。
ア 社員が1人も所属しない組織は存在しない。
イ 社員は必ずしも組織に所属しなくてもよい。
ウ 社員は複数の組織に所属することができる。
エ 一つの組織に複数の社員は所属できない。
【解答】ア
【解説】
イ,ウ 1人の社員に対して1つの組織が存在可能なので,社員は必ず1つの組織に所属することになる
エ 1つの組織に対して1人以上の社員が所属可能である
平成23年度 基本情報技術者試験 秋期 午前 問33
問 UMLを用いて表した図のデータモデルの解釈のうち,適切なものはどれか。
ア 1回の納品に対して分割請求できる。
イ 顧客への請求を支払で相殺できる。
ウ 請求処理は納品と同時に実行される。
エ 複数回の納品分をまとめて請求できる。
【解答】エ
【解説】
ア 1回の納品に対して0回か1回の請求が可能なので,1回の納品に対して分割請求できるわけではない
ウ 1回の納品に対して0回か1回の請求が可能なので,請求処理は納品と同時に実行されるとは限らない
(令和4年度) 基本情報技術者試験 サンプル問題 科目A 問22
令和元年度 基本情報技術者試験 秋期 午前 問25
問 UMLを用いて表した図の概念データモデルの解釈として,適切なものはどれか。
ア 従業員の総数と部署の総数は一致する。
イ 従業員は,同時に複数の部署に所属してもよい。
ウ 所属する従業員がいない部署の存在は許されない。
エ どの部署にも所属しない従業員が存在してもよい。
【解答】イ
【解説】
ア 1つの部署には0人以上の従業員が所属可能で,1人の従業員は1つ以上の部署に所属可能なので,一致するとは限らない
ウ 1つの部署には0人以上の従業員が所属可能なので,従業員がいない部署の存在は許される
エ 1人の従業員は1つ以上の部署に所属可能なので,従業員は少なくとも1つの部署に所属しなければならない
平成30年度 基本情報技術者試験 秋期 午前 問26
問 UMLを用いて表した図のデータモデルのa,bに入れる多重度はどれか。
〔条件〕
(1) 部門には1人以上の社員が所属する。
(2) 社員はいずれか一つの部門に所属する。
(3) 社員が部門に所属した履歴を所属履歴として記録する。
a | b | |
ア | 0..* | 0..* |
イ | 0..* | 1..* |
ウ | 1..* | 0..* |
エ | 1..* | 1..* |
【解答】エ
【解説】
(1)より,aは「1..*」。
(2),(3)より,bは「1..*」。
平成29年度 基本情報技術者試験 秋期 午前 問28
問 UMLを用いて表した図のデータモデルの解釈のうち,適切なものはどれか。
ア 事業部以外の部門が,部門を管理できる。
イ 社員は事業部に所属できる。
ウ 所属する社員がいない部門が存在する。
エ 部門は,いずれかの事業部が管理している。
【解答】イ
【解説】
ア 部門を管理できるのは事業部のみ
イ 部門と事業部は汎化-特化の関係なので,社員は部門(親クラス)を特化させた事業部(子クラス)に所属できる
ウ 1つの部門には1人以上の社員が所属可能なので,社員がいない部門は存在しない
エ 1つの部門は0か1の事業部が管理可能なので,いずれかの事業部が管理しているとは限らない
平成25年度 基本情報技術者試験 春期 午前 問26
問 UMLを用いて表した図のデータモデルに対する多重度の説明のうち,適切なものはどれか。
ア 社員が複数のプロジェクトに参画する場合は,全て同じ役割分担となる。
イ 社員は,同じプロジェクトに異なる役割分担で参画することができる。
ウ 社員は,一つ以上のプロジェクトに参画している。
エ 社員は,複数の部門に所属することができる。
【解答】イ
【解説】
ア,イ プロジェクト参画は,プロジェクト・社員・プロジェクト内役割分担で一意に定まるので,1人の社員が複数のプロジェクトに参画でき,また,同じプロジェクト内で異なる役割分担で参画することもできる。
ウ 1人の社員は0以上のプロジェクトに参画可能なので,1つ以上のプロジェクトに参画しているとは限らない
エ 1人の社員は1つの部門に所属可能なので,複数の部門に所属することはできない
平成29年度 基本情報技術者試験 春期 午前 問26
平成27年度 基本情報技術者試験 春期 午前 問28
問 図のデータモデルを三つの表で実装する。このとき,“A社への売上50,000円を,2017年4月4日に現金勘定に計上した” ことを記録する “移動” 表のa,bの適切な組合せはどれか。ここで,モデルの表記にはUMLを用いる。
a | b | |
ア | 208 | 貸方 |
イ | 208 | 借方 |
ウ | 510 | 貸方 |
エ | 510 | 借方 |
【解答】エ
【解説】
「A社への売上50,000円を,2017年4月4日に現金勘定に計上した」仕訳は,
現金 50,000 / 売上 50,000
となる。移動表を見ると,貸方の売上については2行目に登録されているので,1行目は借方の現金であることが分かる。よって,
aは510
bは借方
となる。
平成30年度 基本情報技術者試験 秋期 午前 問27
平成27年度 基本情報技術者試験 春期 午前 問29
平成24年度 基本情報技術者試験 秋期 午前 問28
問 データ項目の命名規約を設ける場合,次の命名規約だけでは回避できない事象はどれか。
〔命名規約〕
(1) データ項目名の末尾には必ず “名”,“コード”,“数”,“金額”,“年月日” などの区分語を付与し,区分語ごとに定めたデータ型にする。
(2) データ項目名と意味を登録した辞書を作成し,異音同義語や同音異義語が発生しないようにする。
ア データ項目 “受信年月日” のデータ型として,日付型と文字列型が混在する。
イ データ項目 “受注金額” の取り得る値の範囲がテーブルによって異なる。
ウ データ項目 “賞与金額” と同じ意味で “ボーナス金額” というデータ項目がある。
エ データ項目 “取引先” が,“取引先コード” か “取引先名” か,判別できない。
【解答】イ
【解説】
ア (1)により回避できる
ウ (2)により回避できる
エ (1)により回避できる
【参考】 |
平成21年度 基本情報技術者試験 秋期 午前 問32
問 関係データベースの主キーの性質として,適切なものはどれか。
ア 主キーとした列に対して検索条件を指定しなければ,行の検索はできない。
イ 数値型の列を主キーに指定すると,その列は算術演算の対象としては使えない。
ウ 一つの表の中に,主キーの値が同じ行が複数存在することはできない。
エ 複数の列からなる主キーを構成することはできない。
【解答】ウ
【解説】
■ 候補キー
表のひとつの行を一意に識別する属性(または属性の組)のことをいう。
この「選手」表の場合,「選手番号」が候補キーになる。また,「背番号」,「選手名」の複合キーについても行を一意に識別することができるので候補キーになる。
■ 主キー(primary key)
候補キーの中から任意に選ぶことができるが,次のような制約(主キー制約)がある。
- 行を一意に識別できなければならない(一意性制約)
- 主キーを構成する属性は,値を必ず持っていなければならない(NOT NULL制約)
ア 主キーとした列以外の列でも検索できる
イ 主キーとした列の値も算術演算の対象とすることができる
エ 複合キーを主キーとすることもある
平成25年度 基本情報技術者試験 秋期 午前 問30
問 関係データベースの主キー制約の条件として,キー値が重複していないことの他に,主キーを構成する列に必要な条件はどれか。
ア キー値が空でないこと
イ 構成する列が一つであること
ウ 表の先頭に定義されている列であること
エ 別の表の候補キーとキー値が一致していること
【解答】ア
【解説】
■ 候補キー
表のひとつの行を一意に識別する属性(または属性の組)のことをいう。
この「選手」表の場合,「選手番号」が候補キーになる。また,「背番号」,「選手名」の複合キーについても行を一意に識別することができるので候補キーになる。
■ 主キー(primary key)
候補キーの中から任意に選ぶことができるが,次のような制約(主キー制約)がある。
- 行を一意に識別できなければならない(一意性制約)
- 主キーを構成する属性は,値を必ず持っていなければならない(NOT NULL制約)
平成28年度 基本情報技術者試験 春期 午前 問29
平成23年度 基本情報技術者試験 特別 午前 問34
問 関係データベースにおいて,外部キーを定義する目的として,適切なものはどれか。
ア 関係する相互のテーブルにおいて,レコード間の参照一貫性が維持される制約をもたせる。
イ 関係する相互のテーブルの格納場所を近くに配置することによって,検索,更新を高速に行う。
ウ 障害によって破壊されたレコードを,テーブル間の相互の関係から可能な限り復旧させる。
エ レコードの削除,追加の繰返しによる,レコード格納エリアのフラグメンテーションを防止する。
【解答】ア
【解説】
■ 外部キー(foreign key)
関連する他の表の特定の属性(列)を参照する属性(または属性の組)のことをいい,次のような制約(参照制約)がある。
- 外部キーの値が,関連する他の表(被参照表)に存在しなければならない(参照制約)
※ 参照制約とは,データの矛盾を起こすような,行の追加・変更・削除を制約することをいう
平成26年度 基本情報技術者試験 秋期 午前 問28
問 関係を第3正規形まで正規化して設計する目的はどれか。
ア 値の重複をなくすことによって,格納効率を向上させる。
イ 関係を細かく分解することによって,整合性制約を排除する。
ウ 冗長性を排除することによって,更新時異状を回避する。
エ 属性間の結合度を低下させることによって,更新時のロック待ちを減らす。
【解答】ウ
【解説】
ア 値の重複をなくすのは第1正規化
イ 関係を細かく分解すると整合性制約は増える
平成28年度 基本情報技術者試験 秋期 午前 問27
問 6行だけから成る “配送” 表において成立している関数従属はどれか。ここで,X → Yは,XはYを関数的に決定することを表す。
ア 配送先 → 部品ID | イ 配送日 → 部品ID |
ウ 部署ID → 部品ID | エ 部署名 → 配送先 |
【解答】ア
【解説】
イ 配送日が「2016-08-30」のときに,部品IDが一意に定まらない(関数従属はない)
ウ 部署IDが「500」のときに,部品IDが一意に定まらない(関数従属はない)
エ 部署名が「研究開発部」のときに,配送先が一意に定まらない(関数従属はない)
平成29年度 基本情報技術者試験 春期 午前 問25
平成26年度 基本情報技術者試験 春期 午前 問26
問 属性aの値が決まれば属性bの値が一意に定まることを,a → bで表す。例えば,社員番号が決まれば社員名が一意に定まるということの表現は,社員番号 → 社員名である。この表記法に基づいて,図の関係が成立している属性a ~ jを,関係データベース上の三つのテーブルで定義する組合せとして,適切なものはどれか。
ア テーブル1(a) テーブル2(b,c,d,e) テーブル3(f,g,h,i,j) | イ テーブル1(a,b,c,d,e) テーブル2(b,f,g,h) テーブル3(e,i,j) |
ウ テーブル1(a,b,f,g,h) テーブル2(c,d) テーブル3(e,i,j) | エ テーブル1(a,c,d) テーブル2(b,f,g,h) テーブル3(e,i,j) |
【解答】イ
【解説】
テーブル(a,b,c,d,e,f,g,h,i,j)の主キーは属性aであるが,
a → b → {f,g,h}
a → e → {i,j}
のように推移関数従属している属性があるので,属性b,eを主キーとした表にそれぞれ分割する
テーブル1(a,b,c,d,e)
テーブル2(b,f,g,h)
テーブル3(e,i,j)
令和5年度 基本情報技術者試験 公開問題 科目A 問6
問 次の関数従属を満足するとき,成立する推移的関数従属はどれか。ここで,“A→B” はBがAに関数従属していることを表し,“A→{B, C}” は,“A→B” かつ “A→C” が成立することを表す。
〔関数従属〕
{注文コード,商品コード} → {顧客注文数量,注文金額}
注文コード → {注文日,顧客コード,注文担当者コード}
商品コード → {商品名,仕入先コード,商品販売価格}
仕入先コード → {仕入先名,仕入先住所,仕入担当者コード}
顧客コード → {顧客名,顧客住所}
ア 仕入先コード → 仕入担当者コード → 仕入先住所
イ 商品コード → 仕入先コード → 商品販売価格
ウ 注文コード → 顧客コード → 顧客住所
エ 注文コード → 商品コード → 顧客注文数量
【解答】ウ
【解説】
■ 推移関数従属
非キー属性間に関数従属がある状態をいう。
ア 仕入担当者コードと仕入先住所には関数従属がない
イ 仕入先コードと商品販売価格には関数従属がない
エ 注文コードと商品コードには関数従属がない
平成21年度 基本情報技術者試験 春期 午前 問32
問 “従業員” 表を第3正規形にしたものはどれか。ここで,下線部は主キーを表す。
従業員(従業員番号,従業員氏名,{技能コード,技能名,技能経験年数})
({ }は繰返しを表す)
ア
イ
ウ
エ
【解答】ウ
【解説】
関係「従業員」は,繰り返し項目が存在するので,非正規形である。主キーは,
従業員(従業員番号,従業員氏名,{技能コード,技能名,技能経験年数})
のように,従業員番号と技能コードである(複合キー)。
第1正規化では,繰り返し項目を排除する。
従業員(従業員番号,従業員氏名,技能コード,技能名,技能経験年数)
第2正規化では,部分関数従属(主キーの一部である従業員番号に従業員氏名が部分関数従属している。主キーの一部である技能コードに技能名がに部分関数従属している)を排除し,次のように表を分割する。
経験技能(従業員番号,技能コード,技能経験年数)
従業員(従業員番号,従業員氏名)
技能(技能コード,技能名)
第3正規化では,推移関数従属を排除するが,その関係は存在しないので,既に第3正規形になっている。
平成22年度 基本情報技術者試験 春期 午前 問30
問 “発注伝票” 表を第3正規形に書き換えたものはどれか。ここで,下線部は主キーを表す。
発注伝票(注文番号,商品番号,商品名,注文数量)
ア 発注(注文番号,注文数量)
商品(商品番号,商品名)
イ 発注(注文番号,注文数量)
商品(注文番号,商品番号,商品名)
ウ 発注(注文番号,商品番号,注文数量)
商品(商品番号,商品名)
エ 発注(注文番号,商品番号,注文数量)
商品(商品番号,商品名,注文数量)
【解答】ウ
【解説】
関係「発注伝票」の主キーは,注文番号と商品番号(複合キー)で,第1正規化までは完了している。
第2正規化では,部分関数従属(主キーの一部である商品番号に商品名が部分関数従属している)を排除し,表を分割する。
発注(注文番号,商品番号,注文数量)
商品(商品番号,商品名)
第3正規化では,推移関数従属を排除するが,その関係は存在しないので,既に第3正規形になっている。
平成22年度 基本情報技術者試験 秋期 午前 問29
問 次の “受注台帳” 表を “注文” 表と “顧客” 表に分解し,第3正規形にしたとき,両方に必要な属性はどれか。ここで,送付先と支払方法は注文ごとに決めるものとする。また,表の下線は主キーを表す。
受注台帳(注文番号,注文年月日,顧客ID,顧客名,顧客住所,品目,数量,送付先,支払方法,受注金額)
ア 顧客ID | イ 顧客名 | ウ 支払方法 | エ 注文番号 |
【解答】ア
【解説】
関係「受注台帳」は,主キーが注文番号で,第2正規化までは完了している。
第3正規化では,推移関数従属(非キー属性である顧客IDに顧客名,顧客住所が推移関数従属している)を排除し,表を分割する。
注文(注文番号,注文年月日,顧客ID,品目,数量,送付先,支払方法,受注金額)
顧客(顧客ID,顧客名,顧客住所)
平成27年度 基本情報技術者試験 秋期 午前 問27
問 関係 “注文記録” の属性間に①~⑥の関数従属性があり,それに基づいて第3正規形まで正規化を行って,“商品”,“顧客”,“注文”,“注文明細” の各関係に分解した。関係 “注文明細” として,適切なものはどれか。ここで,{X,Y}は,属性XとYの組みを表し,X→Yは,XがYを関数的に決定することを表す。また,実線の下線は主キーを表す。
注文記録(注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価)
〔関数従属性〕
- ① 注文番号 → 注文日
- ② 注文番号 → 顧客番号
- ③ 顧客番号 → 顧客名
- ④ {注文番号,商品番号} → 数量
- ⑤ {注文番号,商品番号} → 販売単価
- ⑥ 商品番号 → 商品名
ア 注文明細(注文番号,数量,販売単価)
イ 注文明細(注文番号,顧客番号,数量,販売単価)
ウ 注文明細(注文番号,顧客番号,商品番号,顧客名,数量,販売単価)
エ 注文明細(注文番号,商品番号,数量,販売単価)
【解答】エ
【解説】
関係「注文記録」の主キーは,
注文記録(注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価)
のように,注文番号と商品番号である(複合キー)。また,繰り返し項目が存在しないので,第1正規化までは完了している。
第2正規化では,部分関数従属(①②:主キーの一部である注文番号に注文日と顧客番号が,それぞれ部分関数従属している,⑥:主キーの一部である商品番号に商品名が部分関数従属している)を排除し,次のように表を分割する。
注文明細(注文番号,商品番号,数量,販売単価)
注文(注文番号,注文日,顧客番号,顧客名)
商品(商品番号,商品名)
第3正規化では,推移関数従属(③:非キー属性である顧客番号に顧客名が推移関数従属している)を排除し,次のように表を分割する。
注文明細(注文番号,商品番号,数量,販売単価)
注文(注文番号,注文日,顧客番号)
顧客(顧客番号,顧客名)
商品(商品番号,商品名)
まとめ
今回は,情報処理技術者試験の過去問(データベース-データベース方式・設計)を集めて,シンプルにまとめてみました。みなさん,どのくらい解けましたか?はじめは難しく感じると思いますが,繰り返し解くことにより,少しずつ理解できるようになると思います(8割以上(できれば9割以上)解けるようになるまで頑張りましょう)。また,解けるようになっても時間が経つと忘れることもありますので,たとえば,1週間後とか,1か月後とかに,また,やってみてください。