大学院-筆記試験練習:数据库(データベース問題訓練) と 软件工程(ソフトウェア)(9)
- 1-前言
- 2-数据库データベース
- 問1【相似①:B木(2次)挿入】
- 問2【相似②:B+木 削除(再配分/併合)】
- 問3【予測①:正規化(候補キー罠)】
- 問4【予測②:SQL(全称量化+同点+NULL 罠)】
- 3-数据库データベース-答案解析
- 問1【2次B木 挿入】正しい最終結果
- 题目回顾
- ✅ 正しい最終構造(结论)
- 分裂关键点:
- 問2【B+木 削除(キー14)】正しい表述
- ✅ 正しい答案(可给满分的写法)
- 問3【正規化】正しいアンサー
- 与えられた FD
- (1) 候補キー
- ✅ 正解
- (2) 第2正規形か
- ✅ 正解
- 理由(简洁版)
- (3) 第3正規形への分解(満点形)
- ✅ 正解分解
- 問4【SQL】正しいアンサー
- (1) 在籍中 & 全年度有评价
- ✅ 正解(写法)
- (2) 部署内最高分(同点含む)
- ✅ 正解
- 4-软件工程(ソフトウェア)
- 【問1】要件曖昧的問題点
- 你的优点 ✅
- 扣分点 ⚠️
- 🔧 最小改动·满分修正版
- 【問2】テストとレビュー的角色差异
- 题目在问什么?
- 你写了什么?
- 🔧 最小改动·满分修正版(非常重要)
- 【問3】凝集度的重要性
- 你的问题 ⚠️
- 🔧 最小改动·满分修正版
- 【問4】予防保守
- 你的理解 ✅
- 扣分点 ⚠️
- 🔧 最小改动·满分修正版
- 三、本番模拟评分(非常接近真实)
- 5-软件工程(ソフトウェア)答案解析
- 【問1】要件曖昧的問題点
- 你的优点 ✅
- 扣分点 ⚠️
- 🔧 最小改动·满分修正版
- 【問2】テストとレビュー的角色差异
- 题目在问什么?
- 你写了什么?
- 🔧 最小改动·满分修正版(非常重要)
- 【問3】凝集度的重要性
- 你的问题 ⚠️
- 🔧 最小改动·满分修正版
- 【問4】予防保守
- 你的理解 ✅
- 扣分点 ⚠️
- 🔧 最小改动·满分修正版
- 三、本番模拟评分(非常接近真实)
- 6-总结
1-前言
为了考上大学院,做了日语版本练习,边学边看边记录
2-数据库データベース
問1【相似①:B木(2次)挿入】
次に示す2 次の B 木に対して操作(1)〜(4)を行った後の B 木を,
図と同様の表記方法(箱・●ポインタ形式)で描け。
(1) キー値12のレコードを挿入する。
(2) (1) の結果に対してキー値27のレコードを挿入する。
(3) (2) の結果に対してキー値31のレコードを挿入する。
(4) (3) の結果に対してキー値8のレコードを挿入する。
ただし,分割が発生する場合は昇格するキーが分かるように示すこと。
(注意)2 次 B 木における1 ノード当たりの最大キー数を誤らないこと。
問2【相似②:B+木 削除(再配分/併合)】
次に示すB+ 木に対して,キー値19を削除する。
(1) 削除後の B+ 木を図示せよ。
(2) 削除に伴い,再配分または併合が必要となるかを判定し,必要な場合は理由を述べよ。
ただし,
- 可能な場合は再配分を優先し,併合は行わない。
- 葉ノードは連結されているものとする(ポインタの更新を忘れないこと)。
(注意)削除対象が葉に存在する場合の最小キー数制約を誤らないこと。
問3【予測①:正規化(候補キー罠)】
関係 ( R ) を次で定義する。
[
R(A, B, C, D, E)
]
次の関数従属が成り立つものとする。
- ( AB \rightarrow C )
- ( C \rightarrow D )
- ( D \rightarrow E )
- ( E \rightarrow B )
(1) このときの候補キーをすべて求めよ。
(2) 関係 ( R ) が第 2 正規形を満たすか判定し,理由を述べよ。
(3) ( R ) を第 3 正規形に分解せよ。
(注意)候補キーが複数存在する場合がある。推移的関数従属と部分関数従属を混同しないこと。
問4【予測②:SQL(全称量化+同点+NULL 罠)】
次の表を考える。下線は主キーを表す。
- 社員(社員ID, 氏名, 部署ID, 退職日)
- 部署(部署ID, 部署名)
- 評価(社員ID, 年度, スコア)
次の問いに答える SQL 文を記述せよ。
(1)退職日が NULL の社員(在籍中)のうち,
「存在するすべての年度について評価が登録されている社員」の社員IDと氏名を求めよ。
(注意)“すべての年度” は全称量化である。
(2) 部署ごとに,在籍中社員の評価スコアの最大値を求め,
その最大値を持つ社員IDを出力せよ(同点が複数ある場合はすべて出力)。
(注意)WHERE と HAVING,および同点処理を誤らないこと。
3-数据库データベース-答案解析
問1【2次B木 挿入】正しい最終結果
题目回顾
插入顺序:12 → 27 → 31 → 8
前提:2次B木(最大キー数 = 2,3个即分裂,中间キー昇格)
✅ 正しい最終構造(结论)
[15] / \ [9] [27] / \ / \ [3 5] [8] [12] [31] \ | [10 13] [17] [25 30](结构说明用文字给出,考试画图即可)
分裂关键点:
- 插入31时,右侧叶
[25 30] → [25 30 31]
→30 昇格 - 插入8时,左侧叶
[3 5] → [3 5 8]
→5 昇格
⚠️ 你现在的答案里多次出现内部ノード含 3 个 key 仍不分裂,
这在是即死点。
問2【B+木 削除(キー14)】正しい表述
你写的是:
14 が存在しないので変更なし
✅ 正しい答案(可给满分的写法)
キー値 14 を探索した結果,該当する葉ノードにキー 14 は存在しない。
したがって削除処理は行われず,B+木の構造は変化しない。
このため,再配分および併合はいずれも不要である。
⚠️一定要写“探索した結果”
只写「ないから不变」=减分
問3【正規化】正しいアンサー
与えられた FD
- AB → C
- C → D
- D → E
- E → B
(1) 候補キー
✅ 正解
AB,AC
说明(考试不用全写,但你要会):
- AB → C → D → E → B(闭包全属性)
- AC → B → …(同样可得全属性)
⚠️ 你只写AB,漏 AC→直接扣分
(2) 第2正規形か
✅ 正解
第2正規形を満たさない。
理由(简洁版)
主キーが複合キー(AB)であるにもかかわらず,
非主属性 C が A の一部に部分関数従属しているため。
⚠️ 你写“部分関数従属”是对的,
但必须点名「C が A に部分従属」,否则解释不完整。
(3) 第3正規形への分解(満点形)
✅ 正解分解
R1(A, B, C) R2(C, D) R3(D, E)- 各表满足 3NF
- 无信息丢失
- 依赖保持
⚠️ 你写的(E,B)虽然依赖上成立,但不是最小规范分解,
不推荐,会扣结构分。
問4【SQL】正しいアンサー
(1) 在籍中 & 全年度有评价
✅ 正解(写法)
SELECTs.社員ID,s.氏名FROM社員 sWHEREs.退職日ISNULLANDNOTEXISTS(SELECT1FROM評価 yWHERENOTEXISTS(SELECT1FROM評価 rWHEREr.社員ID=s.社員IDANDr.年度=y.年度));⚠️ 你用了IS NOT NULL方向反了
⚠️ 少了“所有年度”的 NOT EXISTS 嵌套
(2) 部署内最高分(同点含む)
✅ 正解
SELECTs.社員IDFROM社員 sJOIN評価 rONs.社員ID=r.社員IDWHEREs.退職日ISNULLANDr.スコア=(SELECTMAX(r2.スコア)FROM社員 s2JOIN評価 r2ONs2.社員ID=r2.社員IDWHEREs2.部署ID=s.部署IDANDs2.退職日ISNULL);4-软件工程(ソフトウェア)
【問1】要件曖昧的問題点
你的优点 ✅
- 抓住了「顧客 vs 開発者 的理解差」
- 明确写了「要件曖昧 → 問題発生」
扣分点 ⚠️
- 没明确点出“後工程への影響”
- 结尾「問題が起きる可能性」稍微口语
🔧 最小改动·满分修正版
要件定義において顧客要求が曖昧なまま進むと, 顧客と開発者の間で要求の解釈にずれが生じやすい。 その結果,設計や実装の工程で問題が顕在化し, 工程後半で手戻りが発生する可能性が高くなる。📌评价:○ → ◎
【問2】テストとレビュー的角色差异
⚠️这题是本页最大失分点
题目在问什么?
テスト と レビュー 的“役割の違い”
你写了什么?
- テスト = 欠陥発見(✔)
- レビュー = 使用体验评价(❌)
レビュー ≠ ユーザ評価
👉 那是「評価試験 / 受入テスト」
🔧 最小改动·满分修正版(非常重要)
テストは,実行結果を通じて ソフトウェア中の欠陥を発見する活動である。 一方,レビューは, 設計書やソースコードなどの成果物を対象として, 人の目によって欠陥や問題点を早期に発見する活動である。📌评价:×~△ → ◎
👉 这一题你一定要重点修正记忆
【問3】凝集度的重要性
你的问题 ⚠️
内容太短
没明确写「モジュール単位」
「1 模块 = 1 责任」
保守性 / 変更容易性
🔧 最小改动·满分修正版
凝集度を高く保つことは, 一つのモジュールが単一の役割を持つことを意味する。 これにより,モジュールの理解が容易になり, 保守性や変更容易性の向上につながる。📌评价:△ → ◎
【問4】予防保守
你的理解 ✅
- 提前发现问题
- 防止问题发生
扣分点 ⚠️
- 还是偏「口语定义」
- 少了「将来の障害」
🔧 最小改动·满分修正版
予防保守とは, 将来発生する可能性のある障害を未然に防ぐために, ソフトウェアの構造改善や点検を行う活動である。 これにより,保守作業の負担を軽減することができる。📌评价:○ → ◎
三、本番模拟评分(非常接近真实)
| 問題 | 原答案 | 修正后 |
|---|---|---|
| 問1 | ○ | ◎ |
| 問2 | ×~△ | ◎ |
| 問3 | △ | ◎ |
| 問4 | ○ | ◎ |
👉修正后 = 稳定满分区
5-软件工程(ソフトウェア)答案解析
【問1】要件曖昧的問題点
你的优点 ✅
- 抓住了「顧客 vs 開発者 的理解差」
- 明确写了「要件曖昧 → 問題発生」
扣分点 ⚠️
- 没明确点出“後工程への影響”
- 结尾「問題が起きる可能性」稍微口语
🔧 最小改动·满分修正版
要件定義において顧客要求が曖昧なまま進むと, 顧客と開発者の間で要求の解釈にずれが生じやすい。 その結果,設計や実装の工程で問題が顕在化し, 工程後半で手戻りが発生する可能性が高くなる。📌评价:○ → ◎
【問2】テストとレビュー的角色差异
⚠️这题是本页最大失分点
题目在问什么?
テスト と レビュー 的“役割の違い”
你写了什么?
- テスト = 欠陥発見(✔)
- レビュー = 使用体验评价(❌)
レビュー ≠ ユーザ評価
👉 那是「評価試験 / 受入テスト」
🔧 最小改动·满分修正版(非常重要)
テストは,実行結果を通じて ソフトウェア中の欠陥を発見する活動である。 一方,レビューは, 設計書やソースコードなどの成果物を対象として, 人の目によって欠陥や問題点を早期に発見する活動である。📌评价:×~△ → ◎
👉 这一题你一定要重点修正记忆
【問3】凝集度的重要性
你的问题 ⚠️
内容太短
没明确写「モジュール単位」
「1 模块 = 1 责任」
保守性 / 変更容易性
🔧 最小改动·满分修正版
凝集度を高く保つことは, 一つのモジュールが単一の役割を持つことを意味する。 これにより,モジュールの理解が容易になり, 保守性や変更容易性の向上につながる。📌评价:△ → ◎
【問4】予防保守
你的理解 ✅
- 提前发现问题
- 防止问题发生
扣分点 ⚠️
- 还是偏「口语定义」
- 少了「将来の障害」
🔧 最小改动·满分修正版
予防保守とは, 将来発生する可能性のある障害を未然に防ぐために, ソフトウェアの構造改善や点検を行う活動である。 これにより,保守作業の負担を軽減することができる。📌评价:○ → ◎
三、本番模拟评分(非常接近真实)
| 問題 | 原答案 | 修正后 |
|---|---|---|
| 問1 | ○ | ◎ |
| 問2 | ×~△ | ◎ |
| 問3 | △ | ◎ |
| 問4 | ○ | ◎ |
👉修正后 = 稳定满分区
6-总结
用日语的方式来直接训练,我认为是提示能力的好办法吧,希望从今天开始,每天坚持到考试那天,一直训练。