| 选课类别:基础 | 教学类型:理论实验课 |
| 课程类别:研究生课程 | 开课单位:计算机科学与技术系 |
| 课程层次:硕士 | 学分:3.5 |
本课程系统介绍经典关系数据库系统的体系结构和大数据存储与管理技术。课程主要内容包括两大部分:第一部分为经典数据库系统体系结构,包括数据表示与存储、缓冲区管理、索引、查询处理、事务处理等;第二部分为大数据存储与管理技术,主要以NoSQL/NewSQL数据库为例介绍大数据存储与管理方面的相关概念、理论和技术。教学重点是数据存储、查询处理和大数据管理。本课程包含20学时的实验,要求学生设计和实现DBMS内核的关键部件,如缓冲区管理器、存储管理器、查询处理器等。
金培权老师的《高级数据库系统》课程广受学生好评,主要因为其教学水平高,PPT制作精良且内容详实,能够有效帮助学生理解复杂的数据库概念。老师的讲解深入浅出,结合实际应用和科研拓展,使得上课体验“十分舒服”。此外,老师还经常分享业界前沿知识和科研经验,尤其适合有志于数据库研究的学生。
课程内容涵盖数据库底层实现原理,包括数据存储、索引结构、查询优化等,重点在于关系型数据库的实现。即便对NoSQL有所涉及,主要仍是SQL相关内容。部分学生觉得课程难度较大且内容庞杂,尤其对于没有本科数据库基础的学生而言。
课程有5-6次作业和一个大实验,作业开放性强,与考试内容联系紧密,助教提供详细答疑和习题讲解。实验涉及实现一个数据库缓冲区管理系统,指导文档详尽,可在GitHub获取参考。总体而言,作业和实验帮助理解课程内容且难度适中,但仍需认真对待。
期末考试难度较大,题目多来自于课程PPT和作业,但考题开放且灵活,包括选择题、判断题和大题,涉及细节辨析和应用思考。虽然考试内容广泛且有一定难度,但学生普遍认为给分“超级好”,卷面分和总评分之差调节较大,有些同学即便考试做得不理想,最终还是获得不错的总评。
《高级数据库系统》课程被多数学生视为研一体验最佳的课程之一,然而因为内容深度和工作量较大,建议对数据库方向有兴趣或相关背景的学生选修。对于学习态度认真的学生而言,课程“收获很大”,但非相关方向的学生可能感到课程负担较重。给分政策的宽松使学生尽可以放心选修,期末成绩不必过于担心。
难度真的好大,趁着还没完干净回忆一下 选择题五题 有两个往年题一个是undo redo 和立即更新,延迟更新的,另一个也是在21年卷上,其他三题也不是特别难,难度还好 判断题十题 都是很细致的点 记得提了lsm tree 的写性能相对于b+树有没有优化 还有2pl加锁保证并发的不脏读 乐观并发机制是不是不阻塞并发所以性能优于悲观 Nosql是不是弱acid 变长数据的存储 可变格式必定变长,固定格式必定定长? … 大题一个基础的查询估计 一个b+树,要画插入,要分析节点内无序是不是对插入有优化,要分析溢出块有没有优化 一个并发控制,包括日志恢复,冲突可串,视图可串,乐观机制时间戳 一个io代价估计,ssd的,可以参考21年那个卷子换成ssd
看了往年的好评选了这门课,emm上完这门课的体验就是:除非真正是为了科研/找工作想学数据库的知识,还是看看其他基础课吧,因为总的来说作为研究生课程我觉得花的精力有点多,而且又(大概率)得不到好的分数。
出分了更新一下 给分还是不错的,考试最后一道20分的题算错了也有85+,应该是捞了的。
卷面估分70+,最终拿了85+,说明金老师/助教把平时分(40%)基本拉满了,也或者是卷面给分宽松,所以给分还是很赞的,这也是5星好评的原因,感谢金老师!感谢助教!
但是!不推荐非数据库研究方向的同学选!因为难度很大,课程内容非常多,费了老大劲复习,折磨了个把月,学的东西可能以后再也不会用上,还好这学期其他课复习压力不大,否则真不知道怎么收场了。
金培权老师的课是本学期体验最好的一门课,因为能感觉到老师有认真准备课程的内容,PPT做的很简练,没有什么废话,老师上课的时候会根据自己和学生在科研过程中的心得体会向大家进行拓展,考虑到数据库系统(尤其本课程重点讲述的是关系型数据库系统,这种适用于关键业务场景比如银行等)的应用特点,还会讲一些比较现实的例子进行解析(取钱是吧,事务处理讲过很多次)。布置的课程作业据助教说和往年相比相似但有改数(摸摸脑袋,我不知道还有往年作业可以借鉴,作业都是吭哧吭哧自己写,然后向身边学的好一点的同学讨论,每次发现写了但是错一堆hh)
课程难度选中等不是说我本人学的很好,老师在设计课程的时候感觉是相对友好的,没有挖的太深入太晦涩,但我觉得听课还是对学习这门课程有很大帮助吧,我这学期听完整的课不多,这门课因为评课社区有说过比较有挑战性,所以我还是尽可能跟了(说完整也不对,我也溜过hh)
助教评作业相对是宽松的,开放题基本只要不出现原则错误(比如有一次题目问文献查询关键词能不能用B+树来提高查询效率,我写了能,但是文献查询不是精确点查询而是范围查询,查询单词可能出现在TITLE任意位置,B+树支持前缀查询不支持中缀和后缀范围查询,所以这是原则错误),都是可以拿分的,有一道2PL事务证明是可串性调度的证明题,助教习题课说建议要给出一个例子来证明,尽可能不要用一些叙述性的语言完成整个证明,我就是纯叙述但也给分了。
课程主页设置的很清晰,大作业也给了很详细的帮助,因为时间管理不得当hh最后几天考试周磨出来的,我其实不太会写,最后也做的不甚完善(汗流浃背了),从给分来看(85)我觉得和本学期的付出是相匹配的。所以觉得课程体验比较好。
对于知识本身,其实我也不做数据库这一方面,也许以后大概率不会直接应用知识?但感觉学生时代还能上课的时间也不太多了,学习一些经典的知识,了解一些数据库领域做的比较好的设计(对了,老师上课还会偶尔的传递一点科研方面的想法,不仅适用于数据库领域吧)以及认识到一些好的idea可能其实比较简洁优雅,好像也还不错。
每个人有自己的体验,以上。
金老师给分超奶!吹爆!! 本科从未学过数据库,期末自学PPT,总评95+。 作为一门硬核的计算机专业基础课,能学到很多干货,强烈推荐想学点东西的同学选,绝对不亏!
因为研究方向不是数据库,所以收获多少给了一般,但老师和助教真的都超级、无敌负责!
个人感觉如果没去上过课,PPT自己看起来会有点费劲,但如果上课认真听了复习起来很快。作业有些题有点难度,但是哪里思考不出来问助教师兄师姐都会回复!考试和往年题非常像,可以去CSDN自行查找,只要作业认真做了、往年题做了,基本考试问题不大,给分真的超好。最开始大家都说这门课很硬核,心里还满害怕的,但是金老师上课会通过例子的方式解释很多数据库知识,每节课都去了所以学起来感觉还行,而且有一次老师出差线上上课,课间还给大家发过红包hhh总之蛮安利这门课的!
这学期是周日早上上课,对不起老师,我经常起不来,但是老师不点名。
作业有五六次,要写在本子上交。由于我经常没去上课,所以需要自己把ppt看一遍再写作业,通常需要一晚上。
project是祖传的,参考了师兄的。
workload没有评论说的那么多,如果去听课的话作业直接就能写,不听的话先花两小时看ppt,看不懂问gpt。
考试也是看ppt和作业题,花了两天时间。总评4,太奶了,感谢老师!
期末考试的选择和判断题不太好写,但是大题基本都是见过的类型,大题比平时作业题目稍微难一点,认真复习肯定是75+没问题的,我期末考试时选择判断不太确定,大题都写了最后90+。而且相比于本科时候学习的数据库学习下来收获更多,金老师讲课旁征博引,引人入胜,难得的一门好课!
总评90+,老师非常负责,但是最好是从事相关方向的同学学习,因为这个课确实很硬,我卷面估计6.70左右,但是还是给奶了很多。让我受宠若惊。
课程:周日的课,时间不友好,但是不点名,而且其实到课人数还算挺多的(如果没见过习题课坐满人的情况下)
作业:5次作业,需要一些时间完成,需要认真复习PPT后完成。GPT完全不靠谱,本人作业草率看PPT过于依赖GPT基本6~8分(满分10)
实验:是个祖传实验,可github找代码
考试:完全没复习到乐观序列控制(好像是叫这个?),只是靠蒙写满了,大概两题用到这个知识点了,应该错了挺多的
总评:做成这种水平都快90了,感觉给分不错
上课:如果认真听的话收获还是相当多的,尽量坐前排,那么大教室坐后排的话很难听清金老师的讲课;
作业:五次作业每次3题左右,较为开放,有几道与考试重合;
考试:非常开放,每道大题都是一个二分类问题,会就拿到20分,不会就是0分的感觉,选择基本上是往年题;
实验:缓冲区管理器,可以参考代代传,自己写没多难;
给分:非常奶,吹爆,只要上课听过作业认真写过,分数都不会差,总之是非常值得选的一门课!
高级数据库系统延续本科的数据库应用与技术课程,总体上介绍了数据库存储和DBMS中的各个组件与实现原理,课程内容与本科的数据库有将近一半的重合,如果上过本科的数据库上这门课学习应该不会吃力。
实验是祖传的,作业也有一部分是和往年一样,或者和本科时候的作业内容一样,平时上课的压力不大,而且上课没有点名和小测,即使一次不去也没关系。
期末考试总体上难度偏高,有不少题还是往年卷和作业没有出现过的题目,因此会有一种初见杀的感觉,但是本质上还是没有离开PPT的范围,因此把PPT弄明白,把作业和往年卷看懂完全足够了。
总评按作业20%,实验20%,考试60%分配。总评给分很好,目测是捞了一些的。
这门课程对于有志于走开发岗就业的同学应该是非常有用的,数据库(Mysql、Redis等)是做服务后端开发必备的技术栈之一。
课堂:基本没去上过课,不知道讲得是否真如往届说的那么好。ppt内容很顺畅,但是信息量不是很大,有时还缺少关键信息,自学时需要自己想原因。应该没点名/小测。
作业:五次作业,交纸质版。每次大概是三道,通常有1-2道与往年重合,1道新出,有开放性比较大的题。
实验:祖传实验,用c++实现一个buffer管理器(附带简陋的存储管理器),ddl在考试后,总体难度很低,不到一天就能搞定。但是框架中有些迷惑写法,容易误导人,还是建议优化一些。
考试:难度适中,ppt全过一遍不会考得太砸。有大量内容和往年题重合,一定要看往年题。比如典中典的改进版归并排序IO代价分析,往年题+作业+考试,已经出过三次了(但每次都有细节变化,需要注意)。
给分:个人感觉考试做得不错,总评90+,比较满意。但也有同学给分比较糟糕,可能调分力度不大。各位自行判断吧。
总体来说,我并不觉得这门课有一些人说的那么难、那么耗费精力,实际上有60%的内容都与本科数据库有重合,甚至事务并发管理部分几乎没有新知识点。平时分也只是常规的作业+实验,总体量甚至不如csapp,只是能不能全抄的区别。但也不觉得这门课给我带来了很多收获,讲的内容都是数据库系统中比较基础的。所以,我认为这只是一门给分并不破格的常规基础课。
作业好好做了(满分10,基本都是9和10),但是考试一塌糊涂(因为基本没复习),本来以为要寄了,结果总评90+看来还是非常奶的。