选课类别:基础 | 教学类型:理论实验课 |
课程类别:研究生课程 | 开课单位:计算机科学与技术系 |
课程层次:硕士 | 学分:3.5 |
本课程系统介绍经典关系数据库系统的体系结构和大数据存储与管理技术。课程主要内容包括两大部分:第一部分为经典数据库系统体系结构,包括数据表示与存储、缓冲区管理、索引、查询处理、事务处理等;第二部分为大数据存储与管理技术,主要以NoSQL/NewSQL数据库为例介绍大数据存储与管理方面的相关概念、理论和技术。教学重点是数据存储、查询处理和大数据管理。本课程包含20学时的实验,要求学生设计和实现DBMS内核的关键部件,如缓冲区管理器、存储管理器、查询处理器等。
金培权老师的《高级数据库系统》被多位同学评价为一门极具学习价值的课程。老师讲课十分认真,PPT制作精美,条理清晰。教学内容不仅包含课程教材内容,还结合自己的科研经验拓展实践案例。上课风格深入浅出,能有效引导学生理解复杂的数据库概念并应用于实际问题。老师对每节课都投入了大量心血,评课中多次提到“老师讲课非常精彩,上他的课是一种享受”。
课程内容详细且复杂,涵盖了关系型数据库系统的多个方面,包括数据存储、索引结构、查询优化、事务处理等。课程也有一定份额涉及NoSQL数据库,并通过具体例子进行分析和讲解,方便学生理解。此外,金老师会定期更新PPT,加入新的教学案例和科研成果,从多角度增强学生的理解。
课程包括6-7次作业和一个实验(缓冲区管理器)。作业内容与课堂教学紧密结合,大多经过精心设计,开放性强,题目涉及较深的思考,符合研究生课程的定位。实验作业在课程结束时提交,内容较具挑战性但可操作,网上有大量参考资源。多个点评提到作业和实验虽然难度较大,但完成后能获得很大收获。
期末考试形式多变,一般为闭卷或半开卷。试卷难度较大,包括选择题、判断题以及复杂的大题,题型开放并且覆盖面广。很多考题直接来自课堂PPT和往年试卷,考查范围包括数据库系统的各个细节。如某同学所言,“考试大题比平时作业题目稍微难一点”。虽然题目涉及面广,但只要认真复习课程内容并做过往年试题,基本能够通过考试。
金老师的给分被多位同学评价为非常“奶”。虽然考试难度较大,但不少学生最终成绩较高,说明平时作业和实验分数占比高,且评分宽松。点评中多次提到期末考试原本预估分较低,但总评出分较好。
《高级数据库系统》是一门内容全面、难度较高但收获极大的课程。金培权老师教学认真负责,无论是授课质量还是课后作业,都表现出极高的学术水平。对于有志于深入学习数据库系统并从事相关研究或工作的同学,这门课无疑是一个不可多得的选择。然而,课程难度较大,且耗时较多,建议非数据库方向的同学慎重选课。如果认真对待课程,最终的成绩和知识收获都不会让你失望。
难度真的好大,趁着还没完干净回忆一下 选择题五题 有两个往年题一个是undo redo 和立即更新,延迟更新的,另一个也是在21年卷上,其他三题也不是特别难,难度还好 判断题十题 都是很细致的点 记得提了lsm tree 的写性能相对于b+树有没有优化 还有2pl加锁保证并发的不脏读 乐观并发机制是不是不阻塞并发所以性能优于悲观 Nosql是不是弱acid 变长数据的存储 可变格式必定变长,固定格式必定定长? … 大题一个基础的查询估计 一个b+树,要画插入,要分析节点内无序是不是对插入有优化,要分析溢出块有没有优化 一个并发控制,包括日志恢复,冲突可串,视图可串,乐观机制时间戳 一个io代价估计,ssd的,可以参考21年那个卷子换成ssd
看了往年的好评选了这门课,emm上完这门课的体验就是:除非真正是为了科研/找工作想学数据库的知识,还是看看其他基础课吧,因为总的来说作为研究生课程我觉得花的精力有点多,而且又(大概率)得不到好的分数。
出分了更新一下 给分还是不错的,考试最后一道20分的题算错了也有85+,应该是捞了的。
温馨提示:这门课的作业和考试均有一定难度和开放性,每次课的信息量很大。但如果能全程认真对待将会有很大收获,特别推荐想学习知识、拓展视野的同学选修。如果只是想水学分的同学请务必谨慎选课!(2021.7.24)
这门课是计算机应用技术专业的基础课,课程内容在上面的课程简介中已经写得很清楚了,使用的教材是《数据库系统实现(第二版)》(但是个人认为这本教材很多地方翻译得不太好,所以如果上课不听的话课下啃教材会比较痛苦)。
金老师讲课非常精彩,上他的课是一种享受。老师的PPT是精心制作的且每年都会更新,思路非常清晰。讲课很生动,会举很多例子,有时候也会结合自己的一些科研项目来讲。就是每节课都会拖堂。
课程考核方式是作业20%+实验20%+期末考试60%(往年中间还会安排一次期中小测,但是今年由于课时比较紧张就取消了这一环节)。其中作业有6-7次,基本上每个主题讲完后会布置一次作业。每一次的作业基本上都是老师精心设计的,和上课内容完美结合,而且留有一定的思考深度(开放性较强),这一点实属难能可贵。实验只有一个,是设计并实现一个缓冲区管理器。今年的期末考试是闭卷(期末的时候老师在群内发了投票,由大家决定考试方式),以往的考试方式有闭卷、半开卷和开卷三种,难度也递增。今年期末考试包括10道判断题和几道大题,判断题覆盖了所有的章节(甚至包括了让课下阅读的关系数据库回顾),考查的知识点比较细,大题和作业类似,有几道题开放性比较强。
这门课的助教也很负责,面对大家在群里提出的各种各样的问题都能耐心解答,最后的习题课也讲得很认真,还有一些拓展,不像某些课程的助教很敷衍。
总之,这门课是我研一体验最佳的两门课之一(另一门课是黄文超老师的“形式语言与计算复杂性”),在计算机学院大部分水课里面可以算得上一股清流了,希望其他课程都能向这两门课看齐。
卷面估分70+,最终拿了85+,说明金老师/助教把平时分(40%)基本拉满了,也或者是卷面给分宽松,所以给分还是很赞的,这也是5星好评的原因,感谢金老师!感谢助教!
但是!不推荐非数据库研究方向的同学选!因为难度很大,课程内容非常多,费了老大劲复习,折磨了个把月,学的东西可能以后再也不会用上,还好这学期其他课复习压力不大,否则真不知道怎么收场了。
不多说了
课程思路清晰友好,作业开放循循善诱
实验深刻受益匪浅,考试博爱关怀学生
请学生们在评论框里随便打几个字,然后打个十分谢谢
每章上完都有作业,从收获来说确实不少,如果本科期间学过数据库相关课程会轻松一点(起码得了解sql语句还有关系代数),老师上课很认真确实是想教会你什么是数据库2333
考试内容的话有选择题,关系代数中间代价估计的计算,死锁检测/判定,磁盘IO计算,平时作业会做过的类似题型,也会考一些小概念的辨析,需要对整个ppt都过一次,起码能知道再说什么,考试的时候能不能想起来随缘2333
都说这门课难(yysy确实毕竟你不能让一门课既水收获又大),这里顺便贴一下期末复习根据金老师提供的提纲,做的部分总结,希望能帮助后来人(顺便一提往年题可以去csdn上找的到
高级数据库期末复习总结.pdf
上课确实好,内容也好,但是这试卷没人吐槽是认真的吗???
出卷之前在群里投票过开卷还是闭卷,据说是因为去年开卷考试难度太大。然后当时老师在群里说的是闭卷就会简单一些,作业题里既有闭卷难度的题目,也有开卷难度的题目。
最后投票结果是闭卷,但是试卷出来之后,难度还是很大,而且还有几道开放题。闭卷考开放题真的合适吗?
建议其它课程有信心能拿较高分的、只是想学习知识的可以选这门课,指望这门课能够拉高基础课平均分风险是太大了。
有助于作业和复习的链接:自行csdn, 知乎, etc.
金老师给分超奶!吹爆!! 本科从未学过数据库,期末自学PPT,总评95+。 作为一门硬核的计算机专业基础课,能学到很多干货,强烈推荐想学点东西的同学选,绝对不亏!
因为研究方向不是数据库,所以收获多少给了一般,但老师和助教真的都超级、无敌负责!
个人感觉如果没去上过课,PPT自己看起来会有点费劲,但如果上课认真听了复习起来很快。作业有些题有点难度,但是哪里思考不出来问助教师兄师姐都会回复!考试和往年题非常像,可以去CSDN自行查找,只要作业认真做了、往年题做了,基本考试问题不大,给分真的超好。最开始大家都说这门课很硬核,心里还满害怕的,但是金老师上课会通过例子的方式解释很多数据库知识,每节课都去了所以学起来感觉还行,而且有一次老师出差线上上课,课间还给大家发过红包hhh总之蛮安利这门课的!
这门课给分还是可以的,就是学起来很累
有6次作业,难度不小,本科学过的可以抄一部分,和课件与考试都有联系,比较适合用于复习,最后会有习题课,还会发习题课ppt(本科都没有来着,当时还是bb系统上用自己电脑录的屏)
有1个实验,可以在github上搜到
卷子闭卷,总体难度貌似没有前辈们说的那么难,不过有些题我感觉给我开卷甚至查电脑都不知道答案
给了个 90- ,如果学分够用的话不太建议选,这是研究生阶段为数不多的硬课
这学期是周日早上上课,对不起老师,我经常起不来,但是老师不点名。
作业有五六次,要写在本子上交。由于我经常没去上课,所以需要自己把ppt看一遍再写作业,通常需要一晚上。
project是祖传的,参考了师兄的。
workload没有评论说的那么多,如果去听课的话作业直接就能写,不听的话先花两小时看ppt,看不懂问gpt。
考试也是看ppt和作业题,花了两天时间。总评4,太奶了,感谢老师!
期末考试的选择和判断题不太好写,但是大题基本都是见过的类型,大题比平时作业题目稍微难一点,认真复习肯定是75+没问题的,我期末考试时选择判断不太确定,大题都写了最后90+。而且相比于本科时候学习的数据库学习下来收获更多,金老师讲课旁征博引,引人入胜,难得的一门好课!
总评90+,老师非常负责,但是最好是从事相关方向的同学学习,因为这个课确实很硬,我卷面估计6.70左右,但是还是给奶了很多。让我受宠若惊。
课程:周日的课,时间不友好,但是不点名,而且其实到课人数还算挺多的(如果没见过习题课坐满人的情况下)
作业:5次作业,需要一些时间完成,需要认真复习PPT后完成。GPT完全不靠谱,本人作业草率看PPT过于依赖GPT基本6~8分(满分10)
实验:是个祖传实验,可github找代码
考试:完全没复习到乐观序列控制(好像是叫这个?),只是靠蒙写满了,大概两题用到这个知识点了,应该错了挺多的
总评:做成这种水平都快90了,感觉给分不错
金培权老师的课是本学期体验最好的一门课,因为能感觉到老师有认真准备课程的内容,PPT做的很简练,没有什么废话,老师上课的时候会根据自己和学生在科研过程中的心得体会向大家进行拓展,考虑到数据库系统(尤其本课程重点讲述的是关系型数据库系统,这种适用于关键业务场景比如银行等)的应用特点,还会讲一些比较现实的例子进行解析(取钱是吧,事务处理讲过很多次)。布置的课程作业据助教说和往年相比相似但有改数(摸摸脑袋,我不知道还有往年作业可以借鉴,作业都是吭哧吭哧自己写,然后向身边学的好一点的同学讨论,每次发现写了但是错一堆hh)
课程难度选中等不是说我本人学的很好,老师在设计课程的时候感觉是相对友好的,没有挖的太深入太晦涩,但我觉得听课还是对学习这门课程有很大帮助吧,我这学期听完整的课不多,这门课因为评课社区有说过比较有挑战性,所以我还是尽可能跟了(说完整也不对,我也溜过hh)
助教评作业相对是宽松的,开放题基本只要不出现原则错误(比如有一次题目问文献查询关键词能不能用B+树来提高查询效率,我写了能,但是文献查询不是精确点查询而是范围查询,查询单词可能出现在TITLE任意位置,B+树支持前缀查询不支持中缀和后缀范围查询,所以这是原则错误),都是可以拿分的,有一道2PL事务证明是可串性调度的证明题,助教习题课说建议要给出一个例子来证明,尽可能不要用一些叙述性的语言完成整个证明,我就是纯叙述但也给分了。
课程主页设置的很清晰,大作业也给了很详细的帮助,因为时间管理不得当hh最后几天考试周磨出来的,我其实不太会写,最后也做的不甚完善(汗流浃背了),从给分来看(85)我觉得和本学期的付出是相匹配的。所以觉得课程体验比较好。
对于知识本身,其实我也不做数据库这一方面,也许以后大概率不会直接应用知识?但感觉学生时代还能上课的时间也不太多了,学习一些经典的知识,了解一些数据库领域做的比较好的设计(对了,老师上课还会偶尔的传递一点科研方面的想法,不仅适用于数据库领域吧)以及认识到一些好的idea可能其实比较简洁优雅,好像也还不错。
每个人有自己的体验,以上。
上课:如果认真听的话收获还是相当多的,尽量坐前排,那么大教室坐后排的话很难听清金老师的讲课;
作业:五次作业每次3题左右,较为开放,有几道与考试重合;
考试:非常开放,每道大题都是一个二分类问题,会就拿到20分,不会就是0分的感觉,选择基本上是往年题;
实验:缓冲区管理器,可以参考代代传,自己写没多难;
给分:非常奶,吹爆,只要上课听过作业认真写过,分数都不会差,总之是非常值得选的一门课!
高级数据库系统延续本科的数据库应用与技术课程,总体上介绍了数据库存储和DBMS中的各个组件与实现原理,课程内容与本科的数据库有将近一半的重合,如果上过本科的数据库上这门课学习应该不会吃力。
实验是祖传的,作业也有一部分是和往年一样,或者和本科时候的作业内容一样,平时上课的压力不大,而且上课没有点名和小测,即使一次不去也没关系。
期末考试总体上难度偏高,有不少题还是往年卷和作业没有出现过的题目,因此会有一种初见杀的感觉,但是本质上还是没有离开PPT的范围,因此把PPT弄明白,把作业和往年卷看懂完全足够了。
总评按作业20%,实验20%,考试60%分配。总评给分很好,目测是捞了一些的。
这门课程对于有志于走开发岗就业的同学应该是非常有用的,数据库(Mysql、Redis等)是做服务后端开发必备的技术栈之一。
课堂:基本没去上过课,不知道讲得是否真如往届说的那么好。ppt内容很顺畅,但是信息量不是很大,有时还缺少关键信息,自学时需要自己想原因。应该没点名/小测。
作业:五次作业,交纸质版。每次大概是三道,通常有1-2道与往年重合,1道新出,有开放性比较大的题。
实验:祖传实验,用c++实现一个buffer管理器(附带简陋的存储管理器),ddl在考试后,总体难度很低,不到一天就能搞定。但是框架中有些迷惑写法,容易误导人,还是建议优化一些。
考试:难度适中,ppt全过一遍不会考得太砸。有大量内容和往年题重合,一定要看往年题。比如典中典的改进版归并排序IO代价分析,往年题+作业+考试,已经出过三次了(但每次都有细节变化,需要注意)。
给分:个人感觉考试做得不错,总评90+,比较满意。但也有同学给分比较糟糕,可能调分力度不大。各位自行判断吧。
总体来说,我并不觉得这门课有一些人说的那么难、那么耗费精力,实际上有60%的内容都与本科数据库有重合,甚至事务并发管理部分几乎没有新知识点。平时分也只是常规的作业+实验,总体量甚至不如csapp,只是能不能全抄的区别。但也不觉得这门课给我带来了很多收获,讲的内容都是数据库系统中比较基础的。所以,我认为这只是一门给分并不破格的常规基础课。
获益匪浅,值得选!
老师PPT准备的很好,讲的很好!个人认为,从PPT和老师讲课的配合程度就足以看出老师是否用心准备。(某些老师是讲课follow ppt,而不是ppt follow讲课思路
不过上课要注意听,PPT比较简洁,纯看PPT可能不太明白;老师课上会扩展一些知识(这些有助于回答作业/考试的开放性问题)~
课程中有作业,但是负担不大;实验是作业buffer manager,老师给的文档非常详细,实验做起来很轻松;最后期末考试,因为疫情原因,老实说会比较简单一点,事实证明确实不难了~
勤勤恳恳做实验和作业,最后90分~
个人感觉这门课的主要内容在于(关系型)数据库的实现技术(如数据存储、索引结构、查询优化),以及一些科普性质的NoSQL内容。
优点是金老师讲课条理清晰、深入浅出,上课体验十分舒服,认真听的话对于SQL的实现技术会有深刻的理解,无论是对于科研还是工作都很实用。此外,有四次小作业,一次大作业(实现buffer系统),一次闭卷期末考,整体课程压力不算大。
缺点是和科大本科数据库课程有一些重合,仍然以SQL为主(甚至不足以称为缺点,只是不加分项)。本人最初选这门课主要是想学一下各种NoSQL的知识,但没想到还是回到关系型数据库上了哈哈哈。
附一个我在期末复习期间总结的知识点提纲:
Part 4 并发控制部分不是很全,特别是视图可串性没有写上去。复习时建议对照PPT一起。
课程难度不大,相当一部分内容在本科的操作系统/组成原理/数据库等课程中或多或少都有接触过。
今年考试是闭卷,允许用计算器。试卷出的还是比较友好的,有不少往年的题目。
只布置了4次作业,实验和往年一样。
这门课内容还是非常实用的,查询优化、连接算法等部分的内容对写性能更好的CURD还是有很大帮助的。
课程聚焦于传统的关系型数据库,扩展的内容基本上点到为止,考试考了点但不多,用用排除法也是能做出来的。
课程收获不错,老师讲的很好,但是如果想搞绩点不推荐
好评的地方:
必须吐槽的地方:
1. 这个课如果没有学过数据库确实学起来比较吃力,虽然上课的时候没有数据库的编程,但作业里面会有这部分的内容,没学过的话刚开始是有些吃力的。但到后面的话其实主要讲的是原理,对以前是否学过要求不高。可能考试会比较吃亏吧,不过研究生也不太关心成绩,学到知识就好了。老师讲课是很优秀的,可以学到很多,助教比较负责任。
2.最后的大作业是做一个数据库的缓冲管理系统,期末前一个月做就好了,每天花一点点时间就做完了。作业文档几乎把整个脉络都告诉你了,不会特别难,最好c++熟一点,就没啥问题。
3. 老师主页 http://staff.ustc.edu.cn/~jpq/
作业好好做了(满分10,基本都是9和10),但是考试一塌糊涂(因为基本没复习),本来以为要寄了,结果总评90+看来还是非常奶的。
挺好的一门课,详细讲述了数据库的实现原理,涉及的知识点很多,能够了解关系型数据库的底层原理,方便背八股(bushi)。实验和实验报告网上都有参考。作业量还行,难度不算大;没有期中。期末考试涉及知识点挺广的,有难度。不过最后给分还是挺不错的,推荐选择。
课程还是挺硬核的,讲的内容非常偏底层。
作业一定要认真过一遍,往年的试卷也要做一遍,会有原题
大作业github上可以搜到
本渣渣平时划划水期末突击了两天,感觉很多都没懂,好在金老师给分很奶,吹爆!!!!