期末复习《数据库系统原理》的时候,我把历年真题(2018/2020/2021)做成了一个网页 RPG——数据库王国。与其对着题库刷题,不如在地图上一章一章打怪通关。

🏰 开始游戏

进度自动保存在浏览器 localStorage,随时关掉随时继续(换浏览器或清缓存会丢档)。

章节与考点对照

章节考点对应期末题型
1 启程村基本概念、三级模式、数据独立性选择题 + 简答题
2 符文平原关系代数 σ π ⋈ ÷查询题 1-3 小题
3 侦探之城SQL 实战(浏览器内真实 SQLite,写查询破案)查询题 4-7 小题(35 分主力)
4 依赖迷宫候选码求解(交互式闭包计算器)、范式、3NF 分解分析题
5 设计工坊E-R 图、联系类型、转换三原则设计题
6 并发竞技场ACID、2PL、可串行化、死锁分析题 + 简答题
7 优化峡谷查询语法树启发式优化优化题(每年必考)
8 恢复神殿故障分类、日志、REDO/UNDO、转储、检查点简答题
9 期末魔王城综合 BOSS 战(通关 6 章解锁)全卷混编

几个亮点机制

  • 怨灵系统:答错的题化作怨灵,连续答对 2 次才能超度;BOSS 战会随机召回你的怨灵。错题不是划掉就完了,它会一直缠着你,直到你真的会了。
  • 掌握度雷达:按各章答题正确率绘制,考前哪块凹陷补哪块。
  • 真实的 SQL 判定:第 3 章基于 sql.js(SQLite 编译到 JS),你写的查询在浏览器里真实执行,与参考答案按结果集比对——与写法无关,殊途同归即算对。

技术上

纯静态零依赖:原生 HTML/CSS/JS,无构建步骤,整个游戏 1.6MB。为了能直接双击 index.html 离线玩,sql.js 用的是 asm.js 版本而不是 wasm(file:// 协议下 wasm 加载会受限)。

祝各位无痛拿下数据库系统原理🎓