大学院-筆記試験練習:数据库(データベース問題訓練) と 软件工程(ソフトウェア)(8)
- 1-前言
- 2-数据库データベース
- 3-数据库データベース-答案解析
- [問1(2次B木:16→28→6→21 挿入)正しい最終結果](#問1(2次B木:16→28→6→21 挿入)正しい最終結果)
-
- [(1) 16 挿入後](#(1) 16 挿入後)
- [(2) 28 挿入後](#(2) 28 挿入後)
- [(3) 6 挿入後](#(3) 6 挿入後)
- [✅ (4) 21 挿入後(最終)](#✅ (4) 21 挿入後(最終))
-
- [✅ 最終形](#✅ 最終形)
- [問2(B+木:24 削除)正しい書き方](#問2(B+木:24 削除)正しい書き方)
- 問3(正規化)正しいアンサー
-
- [(1) 候補キー](#(1) 候補キー)
- [(2) 第2正規形か](#(2) 第2正規形か)
- [(3) 第3正規形への分解(満点形)](#(3) 第3正規形への分解(満点形))
- 問4(SQL)正しいアンサー
-
- [(1) 「すべての開講年度で1科目以上履修」](#(1) 「すべての開講年度で1科目以上履修」)
- [(2) 「学科内で最高点の学生(同点は全員)」](#(2) 「学科内で最高点の学生(同点は全員)」)
- 4-软件工程(ソフトウェア)
- 5-软件工程(ソフトウェア)答案解析
-
- 【問1】要件反映失败原因
-
- [你的优点 ✅](#你的优点 ✅)
- [扣分点 ⚠️(立命馆常见)](#扣分点 ⚠️(立命馆常见))
- [🔧 最小改动·满分修正版](#🔧 最小改动·满分修正版)
- 【問2】テストケース設計的重要性
-
- [你的理解 ✅](#你的理解 ✅)
- [严重扣分点 ⚠⚠](#严重扣分点 ⚠⚠)
- [🔧 最小改动·满分修正版](#🔧 最小改动·满分修正版)
- [【問3】内部品質 vs 外部品質](#【問3】内部品質 vs 外部品質)
-
- [你的理解 ✅(这题写得很好)](#你的理解 ✅(这题写得很好))
- [小扣分点 ⚠](#小扣分点 ⚠)
- [🔧 最小改动·满分修正版](#🔧 最小改动·满分修正版)
- 【問4】リファクタリング
-
- [你的理解 ✅](#你的理解 ✅)
- [立命馆明确要求但你没写的点 ⚠⚠](#立命馆明确要求但你没写的点 ⚠⚠)
- [🔧 最小改动·满分修正版](#🔧 最小改动·满分修正版)
- 6-总结
1-前言
为了考上大学院,做了日语版本练习,边学边看边记录

2-数据库データベース
問1【データベース/B木操作(相似①)】
次に示す 2 次の B 木 に対して,以下の操作を この順に 行った後の B 木を,
図と同様の表記方法(ノード・キー・ポインタ) を用いて描け。
(1) キー値 16 のレコードを挿入する。
(2) (1) の結果に対して,キー値 28 のレコードを挿入する。
(3) (2) の結果に対して,キー値 6 のレコードを挿入する。
(4) (3) の結果に対して,キー値 21 のレコードを挿入する。
ただし,ノードの分割が生じる場合は,
どのキーが昇格するかが分かるように 明確に示すこと。
問2【データベース/B木操作(相似②)】
次に示す B+ 木 に対して,キー値 24 を削除する操作を行う。
(1) 削除後の B+ 木を図示せよ。
(2) 削除に伴い,再配分または併合が必要となるか否かを判定し,
必要な場合は,その理由を述べよ。
ただし,
- 各ノードのキー数の制約を満たすこと。
- 再配分が可能な場合は,併合は行わないものとする。
問3【データベース/正規化(予測①)】
次の関係 ( R ) が与えられている。
R(\\underline{A}, B, C, D, E)
また,以下の関数従属が成り立つものとする。
- ( A \rightarrow C )
- ( B \rightarrow D )
- ( AC \rightarrow B )
- ( D \rightarrow E )
(1) この関係 ( R ) の 候補キー をすべて求めよ。
(2) 関係 ( R ) が 第 2 正規形 を満たすか判定し,理由を述べよ。
(3) 関係 ( R ) を 第 3 正規形 に分解せよ。
問4【データベース/SQL(予測②)】
次の表を考える。下線は主キーを表す。
- 学生( 学生番号 , 学生名, 学科番号)
- 科目( 科目番号 , 科目名, 開講年度)
- 履修( 学生番号, 科目番号 , 成績)
次の問いに答える SQL 文 を記述せよ。
(1)
「すべての開講年度 において,少なくとも 1 科目を履修している学生」の
学生番号と学生名を求めよ。
(2)
各学科について,その学科に所属する学生のうち,
成績が学科内で最高点である学生 の学生番号をすべて求めよ。
ただし,同点が複数存在する場合は,すべて出力するものとする。
3-数据库データベース-答案解析


問1(2次B木:16→28→6→21 挿入)正しい最終結果
前提(2次B木)
- 1ノードの最大キー数 = 2
- 3キーになったら 分割 し、中央キーが昇格
(1) 16 挿入後
右側の葉(17)に入る → 16 17(分割なし)
- 根:15
- 左:内部9 → 葉3 5, 10 13
- 右:内部23 → 葉16 17, 25 30
(2) 28 挿入後
25 30 に 28 → 25 28 30 分割
中央 28 昇格 → 右内部が 23 28
- 根:15
- 左:内部9 → 葉3 5, 10 13
- 右:内部23 28 → 葉16 17, 25, 30
(3) 6 挿入後
3 5 に 6 → 3 5 6 分割
中央 5 昇格 → 左内部が 5 9
- 根:15
- 左:内部5 9 → 葉3, 6, 10 13
- 右:内部23 28 → 葉16 17, 25, 30
✅ (4) 21 挿入後(最終)
16 17 に 21 → 16 17 21 分割 、中央 17 昇格
右内部 23 28 に 17 を入れると 17 23 28 溢れ → 分割 、中央 23 昇格
根 15 に 23 を入れて 15 23 で完成
✅ 最終形
-
根:15 23
- 左子:内部 5 9 → 葉 3 , 6 , 10 13
- 中子:内部 17 → 葉 16 , 21
- 右子:内部 28 → 葉 25 , 30
これが「2次B木として合法」な唯一の終形です。
問2(B+木:24 削除)正しい書き方
※問題のB+木の図がこちらに無いので、あなたが書いた前提
「キー24が存在しない」場合の正答はこれ:
(1) 24 を探索した結果,該当する葉ノードに キー24は存在しない 。
したがって 木は変化しない 。
(2) 削除が発生していないため,再配分・併合は不要。
立命館的には「存在しない→だから何も起きない」でも、探索して存在しないことを明記しないと減点されます(そこがポイント)。
問3(正規化)正しいアンサー
与えられた FD:
- (A \rightarrow C)
- (B \rightarrow D)
- (AC \rightarrow B)
- (D \rightarrow E)
(1) 候補キー
((AC)^+):
AC → B → D → E,かつ A→C より
((AC)^+ = {A,B,C,D,E})
✅ 候補キー:AC(のみ)
(2) 第2正規形か
主キーは AC (複合キー)。
2NF違反は「非主属性がキーの一部に部分従属」するとき。
- A→C は Cが主属性(キーの一部) なので 2NF違反にならない
- B, D, E は AC 全体から導かれる(部分従属ではない)
✅ 第2正規形は満たす
(3) 第3正規形への分解(満点形)
推移従属(AC→B→D→E)があるので 3NF 違反。
3NF分解:
- (R_1(A, C, B))(AC→B と A→C を保持)
- (R_2(B, D))(B→D)
- (R_3(D, E))(D→E)
✅ 3NF 分解: { (A,C,B), (B,D), (D,E) }
問4(SQL)正しいアンサー
表:
- 学生(学生番号, 学生名, 学科番号)
- 科目(科目番号, 科目名, 開講年度)
- 履修(学生番号, 科目番号, 成績)
(1) 「すべての開講年度で1科目以上履修」
(年度の全称量化=二重 NOT EXISTS)
sql
SELECT s.学生番号, s.学生名
FROM 学生 s
WHERE NOT EXISTS (
SELECT 1
FROM (SELECT DISTINCT 開講年度 FROM 科目) y
WHERE NOT EXISTS (
SELECT 1
FROM 履修 r
JOIN 科目 k ON k.科目番号 = r.科目番号
WHERE r.学生番号 = s.学生番号
AND k.開講年度 = y.開講年度
)
);
(2) 「学科内で最高点の学生(同点は全員)」
(相関サブクエリ+MAX)
sql
SELECT DISTINCT s.学生番号
FROM 学生 s
JOIN 履修 r ON r.学生番号 = s.学生番号
WHERE r.成績 = (
SELECT MAX(r2.成績)
FROM 学生 s2
JOIN 履修 r2 ON r2.学生番号 = s2.学生番号
WHERE s2.学科番号 = s.学科番号
);
4-软件工程(ソフトウェア)
【問題1】(ソフトウェア分野・相似①)
問1.
要件定義と外部設計において,
顧客要求が正しく反映されない原因 を 1 つ挙げ,
それが後工程に与える影響について説明せよ。
🔻立命馆常见陷阱
- ❌ 只写「認識不足」「ミスが起きる」=抽象过头
- ✅ 必须出现「解釈のずれ」「工程後半」
【問題2】(ソフトウェア分野・相似②)
問2.
ソフトウェアテストにおいて,
テストケースの設計が重要とされる理由 を
テストの目的と関連づけて説明せよ。
🔻立命馆常见陷阱
- ❌ 把「バグを直す」写进来(那是デバッグ)
- ✅ 关键词是「欠陥の発見」「網羅性」
【問題3】(ソフトウェア分野・预测①)
問3.
ソフトウェア開発において,
内部品質 と外部品質が区別される理由を説明せよ。
🔻立命馆常见陷阱
-
❌ 写成"用户视角 / 开发者视角"一句话就结束
-
✅ 必须点出:
- 内部结构
- 利用者から見えない点
- 保守・変更との关系
【問題4】(ソフトウェア分野・预测②)
問4.
リファクタリングを行う際に,
外部的挙動を変更しないことが重要とされる理由を説明せよ。
🔻立命馆常见陷阱
-
❌ 只写「動作が変わると困る」=小学生答案
-
✅ 要连到:
- 品質保証
- テスト
- 保守工程
5-软件工程(ソフトウェア)答案解析

【問1】要件反映失败原因
你的优点 ✅
- 抓对了「顧客 vs 開発者 知識差」
- 有写「要求が曖昧」「正しい理解が困難」
扣分点 ⚠️(立命馆常见)
- 「原因の一つは問題を発生する」
→ 语义回环(原因=问题) - 没明确写 「後工程への影響」
🔧 最小改动·满分修正版
text
顧客は業務について十分な知識を持っているが,
システム開発に関する専門知識は十分でない場合が多い。
一方,開発者は開発の専門知識を持つが,
業務内容の理解が不十分なことがある。
そのため,要件が曖昧なままでは正しい解釈が困難となり,
工程後半で問題が発生する可能性が高くなる。
📌 评价:○ → ◎
【問2】テストケース設計的重要性
你的理解 ✅
- テスト目的 = 欠陥発見
- 与品质(保守性、適応性)挂钩 ------ 思路是对的
严重扣分点 ⚠⚠
- 问题问的是「テストケース設計が重要な理由」
- 你写成了「テストの目的」
👉 这是**"答非所问型扣分"**
🔧 最小改动·满分修正版
text
テストケースの設計が重要とされる理由は,
ソフトウェア中の欠陥を効率よく発見するためである。
適切なテストケースを設計することで,
様々な条件を網羅的に検証でき,
欠陥の見落としを防ぐことができる。
📌 评价:△ → ◎
【問3】内部品質 vs 外部品質
你的理解 ✅(这题写得很好)
- 内部品質:用户看不到
- 外部品質:用户体验、使用感
小扣分点 ⚠
- 内部品質 必须连到「保守・変更」
- 外部品質 必须连到「利用者評価」
🔧 最小改动·满分修正版
text
内部品質とは,利用者からは直接見えない
ソフトウェアの内部構造に関する品質であり,
保守性や変更容易性に影響を与える。
一方,外部品質とは,
利用者が直接評価できる品質であり,
操作性や性能などが使用体験を通じて現れる。
📌 评价:◎ → ◎(安定)
【問4】リファクタリング
你的理解 ✅
- 内部品質向上
- 保守工程が楽になる
立命馆明确要求但你没写的点 ⚠⚠
- 「外部的挙動を変更しない理由」
- 没提测试 / 品质保证
🔧 最小改动·满分修正版
text
リファクタリングを行う目的は,
ソフトウェアの内部構造を改善し,
内部品質を向上させることである。
外部的挙動を変更しないことで,
既存の機能やテスト結果を維持でき,
保守工程を安全かつ容易に行うことができる。
📌 评价:○ → ◎
6-总结
用日语的方式来直接训练,我认为是提示能力的好办法吧,希望从今天开始,每天坚持到考试那天,一直训练。