【大学院-筆記試験練習:数据库(データベース問題訓練) と 软件工程(ソフトウェア)(7)】

大学院-筆記試験練習:数据库(データベース問題訓練) と 软件工程(ソフトウェア)(7)

1-前言

为了考上大学院,做了日语版本练习,边学边看边记录

2-数据库データベース

問1【データベース・B木操作|相似①】

次に示す 2 次の B 木 に対して,以下の操作を この順に 行った後の B 木を,
与えられた図と同様の箱・●ポインタ形式 で描け。

(1) キー値 18 のレコードを挿入する。

(2) (1) の結果に対して,キー値 26 のレコードを挿入する。

(3) (2) の結果に対して,キー値 7 のレコードを挿入する。

(4) (3) の結果に対して,キー値 21 のレコードを挿入する。

ただし,ノードの分割が発生する場合は,
分割の過程および昇格するキーが分かるように 図示すること。

(注意)

  • 2 次 B 木における 1 ノードあたりのキー数 に注意せよ。
  • 境界条件(<,≦)の扱いを誤らないこと。

問2【データベース・B木操作|相似②】

次に示す B+ 木 (内部ノードと葉ノードを区別する)に対して,

キー値 30 を削除する操作を行った。

(1) 削除後の B+ 木を図示せよ。

(2) 再配分または併合が発生するか否かを判定し,

発生する場合はその理由を説明せよ。

ただし,

  • すべての葉ノードは 同一深さ にあるものとする。
  • 再配分が可能な場合は,併合は行わない ものとする。

問3【データベース・正規化|予測①】

次の関係 ( R ) が与えられている。

R(\\underline{A}, B, C, D, E)

また,以下の関数従属が成り立つものとする。

  • ( A \rightarrow B )
  • ( B \rightarrow C )
  • ( AD \rightarrow E )

(1) 候補キーをすべて求めよ。

(2) 関係 ( R ) が 第 2 正規形 であるか判定し,理由を述べよ。

(3) ( R ) を 第 3 正規形 に分解せよ。

(注意)

  • 部分関数従属と推移的関数従属を混同しないこと。
  • 不要な分解は減点対象とする。

問4【データベース・SQL|予測②】

次の表を考える。下線は主キーを表す。

  • 学生( 学生番号 , 学生名, 学科番号, 生年月日)
  • 履修( 学生番号, 科目番号 , 成績)
  • 科目( 科目番号 , 科目名, 学期)

次の問い合わせを SQL を用いて記述せよ

(1)

すべての学期において 1 科目以上を履修している学生」の

学生番号と学生名を求めよ。

(2)

生年月日が 1995 年 1 月 1 日以降 の学生のうち,

その学生の成績が 同一学科内で最高点である学生 の全情報を求めよ。

(注意)

  • WHERE と HAVING の使い分けに注意せよ。
  • 同点が複数存在する場合は すべて出力 すること。
  • 集合の包含関係を正しく表現すること。

3-数据库データベース-答案解析

一、問3(正規化)------❌ 核心概念性错误(必须纠正)

这是今天最重要的一点


题目回顾(问3)

关系:

R(\\underline{A}, B, C, D, E)

函数依赖:

  • ( A \rightarrow B )
  • ( B \rightarrow C )
  • ( AD \rightarrow E )

你写的答案

(1)

候補キーは B と D

错误(致命)


正确分析(一步一步)

① 先做闭包
  • ( A^+ = {A, B, C} )
  • ( (A,D)^+ = {A, B, C, D, E} )

👉 只有 AD 能决定所有属性

✅ 正确结论

候補キー:AD(唯一)

B 不是键(B 推不出 A、D、E)


(2)

第2正規形ではない

理由:非主属性的部分依赖没有消除

判断对,理由写错一半

正确逻辑是:
  • 主键是 AD
  • 非主属性 B、C
  • 存在

    A \\rightarrow B,\\ C

  • A 是主键的一部分
    部分関数従属

👉 所以 不满足第2正規形

⚠️ 你没有明确点出「AD 是主键」,


(3) 你给的分解

复制代码
R1(A, B, C)
R2(A, D, E)

错误(不满足 3NF)


为什么错?

R1(A,B,C) 中:

  • 有 ( A → B )
  • 有 ( B → C )

👉 仍然存在推移的函数従属

不是第3正規形


✅ 标准满分分解

\\begin{aligned} R_1(A, B) R_2(B, C) R_3(A, D, E) \\end{aligned}

这三个表:

  • 无部分依赖
  • 无推移依赖
  • 无信息丢失

📌 問3 採点评价

小问 评价
(1) 候補キー
(2) 正規形判断 ⚠️(结论对,论证不严)
(3) 分解

👉 本番:几乎整题失分

⚠️ 这是「概念没完全站稳」的典型信号

好消息是:这是最好补的那种错误


二、問4(SQL)------❌ 结构性错误(但可修)


問4(1)

「すべての学期において1科目以上履修している学生」



正确思路(考试要你这样想)

这是经典的:

不存在某个学期,该学生没有修任何课

👉 用 NOT EXISTS + 二重否定

✅ 满分结构(示意)

sql 复制代码
SELECT S.学生番号, S.学生名
FROM 学生 S
WHERE NOT EXISTS (
  SELECT *
  FROM 科目 K
  WHERE NOT EXISTS (
    SELECT *
    FROM 履修 R
    WHERE R.学生番号 = S.学生番号
      AND R.科目番号 = K.科目番号
  )
);

問4(2)

「学科内で最高点(同点含む)」


当前的问题

  • ❌ 把 子查询最大值 写成了结构混乱的 HAVING
  • ❌ 没有按 学科分组比较
  • ❌ MAX 的作用域不清晰

正确逻辑

  • 对每个学科算 MAX
  • 与学生成绩比较
  • 同点全部输出

正确结构(示意)

sql 复制代码
SELECT *
FROM 学生 S
JOIN 履修 R ON S.学生番号 = R.学生番号
WHERE R.成績 = (
  SELECT MAX(R2.成績)
  FROM 学生 S2
  JOIN 履修 R2 ON S2.学生番号 = R2.学生番号
  WHERE S2.学科番号 = S.学科番号
);

📌 問4 採点评价

小问 评价
(1)
(2)

4-软件工程(ソフトウェア)

【問題1】(软件工程・相似母题)

問1.

ソフトウェア開発において,要件定義の段階で問題が十分に解決されないまま設計・実装に進むことの問題点を,1つ挙げて説明せよ。

陷阱提示(你自己注意)

  • ❌ 不要写「バグが増える」这种结果
  • ✅ 要写「なぜ工程後半で致命化するか

【問題2】(软件工程・相似母题)

問2.

ウォーターフォールモデルと比較した場合の,反復型(イテレーティブ)開発プロセスの特徴を1つ述べ,その理由を説明せよ。

陷阱提示

  • ❌ 只写「柔軟」会被判不充分
  • ✅ 必须出现「フィードバック 」「要求変更」中的至少一个

【問題3】(软件工程・预测题)

问3.

ソフトウェアの保守作業において,**是正保守(corrective maintenance)適応保守(adaptive maintenance)**の目的がどのように異なるかを説明せよ。

陷阱提示

  • ❌ 把「機能追加」写进去是常见扣分点
  • ✅ 抓住「原因来源不同」

【問題4】(软件工程・预测题)

問4.

モジュール分割を行う際に,結合度を低く保つことが重要とされる理由を,ソフトウェアの品質の観点から説明せよ。

陷阱提示

  • ❌ 不要只写「わかりやすい」
  • ✅ 必须连接到「変更」「影響範囲」「保守性」

5-软件工程(ソフトウェア)答案解析


問題1 评阅(要求定义为什么难)

你的原意(✔ 对)

  • 用户懂业务,不懂系统

  • 要求没说清 → 后期问题多 → 返工、重做

  • 「专业知识不足」写得有点

  • 没明确点出 "解釈のズレ" 这个关键词

✅ 本番满分修正版(推荐背)

text 复制代码
顧客は自らの業務に関する知識を豊富に持っている一方で,
システム開発に関する専門知識が十分でない場合が多い。
そのため,要件定義の段階で要求の解釈にずれが生じ,
曖昧な要求が残ったまま開発が進むと,
工程後半で多くの問題が発生し,手戻りや再構築が必要となる。

📌 这一题:现在 ≈ 70% → 修正后 ≈ 95%


問題2 评阅(开发模型对比)

理解(✔ 对)

  • 瀑布:前期固定,不灵活
  • 迭代:能应对需求变化

致命扣分点(⚠⚠)

  • 问题问的是「反復型の利点」
  • 你写成了「ウォーターフォールの欠点」

「方向对,但答题焦点偏了」= 会被扣分

✅ 本番满分修正版

text 复制代码
反復型開発プロセスでは,開発の途中で顧客からの
フィードバックを取り入れながら,
要求の変更や修正に柔軟に対応することができる。
そのため,要求の曖昧さを早期に発見し,
完成度の高いソフトウェアを開発しやすい。

📌 这一题:现在 ≈ 50~60% → 修正后 ≈ 100%


問題3 评阅(是正保守 vs 適応保守)

你的理解(✔ 非常好)

  • 是正保守:修正错误、保证正确性
  • 適応保守:适应环境变化

小扣分点(⚠)

  • 「使用方法」有点模糊
  • 少了一个环境变化的具体来源

✅ 本番满分修正版

text 复制代码
是正保守の目的は,ソフトウェアに内在する欠陥を修正し,
正しい動作を維持することである。
一方,適応保守の目的は,
ハードウェアやOSなどの実行環境の変化に対応し,
ソフトウェアを適応させることである。

📌 这一题:你已经 ≈ 85~90%


問題4 评阅(模块化 / 低耦合)

你的理解(✔ 对)

  • 影响范围小

  • 修改不影响其他模块

  • 保守性

  • 変更容易性

✅ 本番满分修正版

text 复制代码
モジュール分割の目的は,
各モジュールの影響範囲を限定することである。
結合度を低く保つことで,
あるモジュールを変更しても他のモジュールに
影響を与えにくくなり,
ソフトウェア全体の保守性や変更容易性が向上する。

📌 这一题:现在 ≈ 75% → 修正后 ≈ 95%


6-总结

用日语的方式来直接训练,我认为是提示能力的好办法吧,希望从今天开始,每天坚持到考试那天,一直训练。

相关推荐
j_jiajia3 小时前
(一)人工智能算法之监督学习——KNN
人工智能·学习·算法
2301_783360133 小时前
关于RNAseq——从fastq到gene_counts全流程
笔记·学习
_李小白4 小时前
【AlohaMini学习笔记】第三天:AlohaMini相关技术
笔记·学习
我命由我123454 小时前
Photoshop - Photoshop 工具栏(57)模糊工具
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
yatingliu20194 小时前
将深度学习环境迁移至老旧系统| 个人学习笔记
笔记·深度学习·学习
week_泽4 小时前
第1课:AI Agent是什么 - 学习笔记_1
人工智能·笔记·学习
开开心心_Every5 小时前
安卓后台录像APP:息屏录存片段,行车用
java·服务器·前端·学习·eclipse·edge·powerpoint
kitsch0x975 小时前
论文学习_QSYM: A Practical Concolic Execution Engine Tailored for Hybrid Fuzzing
学习
QiZhang | UESTC5 小时前
学习日记day55
学习