DSE ICT 练习卷:数据库、SQL 与系统开发(12 题・100 分・75 分钟)
- 2026-11-04
练习卷 · DSE ICT 数据库、SQL 与系统开发全卷
HKDSE ICT 练习卷:数据库、SQL 与系统开发。12 题、100 分、75 分钟,甲部考关联式模型、资料表设计与 SQL 语法,乙部考正规化、索引与查询效率,丙部考系统开发流程、测试与备份管理,每题附评分要点及完整计算步骤,适合中四至中六考生。
卷面资料 年级:中四至中六(S4–S6) | 科目:资讯及通讯科技 | 时限:75 分钟 | 总分:100 分 | 题数:12
甲部 关联式模型、资料表设计与 SQL(第 1–4 题,32 分)
每题 8 分;计算题须列算式及单位,SQL 题须写出完整可执行的语句。
| # | 题目 | 答案与评分要点 |
|---|---|---|
| 1 | 某学校数据库的 STUDENT 资料表现有 4,800 笔记录,每笔记录平均占用 180 字节。(a) 计算该资料表的总容量,以字节及 KB 表示(KB 取两位小数)。(b) 若记录数每年增加 25%,计算两年后的记录数目。(c) 说明以 CHAR(60) 与 VARCHAR(60) 储存姓名的分别,以及对储存空间的影响。 | (a) 总容量 = 4,800 × 180 = 864,000 字节 = 843.75 KB。(b) 两年后记录数目 = 4,800 × 1.25 × 1.25 = 7,500 笔。(c) CHAR(60) 固定占 60 字节并以空格补齐,VARCHAR(60) 只占实际字元长度加长度标记,故以 VARCHAR 储存短姓名可节省大量空间,但长度不定会令记录位置浮动。 |
| 2 | STUDENT 表的班别分布为:5A 120 笔、5B 118 笔、5C 122 笔、5D 119 笔。(a) 计算全表记录总数。(b) 计算 5A 班占全表的百分比,取两位小数。(c) 写出可传回 5A 班所有记录的 SQL 语句。 | (a) 总数 = 120 + 118 + 122 + 119 = 479 笔。(b) 5A 占 120 ÷ 479 × 100% = 25.05%。(c) SELECT * FROM STUDENT WHERE class = ‘5A’; |
| 3 | 在 4,800 笔记录的资料表中搜寻一笔记录,循序搜寻平均需比较 (n+1)/2 次,而二元搜寻最多只需 ⌈log2(n+1)⌉ 次。(a) 分别计算两种方法在 n = 4,800 时的比较次数(循序搜寻取一位小数)。(b) 计算两者次数的比率,取一位小数。(c) 说明为何二元搜寻必须先建立索引。 | (a) 循序搜寻 = (4,800 + 1) ÷ 2 = 2,400.5 次;二元搜寻 = ⌈log2(4,801)⌉ = 13 次。(b) 比率 = 2,400.5 ÷ 13 = 184.7 倍。(c) 二元搜寻要先能按键值随机存取已排序的资料,索引提供排序后的键值与记录位址对应,否则资料表只能逐笔扫描而无法跳跃定位。 |
| 4 | 一个未正规化的关联包含 6 个属性,主键由 2 个属性组成,并存在部分相依(非主键属性只依赖主键其中一部分)。(a) 指出此关联违反第几正规形式。(b) 为消除部分相依,最少要把该关联拆成几个资料表?并说明外键数目。(c) 说明未消除部分相依会引致的两项资料异常。 | (a) 违反 2NF(同时未达 3NF):主键为复合键而存在部分相依。(b) 最少拆成 3 个资料表,并须加设 2 个外键把子表连回主表。(c) 插入异常(新增资料必须同时提供无关属性)与更新异常(同一事实重复储存,改一处而漏改另一处即产生不一致)。 |
乙部 正规化、索引与查询效率(第 5–8 题,36 分)
每题 9 分;须引用具体数值或资料表结构作答,并说明推理步骤。
| # | 题目 | 答案与评分要点 |
|---|---|---|
| 5 | STUDENT 表共 4,800 笔记录,其中女生占 60%,而 5A 班女生占全表 15%。(a) 计算女生人数。(b) 计算 5A 班女生人数。(c) 若在 (gender, class) 上建立复合索引,查询“5A 班女生”时扫描笔数由全表降至多少百分比?另计算减幅。 | (a) 女生 = 4,800 × 60% = 2,880 人。(b) 5A 班女生 = 4,800 × 15% = 720 人。(c) 扫描笔数由 4,800 降至 720,即全表的 15.0%,减幅 85.0%。 |
| 6 | 某系统的数据库现有 1,200 笔记录,管理层预计记录数每 18 个月增加一倍。(a) 计算 54 个月后的记录数目。(b) 计算由现在至该时的增长百分比。(c) 说明记录量倍增对查询效能的两项影响。 | (a) 54 ÷ 18 = 3 个倍增期,记录数 = 1,200 × 2^3 = 9,600 笔。(b) 增长 = (9,600 − 1,200) ÷ 1,200 × 100% = 700%。(c) 全表扫描的 I/O 次数随记录数同步上升,索引层数亦增加,令每次查询的磁盘读取与比较次数上升。 |
| 7 | 成绩表 MARKS 有 5 笔记录:62、78、85、91、54。(a) 写出计算平均值与最高分的 SQL 聚合函数语句。(b) 计算总和与平均值。(c) 若要同时按班别分组计算平均分,须加入哪一个子句?另可用什么子句筛选分组结果? | (a) SELECT AVG(score), MAX(score) FROM MARKS;(b) 总和 = 62 + 78 + 85 + 91 + 54 = 370,平均 = 370 ÷ 5 = 74.0,最高分为 91。(c) 须加入 GROUP BY class 子句;可用 HAVING 筛选分组结果。 |
| 8 | 对 1,024 笔记录排序,合并排序约需 n·log2(n) 次比较,气泡排序平均约需 n²/2 次比较。(a) 分别计算两者的比较次数。(b) 计算两者的比率,取一位小数。(c) 说明为何在资料量大时合并排序明显较优。 | (a) 合并排序 = 1,024 × 10 = 10,240 次;气泡排序 = 1,024² ÷ 2 = 524,288 次。(b) 比率 = 524,288 ÷ 10,240 = 51.2 倍。(c) 合并排序时间复杂度为 O(n log n),比较次数随资料量以对数增长;气泡排序为 O(n²),资料量倍增时工作量升四倍,故差距随规模扩大。 |
丙部 系统开发流程、测试与备份管理(第 9–12 题,32 分)
每题 8 分;原因与风险须分点说明,并以本题数据支持结论。
| # | 题目 | 答案与评分要点 |
|---|---|---|
| 9 | 某系统开发专案的时程为:需求分析 15 日、系统设计 20 日、程式实作 40 日、系统测试 25 日。(a) 计算专案总日数。(b) 计算实作阶段占总日数的百分比。(c) 说明为何测试阶段不宜压缩至 5 日以内。 | (a) 总日数 = 15 + 20 + 40 + 25 = 100 日。(b) 实作阶段占 40 ÷ 100 × 100% = 40.0%。(c) 测试需时执行测试个案、记录缺漏、修正后再做回归测试;压缩至 5 日会令缺漏未被发现便上线,后期修复成本远高于前期。 |
| 10 | 系统测试共设计 240 个测试个案,其中 222 个通过。(a) 计算通过率,取一位小数。(b) 计算未通过的个案数目。(c) 指出未通过个案在系统推出前必须完成的两项工作。 | (a) 通过率 = 222 ÷ 240 × 100% = 92.5%。(b) 未通过个案 = 240 − 222 = 18 个。(c) 须修正相关缺漏并重新执行该个案(回归测试),同时由测试人员或使用者签署确认修正结果。 |
| 11 | 验收测试(UAT)在 12.5 千行源代码的系统中找到 36 个缺漏,其中 9 个属严重缺漏。(a) 计算严重缺漏占全部缺漏的百分比。(b) 计算每千行源代码的缺漏密度,取两位小数。(c) 说明缺漏密度可用作哪一项管理判断。 | (a) 严重缺漏占 9 ÷ 36 × 100% = 25.0%。(b) 缺漏密度 = 36 ÷ 12.5 = 2.88 个/千行。(c) 可用以比较不同模组或版本的品质,并决定是否适合推出:密度偏高的模组须加测或重构后才上线。 |
| 12 | 备份策略为每周一次全备份 12.0 GB,其余 6 日每日一次增量备份 1.6 GB。(a) 计算一周的备份总量。(b) 若压缩后体积为原来的 60%,计算压缩后的每周备分量,取两位小数。(c) 说明只保留全备份而取消增量备份的两项风险。 | (a) 每周总量 = 12.0 + 6 × 1.6 = 21.6 GB。(b) 压缩后 = 21.6 × 60% = 12.96 GB。(c) 只做全备份会令备份窗口过长并占用大量储存;资料一旦损坏只能回到上一周的状态,复原点目标(RPO)由一日退化为七日。 |
TutorZone 练习卷|题目与文章为原创,并非任何学校或出版社的教材。


