如何动手实现一个关系型数据库系统?
单纯看书其实效果不大,对于数据库的每一个部分,书中讲述了诸多实现方案,如果可以配合Project来做,理解的程度会加深很多,对于书中提到的方法取舍自己心中也会有数,mit就出了一个教你造数据库Project,感觉很爽。
资料:
1. 本书。
2. https://courses.cs.washington.edu/courses/cse444/19sp/ 的Lectures,这是UW关于该课程的ppt,强烈推荐,通俗易懂。
3. https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-830-database-systems-fall-2010/assignments/ 这里的Lab就是教你一步步实现一个简单的关系型数据库系统,不仅要写完代码,而且要对整个系统的方方面面自己要梳理一遍,哪些模块用了书上的哪些方法,这些方法有什么优缺点,以及它的替代方法有哪些,以及优缺点。
4. https://courses.cs.washington.edu/courses/cse444/12sp/ 该链接的homework里也是一样的lab,不过扩展了并行数据库部分,有兴趣的同学可以尝试。
5. https://www.icourse163.org/course/HIT-1001578001 如果喜欢视频的同学可以参考,感觉就是专门对着本书讲的。
建议:这些资料混着看更有效果,例如做Lab1的内容,把上边说的书、ppt、视频对应的内容看看,基本就可以融会贯通了。
本Lab需要背景:
1. 上过数据库基础课程,知道基本的SQL语法,写过一些SQL语句。
2. 上过操作系统,知道进线程、内存、文件、磁盘块等基本概念。
3. 上过Java课,知道基本的Java语法,c++也可以,关键是要有面向对象的概念。
如果没有这些背景,那么做的过程中会比较难受,当然现学也可以,但是如果有这些背景就更好了,学习就是要踏踏实实地来,在良好的基础上学习会比较快,能吸收的也多。