問1
下図の請求書を出力するために,請求先名称(コダマ電器株式会社),請求元名称(コグレ流通株式会社),商品名称(目立テレビなど),数量,単価,金額のうち,データベースに保存しておくデータはどれか。

ア 請求先名称,請求元名称,商品名称,数量,単価,金額
イ 請求先名称,商品名称,数量,単価,金額
ウ 請求先名称,商品名称,数量,単価
エ 商品名称,数量,単価,金額
次のものはデータベースに保存する必要はない。
1 あらかじめ出力帳票に印刷しておけるもの
(データベースを参照することなく,プログラムで出力できるもの)
すなわち,どの請求書でも共通のもの
→請求元名称は不要
2 プログラムで計算できるもの
→金額(=数量×単価)は不要
参照:「データベースの基礎」(db-kiso)
問2
得意先マスタや商品マスタのようなマスタファイルと売上ファイルのようなイベントファイルを比較したとき,一般的にマスタファイルにあてはまるものとして,最も適切なものはどれか。
ア レコードの個数が多い。
イ 同じ得意先コードや商品コードを持つレコードが複数存在する。
ウ 更新処理の頻度は比較的少ない。
エ 月別,年度別にファイルを分けることが多い。
イベントファイルは取引のたびに発生する。それで更新処理は頻繁に発生するし,レコードは多くなり,同じ得意先コードや商品コードを持つレコードが複数存在する。処理の効率のために,月別,年度別にファイルを分けることが多い。
参照:「ファイルの概念」(db-file)
問3
データの正規化に関する次の記述のうち,最も適切なものを選べ。
ア 非正規形を第1正規形にすると,行数は増加するのが一般的である。
イ 第1正規形を第2正規形にすると,表の個数は減少するのが一般的である。
ウ 第2正規形を第3正規形にすると,表の個数は減少するのが一般的である。
エ 正規化をすることにより,全体のデータ量は増大するのが一般的である。
アは○:繰返し項目の数だけ行数が増加する。
イ・ウは×。表の個数は減少する。
エは×。得意先名称や商品名称などが1ヶ所になるので,データ量は減少する。
参照:「データベースの基礎」(db-kiso)
問4
学生と科目を主キーとし,学部,学科,単位,成績を属性とするファイルについて,次の記述のうち,正しいものはどれか。
ア 学生と科目の両方が決まると成績が決まるので,推移関数従属の属性である。
イ 学生が決まるだけで学科は決まるので,学科は完全関数従属の属性である。
ウ 科目が決まるだけで単位は決まるので,単位は部分関数従属の属性である。
エ 学部は学生が決まれば決まるが,学科が決まるだけで決まるので,各部は学生に部分関数従属している。
関数従属:ある属性が定まると他の属性が定まるという関係
完全関数従属:主キー全体に従属すること→アは完全関数従属
部分関数従属:主キーの一部に従属すること→イ・ウは部分関数従属
推移関数従属:間接的に従属すること→エは推移関数従属
参照:「データの正規化」(db-seikika)
問5
次の表群が正しく第3正規化されているとするとき,正しいものはどれか。
ただし,「A={a,b,c}」とは「表Aは項目a,b,cを持ち,項目aが主キーである」ことを示す。
社員表={社員コード,社員名,部門コード,資格コード}
部門表={部門コード,部門名}
資格表={資格コード,資格名,資格手当}
ア 同姓同名の社員が存在することを考慮されていない。
イ 複数の部門に所属する兼任の社員はいないことになっている。
ウ どのような資格を持っていても,資格手当ては同一である。
エ 資格表にあるどの資格も,その資格を持っている社員は少なくとも1名は存在する。
アは×。同姓同名であっても社員コードが異なるので区別できる。
イは○。社員表から所属する部門が一つに決まる。
ウは×。資格コードが異なれば資格手当も異なる。
エは×。社員は唯一の資格を持つ。しかし,誰も持っていない資格が資格表に存在する可能性はある。
参照:「データの正規化」(db-seikika)
問6
ある企業は,多数の商品を複数の仕入先から購入しているが,個々の商品は一つの仕入先から購入することにしており,単価は購入数量に関係なく同一であるとする。これを第3正規形のファイル群にしたとき,正しいものはどれか。ただし,「A={a,b,c}」とは「表Aは項目a,b,cを持つ」ことを示す。
ア 仕入表={商品コード,仕入先コード,数量}
仕入先表={仕入先コード,仕入先名,商品コード}
商品表={商品コード,商品名,単価}
イ 仕入表={商品コード,仕入先コード,数量}
仕入先表={仕入先コード,仕入先名}
商品表={商品コード,商品名,単価}
ウ 仕入表={商品コード,数量}
仕入先表={仕入先コード,仕入先名,商品コード,単価}
商品表={商品コード,商品名}
エ 仕入表={商品コード,数量}
仕入先表={仕入先コード,仕入先名}
商品表={商品コード,商品名,仕入先コード,単価}
商品が決まれば仕入先が決まるので,
商品表には仕入先コードが必要
仕入表には商品コードだけでよく,仕入先コードは不要
商品が決まれば単価が決まるので,
商品表に単価が必要
参照:「データの正規化」(db-seikika)
問7
次の文中の空欄に入れるべき組合せのうち,正しいものはどれか。
[安部愛子]や[井上一郎]は「学生」である。このとき,[安部愛子]や[井上一郎]を[ 1 ]といい,「学生」を[ 2 ]という。また,二つの[ 2 ]間の関連を[ 3 ]といい,[ 2 ]を長方形,[ 3 ]をそれを結んだ線として表記する図法を[ 4 ]という。
1 2 3 4
ア インスタンス エンティティ リレーションシップ E-R図
イ エンティティ インスタンス リレーションシップ DFD
ウ エンティティ リレーションシップ オブジェクト UML
エ オブジェクト エンティティ リンク E-R図
参照:「ERモデル」(db-ermodel)
問8
次の文中の空欄に入れるべき組合せのうち,正しいものはどれか。
「学生」と「科目」の関係は,学生は複数の科目を履修し,一つの科目を複数の学生が履修するので,その間には[ 1 ]の対応がある。しかし,ある学生がある科目を履修した成績を考えると,それにより1:Nの対応に結びつけることができる。そのとき,成績ファイルは,成績と[ 2 ]を項目として持つことになる。
1 2
ア 1:N 学生番号
イ M:N 科目番号
ウ 1:N 学生番号と科目番号
エ M:N 学生番号と科目番号
1 学生が決めても,科目は決まらない
科目を決めても,学生は決まらない
→M:Nの対応
2 学生と科目が決まれば,成績が決まる。
学生と科目が親,成績が子
子のファイルに親のコードあり
→成績ファイルに学生番号と科目番号がある
参照:「ERモデル」(db-ermodel)
問9
E-R図に関する次の記述のうち,最も適切なものを選べ。
アは×。データの流れではなく,データの構造
イは×。リレーションシップは必要最小限にするべき
ウは○。イと同じ理由
エは×。同じ結果になる
参照:「ERモデル」(db-ermodel)
問10
次のE-R図と矛盾のない正規化された表群はどれか。ただし,すべてのエンティティはコードと名称をもつものとし,「A={a,b,c}」とは「表Aは項目a,b,cを持ち,項目aが主キーである」ことを示す。
┌─────┐ ┌─────┐
│ X │ │ Y │
└────┬┘ └┬────┘
1│ │1
│ │
*│ │*
┌┴───┴┐
│ Z │
└─────┘
ア 表X={Xのコード,Xの名称}
表Y={Yのコード,Yの名称}
表Z={Zのコード,Zの名称,Xのコード,Yのコード}
イ 表X={Xのコード,Xの名称,Zのコード}
表Y={Yのコード,Yの名称,Zのコード}
表Z={Zのコード,Zの名称}
ウ 表X={Xのコード,Xの名称}
表Y={Yのコード,Yの名称}
表Z={Zのコード,Zの名称,Xのコード,Yのコード}
エ 表X={Xのコード,Xの名称,Zのコード}
表Y={Yのコード,Yの名称,Zのコード}
表Z={Zのコード,Zの名称}
「エンティティはコードと名称」→そのコードが主キーになる→ウ・エは×
「子のファイルに親のコードあり」の原則→イ・エは×
参照:「ERモデル」(db-ermodel)
問11
リレーショナルデータベースの操作に関する次の記述のうち,最も適切なものを選べ。
ア 射影操作を行うと,表の行数が大きい表が得られる。
イ 射影操作を行うと,表の列数が少ない表が得られる。
ウ 選択操作を行うと,表の行数が少ない表が得られる。
エ 選択操作を行うと,表の列数が大きい表が得られる。
射影操作→指定した項目(列)を取り出す→列数が少ない表
選択操作→条件に合致したレコード(行)を取り出す→行数が少ない表
参照:「RDBの基本操作とSQL」(db-rdb-sql)
問12
SQLに関する記述のうち,正しいものはどれか。
アは○。
イは×。SELECT文で複合して記述できる。
ウは×。一方ではユニークキーであり,他方ではそうではないのが通常
エは×。「表名.項目名」
参照:「RDBの基本操作とSQL」(db-rdb-sql)
問13
次の二つの表に対して,SQLプログラムを実行したときに得られるものはどれか。
売上表 商品表
商品コード 数量 商品コード 商品名
20 1 10 商品A
10 2 20 商品B
15 3 30 商品C
20 4 40 商品D
SELECT 商品名,数量
FROM 売上表,商品表
WHERE 売上表.商品コード=商品表.商品コード
ア 商品名 数量 イ 商品名 数量 ウ 商品名 数量 エ 商品名 数量
商品B 1 商品B 1 商品B 1 商品B 1
商品A 2 商品A 2 商品A 2 商品A 2
3 3 商品B 4 商品B 4
商品B 4 商品B 4 商品D 0
商品D 0
結合操作では,結合される項目の双方に存在するものだけが取り出される。
参照:「RDBの基本操作とSQL」(db-rdb-sql)
問14
SQLのSELECT文
SELECT[ A ] FROM[ B ] WHERE[ C ]
の空欄A,B,Cとリレーショナルデータベースの基本操作の対応で,最も適切な組合せはどれか。
射影 選択 結合
ア A B C
イ B A C
ウ C B B
エ A C C
参照:「RDBの基本操作とSQL」(db-rdb-sql)
問15
商品コードと数量を項目に持つ売上表と,商品コードと単価を項目に持つ商品表がある。これから,商品別の金額合計を大きい順に並べた表を出力するSQLを作成したのであるが誤りがあった。誤りの行の組合せのうち,正しいものはどれか。
1 SELECT 商品コード,SUM(数量*単価) AS 金額合計
2 FROM 売上表,商品表
3 WHERE 売上表.商品コード=商品表.商品コード
4 GROUP BY 商品コード
5 ORDER BY 金額合計 DESC
ア 1,4に誤りがある。
イ 1,5に誤りがある。
ウ 4,5に誤りがある。
エ 1,4,5に誤りがある。
商品コードは2つの表に存在するので,売上表.商品コードあるいは商品表.商品コードとする。→1と4に誤り
5の金額合計はSUM(数量*単価)の誤り。
参照:「RDBの基本操作とSQL」(db-rdb-sql)
問16
データベースを用いる利点の記述として,最も不適切なものはどれか。
ア プログラムからの独立が図れる。
イ データの保管に要する記憶媒体の容量が少なくなる。
ウ データの管理が容易になる。
エ 個別プログラムの処理速度が向上する。
アは○。プログラマは項目名を知っているだけでよい。
イは○。データの重複がない。特に名称項目は1ヶ所だけ。
テーブルは多様なシステムで利用できる。
ウは○。データの重複がない。1ヶ所だけ。
エは×。DBMSへの参照,結合処理の増大などで処理効率は低下する。
参照:「データベースの機能」(db-kinou)
問17
データベースの種類と特徴に関する記述として,最も適切なものはどれか。
アは○。RDB,関係モデルともいう。
Access,Oracle,DB2など,パソコンから汎用コンピュータまで広く利用。
エは×。期待されているが,あまり普及していない。むしろRDBの機能拡張でカバー。
イは×。RDB以前のデータベース。
このネットワークはグラフ理論のネットワークで,通信のネットワークとは無関係。
ウは×。データウェアハウスでのOLAPで用いられている。
参照:「データベースの基礎」(db-kiso)