ZhangJiaQiao / 2019-DBMS-Project

This is the programmin project of DBMS course in 2019
19 stars 26 forks source link

2019-DBMS-Project

This is the programming project of DBMS course in 2019

课程设计说明

此次课程设计分两部分,第一次作业为前期工作与论文阅读,第二次为课程设计代码编程。课程设计以小组为单位,共同完成此次课程设计。

注意事项

  1. 各小组请自行建立属于小组的Github仓库,所有作业小组成员通过Github协作完成(请自学Git相关操作)。
  2. 小组个人评分时只会只会看Github的贡献量,请小组自行平均分工。
  3. Github地址对其他小组保密,避免被抄袭。仓库名字可设置为自己的小组名等(避免被查找并被剽窃)。
  4. 作业要求如有问题或异议,请大胆私聊TA,让大家的课程设计可以顺利进行。
  5. 各小组切忌参考别人的代码和答案,高度雷同的小组都按抄袭处理

前期工作与论文阅读总结

这次作业主要做部分前期工作和论文的阅读,为后面的课程设计编程部分做准备。请小组分工完成实验和问题解答,按照模板填写答案和实验结果。
文档使用Markdown编写,不会的请自行学习。完成后将markdown转pdf,提交pdf。


FPTreeDB编程实现

概括

在进行NVM相关实验和FPTree论文的阅读后,想必大家对FPTree以及NVM编程已经有一个初步的了解。其实直接看FPTree的结构与普通B+tree是差不多的,存放在DRAM的中间节点的管理方式与普通B+tree一样,所以树的很多操作使用课本介绍的伪代码进行即可。FPTree的编程实现作业详情请看作业文件夹中的README

课程设计的好处

成功完成此次课程设计编程作业的好处是不少的,希望大家认真对待。TA算是将自己所研究的大部分知识教会你们(TA算鸭大中等水平学生),希望借此能助于大家未来的学业和工作。

好处:

  1. 学习makefile,GoogleTest等工程开发工具的使用,有助于你们后续的项目开发(至少简单知道开发所需要的一些基本步骤)。
  2. 了解NVM编程这一前沿研究,为你们提供相关学习经历,有助于升学或者工作面试。
  3. FPTree和课上所学的B+tree很像,有助于你们更加深入了解B+tree。
  4. 通过已有的代码框架实现一个可用的键值存储系统,基本了解数据库系统开发的工作。
  5. 作为在校期间一次不错的研究经历,未来实习面试可以写入简历(项目大佬就另说,对没有机会碰触项目的同学是非常好的,至少可以跟别人说自己实现了一个键值存储系统)。