UniMate AI

COMP9315

数据库系统实现

6 学分难度 超难

课程定位 COMP9315 是 UNSW 计算机硕士专业在‘系统底层研发’维度的终极硬核课。它解决了开发者从‘数据库使用者’到‘数据库架构师’的本质跨越:当你在 SQL 中敲下 SELECT 时,数据库内核在磁盘和内存中究竟发生了什么?如何设计一个能支撑高并发读写的存储引擎?它是通往顶级大厂数据库研发组、内核驱动开发、及资深后端架构师岗位的‘黑带’级通行证。它将底层的 C 语言、物理存储结构、缓冲区管理与复杂的索引算法深度整合,是培养‘具备内核级掌控力开发者’的必修课。 技术栈与学习内容 课程以 C 语言为核心语言,深度解构关系数据库的内核。学习内容涵盖:物理存储模型(堆文件、哈希文件、索引文件)、缓冲区管理 (Buffer Management) 策略、查询执行引擎、最为核心的‘关系运算实现算法(连接 Join 算法、排序算法)’。此外,课程重点研究了查询优化器的代价估算模型、事务恢复 (Recovery) 机制以及 B+ 树与线性哈希索引的底层实现。学生将直接修改或扩展 PostgreSQL 的源代码逻辑。课程强调‘IO 开销的极致优化与内存管理的严密性’。 课程结构 10 周理论高强度输出与两个极具挑战的底层 C 编程项目结合。评估体系以‘地狱级’著称:包含每周的‘内核模拟’Lab、两个要求手写高效索引或查询算子的 Major Assignment(通常涉及实现一个自定义的存储访问方法并嵌入 PostgreSQL 环境)、以及一场强调 IO 代价推演、缓存置换算法证明与索引复杂度分析能力的期末综合大考。该课极其强调‘手敲高性能系统代码’的能力。 适合人群 计算机硕士大三/大四、或打算从事数据库内核开发的理工科生。必须具备极其扎实的 C 语言功底(COMP1521/9024)。如果你想在面试中谈论‘如何利用外部排序优化 TB 级 Join’、或者渴望在未来的云数据库时代建立底层主权,这门课是你的神功。建议每周投入 30 小时以上进行‘指针与 IO’的深度死磕。

Course decision

选课先看

先看考核重心、截止节奏和入门要求,再决定这门课是否适合你的学期安排。

考核总权重

100%

3 项考核

最高单项

45%

Final Professional Examination

期末考试

以官方 outline 为准

Hurdle

1 项

需要单独满足

Deadline map

考核时间线

按截止周排列作业节点;持续考核会保留在下方完整考核结构中。

Week 6

Lab Practical Exercises

20%

涵盖每章 IO 代价手算与内核逻辑模拟的现场任务,强调对底层物理行为的理解。

Week 10

DBMS Internal Assignments

35%

两个高难度的 C 项目,要求在 PostgreSQL 环境下实现高性能的自定义索引或查询操作符。

Week 11

Final Professional Examination

45%

全面考察 IO 代价推演、索引算法证明及查询优化路径判定能力的深度笔试。

Syllabus

每周大纲

默认只展示每周独有的知识重点;节奏、考核、Tutorial 和避坑信息按需展开。

  1. 1

    数据库内核架构导论

    DBMS 层次结构,物理层与逻辑层的解耦,PostgreSQL 源码预览。

  2. 2

    物理存储与文件组织

    页 (Page) 与块 (Block) 布局,槽位管理 (Slotted Pages),变长记录处理逻辑。

  3. 3

    缓冲区管理 (Buffer Management)

    LRU, Clock 等置换算法推演,固定策略,处理页读写冲突 (Latching)。

  4. 4

    物理索引技术 (1):B+ 树

    多层索引结构,插入与合并算法,磁盘 IO 深度分析,处理并发访问。

  5. 5

    物理索引技术 (2):线性哈希

    动态哈希扩张逻辑,溢出页处理,索引查找与更新的时间复杂度证明。

  6. 6

    灵活性周 (Flex Week)

    复习 IO 代价模型,冲刺第一个 PostgreSQL 扩展项目(如手写存储过程),练习 GDB 调试。

  7. 7

    查询处理与连接算法

    嵌套循环 Join,排序合并 Join,哈希 Join,外部排序算法的 IO 开销分析。

  8. 8

    查询优化理论进阶

    代数等价变换,选择率估计,直方图应用,动态规划在多表连接路径中的搜索。

  9. 9

    并发控制与锁机制实现

    多版本并发控制 (MVCC),事务管理器内部状态,死锁检测的拓扑算法。

  10. 10

    日志与故障恢复

    预写式日志 (WAL) 原理,ARIES 恢复算法,全学期内核逻辑大复盘;迎接 Final。

Assessment

考核结构

DBMS Internal Assignments

两个高难度的 C 项目,要求在 PostgreSQL 环境下实现高性能的自定义索引或查询操作符。

35%

Week 10

Lab Practical Exercises

涵盖每章 IO 代价手算与内核逻辑模拟的现场任务,强调对底层物理行为的理解。

20%

Week 6

Final Professional ExaminationHurdle

全面考察 IO 代价推演、索引算法证明及查询优化路径判定能力的深度笔试。

45%

Week 11

From Seniors

学长留下的

基础信息谁都查得到,真正值钱的是过来人的经验。

学姐说

比你早一年的学长留下的真实经验 —— ChatGPT 给不了。

这门课还没有学长经验,你可以是第一个 —— 注册后在课内分享。

往年考点 / 踩坑

这门课暂无往年考点记录。

毕业生去向(整体)

下面是匠人学院毕业生整体去过的公司分布(来自脱敏校友证言)。这是全平台的总体去向,不代表选这门课的人一定去这些公司。

统计自 317 份脱敏校友证言

Deloitte

6 位校友

岗位:Graduate Program · Graduate Consulting · Platform Engineer · Web developer · Platform engineer

Zerologix

4 位校友

岗位:Frontend Dev · junior frontend developer · Front-end Developer · Full Stack Developer

Servian

4 位校友

岗位:Full-stack Developer · Data Engineer · Consultant

关于这块数据,我们说实话

雇主墙来自脱敏毕业生证言(testimonials)的整体分布,无法关联到具体学员或其所选课程;仅作为毕业生去向的总体社会证明展示。

我们没有"某位学长选了这门课、后来进了哪家公司"这种可查询的个人去向档案 —— 校友证言是脱敏的,无法关联到具体的人或他选过的课。所以这里只给整体分布,不给个人路径,不编。