选课类别:基础 | 教学类型:理论实验课 |
课程类别:研究生课程 | 开课单位:计算机科学与技术系 |
课程层次:硕士 | 学分:3.5 |
本课程系统介绍经典关系数据库系统的体系结构和大数据存储与管理技术。课程主要内容包括两大部分:第一部分为经典数据库系统体系结构,包括数据表示与存储、缓冲区管理、索引、查询处理、事务处理等;第二部分为大数据存储与管理技术,主要以NoSQL/NewSQL数据库为例介绍大数据存储与管理方面的相关概念、理论和技术。教学重点是数据存储、查询处理和大数据管理。本课程包含20学时的实验,要求学生设计和实现DBMS内核的关键部件,如缓冲区管理器、存储管理器、查询处理器等。
《高级数据库系统》由金培权老师授课,课程内容详实,重点在于关系型数据库系统的实现技术,如数据存储、索引结构、查询优化等。金老师上课风趣幽默,条理清晰,会结合实际案例和前沿科研进行拓展讲解,具有较高的教学水平。尽管课程对未学过数据库的同学略显艰深,但对于旨在深耕数据库领域的同学而言,是极具价值的选择。
课程有大约五次作业和一个实验。作业难度较高,具有一定开放性,需结合PPT和课程内容认真对待,助教评分相对宽松。大实验相对固定,要求实现一个缓冲区管理器,多年来内容变化不大,可以通过查阅往年代码和文档进行参考。
考试题型多样,包括选择题、判断题、以及开放性较强的大题,难度不小,但往年试卷和作业内容对备考有帮助。金老师会根据学生的整体表现进行人为调整,因此课程给分极其慷慨,很多学生表示自己的卷面成绩低于预期,而最终总评分数高于预期。尽管如此,未必适用于所有专业背景的学生,特别是有意通过这门课拉高平均分的学生,需要认真考虑。
课程难度较大,不适合仅为水学分或非相关研究方向的同学。若对数据库系统有深入了解需求,或是数据处理岗位的必要要求,这门课无疑是值得选择的。总之,《高级数据库系统》课程虽要投入相应精力,但所得回报在知识深度与广度上均十分可观,是一门收获丰富的课程。
先不说别的,课程群里面大家一起拼好卷也太抽象了,到底是谁在49块钱兜售往年试卷😓
给分好。突击了一天一夜,考试判断题全打勾、两大题不会写总评都有八十几。
难度真的好大,趁着还没完干净回忆一下 选择题五题 有两个往年题一个是undo redo 和立即更新,延迟更新的,另一个也是在21年卷上,其他三题也不是特别难,难度还好 判断题十题 都是很细致的点 记得提了lsm tree 的写性能相对于b+树有没有优化 还有2pl加锁保证并发的不脏读 乐观并发机制是不是不阻塞并发所以性能优于悲观 Nosql是不是弱acid 变长数据的存储 可变格式必定变长,固定格式必定定长? … 大题一个基础的查询估计 一个b+树,要画插入,要分析节点内无序是不是对插入有优化,要分析溢出块有没有优化 一个并发控制,包括日志恢复,冲突可串,视图可串,乐观机制时间戳 一个io代价估计,ssd的,可以参考21年那个卷子换成ssd
先给个十分,等成绩吧,到时候按照成绩给评课社区改分。
反正感觉卷子没有任何检查的意义,对于不是数据库方向的同学,难度实在是有点大、
手动分割线
更新一下,金老师我的超人,绝对的十分好课!!!虽然课程很难!但是给分真的好啊!
爱你爱你爱你爱你金老师!!!
每章上完都有作业,从收获来说确实不少,如果本科期间学过数据库相关课程会轻松一点(起码得了解sql语句还有关系代数),老师上课很认真确实是想教会你什么是数据库2333
考试内容的话有选择题,关系代数中间代价估计的计算,死锁检测/判定,磁盘IO计算,平时作业会做过的类似题型,也会考一些小概念的辨析,需要对整个ppt都过一次,起码能知道再说什么,考试的时候能不能想起来随缘2333
都说这门课难(yysy确实毕竟你不能让一门课既水收获又大),这里顺便贴一下期末复习根据金老师提供的提纲,做的部分总结,希望能帮助后来人(顺便一提往年题可以去csdn上找的到
高级数据库期末复习总结.pdf
给满分是因为这门课程和授课老师本身都没有任何问题,但是它绝不适合所有人,至少完全不适合我。
以下内容是考前预习时发的牢骚:
这学期选这门课实在是失败,倒不是说课怎么样,老师怎么样,只是这门课学习的内容对我来说过于困难以及无用。课程硬核,任务量大,所以在此劝退,如果不是研究方向和这门课有相关性,真的真的不要选,真的真的很痛苦。欸,希望期末考试能过。
考完了,我就想知道判断题全选错能得几多分
出分了,80,感谢老师,感谢助教,同时劝退想选这门课的同学
缺点:
作业五次,GPT 生成不完全可靠,得自学PPT搞懂规则那种
期末试卷别出心裁,很有创新精神(复习不如多打两把瓦)
优点:
大实验一成不变,有参考
无签到
非常精彩的授课,全程逻辑清晰,干货多还会结合目前最前沿的产品进行分享,目前还没作业,就课程本身而言值得满分
考完更新
感觉考的很灵活,复习时不能只按照作业题复习,不够用!PPT需要深入理解才能做好这些题,复习题比较少,确实比较麻烦
看了往年的好评选了这门课,emm上完这门课的体验就是:除非真正是为了科研/找工作想学数据库的知识,还是看看其他基础课吧,因为总的来说作为研究生课程我觉得花的精力有点多,而且又(大概率)得不到好的分数。
出分了更新一下 给分还是不错的,考试最后一道20分的题算错了也有85+,应该是捞了的。
不多说了
课程思路清晰友好,作业开放循循善诱
实验深刻受益匪浅,考试博爱关怀学生
请学生们在评论框里随便打几个字,然后打个十分谢谢
温馨提示:这门课的作业和考试均有一定难度和开放性,每次课的信息量很大。但如果能全程认真对待将会有很大收获,特别推荐想学习知识、拓展视野的同学选修。如果只是想水学分的同学请务必谨慎选课!(2021.7.24)
这门课是计算机应用技术专业的基础课,课程内容在上面的课程简介中已经写得很清楚了,使用的教材是《数据库系统实现(第二版)》(但是个人认为这本教材很多地方翻译得不太好,所以如果上课不听的话课下啃教材会比较痛苦)。
金老师讲课非常精彩,上他的课是一种享受。老师的PPT是精心制作的且每年都会更新,思路非常清晰。讲课很生动,会举很多例子,有时候也会结合自己的一些科研项目来讲。就是每节课都会拖堂。
课程考核方式是作业20%+实验20%+期末考试60%(往年中间还会安排一次期中小测,但是今年由于课时比较紧张就取消了这一环节)。其中作业有6-7次,基本上每个主题讲完后会布置一次作业。每一次的作业基本上都是老师精心设计的,和上课内容完美结合,而且留有一定的思考深度(开放性较强),这一点实属难能可贵。实验只有一个,是设计并实现一个缓冲区管理器。今年的期末考试是闭卷(期末的时候老师在群内发了投票,由大家决定考试方式),以往的考试方式有闭卷、半开卷和开卷三种,难度也递增。今年期末考试包括10道判断题和几道大题,判断题覆盖了所有的章节(甚至包括了让课下阅读的关系数据库回顾),考查的知识点比较细,大题和作业类似,有几道题开放性比较强。
这门课的助教也很负责,面对大家在群里提出的各种各样的问题都能耐心解答,最后的习题课也讲得很认真,还有一些拓展,不像某些课程的助教很敷衍。
总之,这门课是我研一体验最佳的两门课之一(另一门课是黄文超老师的“形式语言与计算复杂性”),在计算机学院大部分水课里面可以算得上一股清流了,希望其他课程都能向这两门课看齐。
十分好课,听了宿舍里研三学长的推荐学了这门课,虽然说未来工作可能用到数据库的机会很少,但是这门课真的可以学到很多体系结构相关的知识。
课程难度:比较难,期末复习真的很费精力和时间,而且金老师的PPT有那么点防自学机制,有些PPT上课不听,后面去看根本看不懂,建议结合https://dbgroup.cs.tsinghua.edu.cn/ligl/courses_cn.html清华大学PPT食用,在这里实名感谢,考试前一晚,我的小伙伴们弄的研讨班,收获很多,我爱你们!!!,社区其他评论也有总结很棒的知识,对我帮助很大,也谢谢你们。
作业情况:共有五次左右,需要花些时间,一般情况下每个大章节结束会布置。最后一节课会进行五次作业的答疑,助教水平很高,讲得也很好。还有一个大作业,设计一个数据库管理系统的缓冲区替换策略模块,这个要好好做,实验报告需要好好写,ddl在考试之后。
给分:很不错,身边朋友大部分是90+,不过需要认认真真复习,大作业用心去写,大作业可以借鉴但是不能一点不改。
收获:学到了很多知识,虽然未来可能用到的不多,谁知道呢,你走的每一步都算数!
课堂讲述情况:金老师风趣幽默,博学健谈,会讲特别多业界前沿知识。不过第一天上课就提到希望本科学过数据库的同学选这门课,没学过的劝退,跨考劝退。某个人就轻轻的碎掉了~~~。
给分超好,感谢金老师!!!!!!
卷面估分70+,最终拿了85+,说明金老师/助教把平时分(40%)基本拉满了,也或者是卷面给分宽松,所以给分还是很赞的,这也是5星好评的原因,感谢金老师!感谢助教!
但是!不推荐非数据库研究方向的同学选!因为难度很大,课程内容非常多,费了老大劲复习,折磨了个把月,学的东西可能以后再也不会用上,还好这学期其他课复习压力不大,否则真不知道怎么收场了。
上课确实好,内容也好,但是这试卷没人吐槽是认真的吗???
出卷之前在群里投票过开卷还是闭卷,据说是因为去年开卷考试难度太大。然后当时老师在群里说的是闭卷就会简单一些,作业题里既有闭卷难度的题目,也有开卷难度的题目。
最后投票结果是闭卷,但是试卷出来之后,难度还是很大,而且还有几道开放题。闭卷考开放题真的合适吗?
建议其它课程有信心能拿较高分的、只是想学习知识的可以选这门课,指望这门课能够拉高基础课平均分风险是太大了。
有助于作业和复习的链接:自行csdn, 知乎, etc.
2.20出分,总评4.
金老师讲课会拓展好多课外知识,听完后收获很大。建议选课!!
课还挺难的,但是金老师讲得真的很好,ppt和讲课都很认真,群里也会亲自答疑。
考试的大题基本上和作业类似,选择判断很难很细,过了好几遍ppt还是有好多不确定。
但给分真的超级好!!金老师人好好!!爱你爱你爱你爱你爱你!!!
金培权老师的课是本学期体验最好的一门课,因为能感觉到老师有认真准备课程的内容,PPT做的很简练,没有什么废话,老师上课的时候会根据自己和学生在科研过程中的心得体会向大家进行拓展,考虑到数据库系统(尤其本课程重点讲述的是关系型数据库系统,这种适用于关键业务场景比如银行等)的应用特点,还会讲一些比较现实的例子进行解析(取钱是吧,事务处理讲过很多次)。布置的课程作业据助教说和往年相比相似但有改数(摸摸脑袋,我不知道还有往年作业可以借鉴,作业都是吭哧吭哧自己写,然后向身边学的好一点的同学讨论,每次发现写了但是错一堆hh)
课程难度选中等不是说我本人学的很好,老师在设计课程的时候感觉是相对友好的,没有挖的太深入太晦涩,但我觉得听课还是对学习这门课程有很大帮助吧,我这学期听完整的课不多,这门课因为评课社区有说过比较有挑战性,所以我还是尽可能跟了(说完整也不对,我也溜过hh)
助教评作业相对是宽松的,开放题基本只要不出现原则错误(比如有一次题目问文献查询关键词能不能用B+树来提高查询效率,我写了能,但是文献查询不是精确点查询而是范围查询,查询单词可能出现在TITLE任意位置,B+树支持前缀查询不支持中缀和后缀范围查询,所以这是原则错误),都是可以拿分的,有一道2PL事务证明是可串性调度的证明题,助教习题课说建议要给出一个例子来证明,尽可能不要用一些叙述性的语言完成整个证明,我就是纯叙述但也给分了。
课程主页设置的很清晰,大作业也给了很详细的帮助,因为时间管理不得当hh最后几天考试周磨出来的,我其实不太会写,最后也做的不甚完善(汗流浃背了),从给分来看(85)我觉得和本学期的付出是相匹配的。所以觉得课程体验比较好。
对于知识本身,其实我也不做数据库这一方面,也许以后大概率不会直接应用知识?但感觉学生时代还能上课的时间也不太多了,学习一些经典的知识,了解一些数据库领域做的比较好的设计(对了,老师上课还会偶尔的传递一点科研方面的想法,不仅适用于数据库领域吧)以及认识到一些好的idea可能其实比较简洁优雅,好像也还不错。
每个人有自己的体验,以上。
金老师给分超奶!吹爆!! 本科从未学过数据库,期末自学PPT,总评95+。 作为一门硬核的计算机专业基础课,能学到很多干货,强烈推荐想学点东西的同学选,绝对不亏!
因为研究方向不是数据库,所以收获多少给了一般,但老师和助教真的都超级、无敌负责!
个人感觉如果没去上过课,PPT自己看起来会有点费劲,但如果上课认真听了复习起来很快。作业有些题有点难度,但是哪里思考不出来问助教师兄师姐都会回复!考试和往年题非常像,可以去CSDN自行查找,只要作业认真做了、往年题做了,基本考试问题不大,给分真的超好。最开始大家都说这门课很硬核,心里还满害怕的,但是金老师上课会通过例子的方式解释很多数据库知识,每节课都去了所以学起来感觉还行,而且有一次老师出差线上上课,课间还给大家发过红包hhh总之蛮安利这门课的!
这门课给分还是可以的,就是学起来很累
有6次作业,难度不小,本科学过的可以抄一部分,和课件与考试都有联系,比较适合用于复习,最后会有习题课,还会发习题课ppt(本科都没有来着,当时还是bb系统上用自己电脑录的屏)
有1个实验,可以在github上搜到
卷子闭卷,总体难度貌似没有前辈们说的那么难,不过有些题我感觉给我开卷甚至查电脑都不知道答案
给了个 90- ,如果学分够用的话不太建议选,这是研究生阶段为数不多的硬课
基本什么都不会,居然还能有76,如果想学数据库,知识量也是达标的。而且实验github有现成的。
包给10分的,考试的时候拿到卷子心凉了半截,赌一手Nosql不考太多看到判断傻眼了,大题依稀记得全写出来的好像是两道(这其中还有一个道最后一问晕乎乎),剩下的真是浓浓师生情了。。。课程难度确实有,而且不听课看PPT有点难绷,有些细节不太能理解,内容比较多,后期复习还是比较煎熬的,就听的几节课来说拓展了比较多有意思的内容,后来不知道那一节开始听不懂就摆了。。。15号考完背后一凉,老老实实写实验报告去了,最后总评90多,真谢谢老师了
这学期是周日早上上课,对不起老师,我经常起不来,但是老师不点名。
作业有五六次,要写在本子上交。由于我经常没去上课,所以需要自己把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,只是能不能全抄的区别。但也不觉得这门课给我带来了很多收获,讲的内容都是数据库系统中比较基础的。所以,我认为这只是一门给分并不破格的常规基础课。
获益匪浅,值得选!
老师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/
整体是本科数据库课程的(稍微)延申,涉及到数据库DBMS内核设计,但内容整体深度和广度都不及CMU15445,所以刷过15445的同学这门课内容基本都不用听了(x
考试还是比较天马行空的,需要结合作业往年题以及PPT做好准备(至少作业题会写,PPT内容基本有个大概印象)
考试的时候大题写得磕磕绊绊,最后给分相当好,95
作业好好做了(满分10,基本都是9和10),但是考试一塌糊涂(因为基本没复习),本来以为要寄了,结果总评90+看来还是非常奶的。
挺好的一门课,详细讲述了数据库的实现原理,涉及的知识点很多,能够了解关系型数据库的底层原理,方便背八股(bushi)。实验和实验报告网上都有参考。作业量还行,难度不算大;没有期中。期末考试涉及知识点挺广的,有难度。不过最后给分还是挺不错的,推荐选择。
课程非常好 ppt制作很精良 极力推荐
课程还是挺硬核的,讲的内容非常偏底层。
作业一定要认真过一遍,往年的试卷也要做一遍,会有原题
大作业github上可以搜到
本渣渣平时划划水期末突击了两天,感觉很多都没懂,好在金老师给分很奶,吹爆!!!!