选课类别:计划内与自由选修 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业基础 | 学分:3.5 |
本课程的内容包括数据模型,数据库系统的体系结构、关系数据、关系数据库语言、以及数据库系统编程。课程中还介绍数据库设计的方法、数据库安全、数据库管理系统DBMS事务管理概念,以及重要的恢复与并发技术。
金培权老师的《数据库系统及应用》课程被普遍认为讲课有趣且有逻辑,能够用简单易懂的例子解释复杂的数据库概念。有同学表示:“金老师讲课很有热情,逻辑清晰,课堂气氛轻松”。老师的PPT和讲义制作精良,对复习非常友好。许多同学对老师的上课风格好评如潮,称上他的课是一种享受。
课程涵盖了数据库理论、SQL编程、数据库设计和系统实现等内容,内容全面且系统。不过,由于课程内容涵盖面广,需要学生在不同领域间切换心态,有些学生认为这一方面不是很适应。实验内容包括数据库设计、SQL编程和一个银行管理系统的开发,尽管有同学觉得开发任务工作量大,但大多数认为这些实验对理解课程内容帮助很大。
作业和实验普遍被认为设计合理且与课程内容高度契合,尽管有些工作量较大。特别是实验三(银行管理系统)被称为“软工实验”,需要大量编程和系统设计,有些同学觉得时间紧迫。有同学建议尽早开始,以避免DDL临近时的压力。有些作业和实验工具对Mac用户不友好(如PowerDesigner),希望未来能更加平台友好。
考试题型包括选择题、判断题、问答题和SQL编程题,覆盖范围全面。期末考试内容基本围绕课程PPT,重点突出。有同学认为考试难度中等,题量较大,但只要认真准备往年试卷和习题,问题不大。
总体来说,课程给分较为大方,不少同学表示有调分以提升成绩,尤其是卡绩分数会进行适当上调。虽然多数学生对给分感到满意,但仍有少数同学反映给分稍显严苛或不太透明。个别助教在分数问题上表现有些随意,希望未来有更公正、公开的评分标准。
金培权老师的《数据库系统及应用》课程普遍受到同学们的好评,被认为是美中不足的点主要集中在实验工具平台的选择和评分透明度上。总的来说,这是一个教育质量高、内容实用且气氛轻松的课程,适合希望深入理解数据库系统及应用的学生。
本学期MVP,从上课到PPT到给分,都是一流。
金老师上课能够把复杂、抽象的例子用简单易懂的样例解释的非常清楚,上课气氛非常轻松,听课不累,而且收获非常大,即使是周二周四早上第一节课我也丝毫不困。
作业都是老师自己出的,非常有特色,与上课内容高度一致,知识点考察也比较全面,而且找不到答案。由于PPT做的非常好,附带思维导图,所以期末复习的时候PPT+习题课+作业题+小测题+往年试卷就足够了。
考试部分是两个老师联合命题的,有选择、判断、问答,问答题中有比较生硬的名词解释题(两阶段锁的定义等),有写SQL语句的题目、也有判断范式的题目。具体楼上说的比较详细,按照惯例回忆版试卷应该也出来了,这里就不用多说了,欢迎到gayhub上查询。
实验的话,前两个实验都不算难而且个人感觉意义不大,最后一个lab3工作量比较大,需要自己写一个银行管理系统(然后换一下前端就可以变成软工的综合教务系统了),可以采用C/S或者B/S架构,最多三人组队。
我们组的框架是python+flask+peewee+mysql的B/S架构,前端使用了bootstrap的模板。实际上本次实验只要框架搭起来了,真正的难度并不大,大部分模块的需求都是重复的,纯粹是复制粘贴的工作量比较大(特别是bug也被一起复制粘贴的时候)。助教的检查也不是特别细致,但是报告的工作量就真的high到不行了,堪比软工。(老师上课也说到了,希望能够合并软工的课程实验,让同学们体验更加完整的设计——开发的实验过程,同时不增加同学负担)
写完实验才发现,lab3的代码框架可以参考本评课社区的开源代码23333
金老师似乎会特别关照的把88,89等卡绩分数向上提一档,作为一个一大堆学分被卡绩的蓝人,我在金老师手上的两门课(另一门是Web)都没有被卡绩,表示非常开心。
本门课唯一的缺点就是:
不过听说明年的课程要换mysql教学了,事实上mysql用于教学确实比Oracle好,我们lab3用的就是mysql,上手即用,比oracle舒服多了。
名言:“毕竟我们也不是什么文科”
隔壁dlf出来挨打
马老师:“出来单挑”
还没出分,但是闲的蛋疼,来评价一下(希望出分之后不要改变嘴脸
优点:
缺点:
上课:有点名有小测,但隔壁班也有。实习翘课人平时分--.
作业:简单好抄。要求必须交纸质作业,难受。
实验:简单好抄。开学的时候不让线上检查,让我期末回学校再一起检查。第一次实验检查时间太久,好多同学压 ddl ,结果助教不得不开了线上检查通道。助教后面检查不是很认真,lab3 功能没查全就给过了,并且即使有小 bug 也给了满分 + 附加加分。
考试:还算简单,考前突击个半天差不多了。有同学在群里问往年题,老师说题有错,不要乱做题。喜提 78.
给分:作业 20% + 实验 20% + 小测 10 % + 期末 50%,点名不到不扣分,到了有加分。翘课人平时分大爆炸,78 => 83,好像期末同分段的大多优秀了。。
能不能别总惦记着线下课了。。。
吐槽:按照以往 OS 、编译的实验来看,我还以为这门课要手搓一个 DBMS 出来,结果实际上更偏向于软工,有点小失落。之前帮一个技校的同学写过一个类似的项目,感觉这课的 lab3 难度不及技校。这下 科 < 技校 了。
只能给七分。这门课存在的问题还是很大的,不过从各种意义上来说,老师已经尽力了。
首先数据库本包含的内容极多,且与安全和系统等模块都要交叉。无论是SQL语言,数据库的设计,还是最后所谓的“数据库”大作业即实质的软工实验,分别单独开一门课都是毫无问题的,而cs的培养方案里就只有这一门数据库课,只能挑一部分讲。这点老师也曾提到过。从这个角度看的话,大部分的教学内容是非常不错的,但是最后的软工实验,这个实验无论如何都不应该在数据库课程的实验中出现,更合适的选择是放到隔壁软件工程导论去当大作业。然而
软件工程导论双双上榜,应该培养的软件工程技术在这门课中分毫没有教授;另一个平行班的数据库课程也难逃一劫引发众怒,两者双双衬托出了金培权老师这门课的可贵(这也是为什么我说老师尽力了)。这些把优雅的计算机知识讲成杂鱼文科申论的课程我已不想过多评论,从某种意义上来讲,这门课在为整个培养方案背锅。很多同学都是在这门课程中才接触到了前端,才接触到了开发,并且真正了解到了“码农”的实质含义。若是删掉这个实验,一个像样的项目都拿不出来的比比皆是。这不能说不是一种糟糕的情况。
此外,科大数据库方面的师资确实比较匮乏,除了金培权老师外,为计算机学院和大数据学院讲授数据库课程的老师均不是研究数据库的。而数据库的重要性不言而喻,同等级的其它学校基本都会在大二就讲述相关的内容,因此建议提前接触相关的知识。
个人希冀未来能把软工作业移给软工课,参考浙大把最后一个大作业改成C/C++实现minisql,这样的安排会合理不少,能学到不少内容,且不会出现数据库课程花了大量时间琢磨前端怎么写的情况(至于软工作业查重给分等则是另一个很让人头疼的问题了)。
另外推荐一下一本书:设计数据密集型应用(俗称DDIA),建议学完数据库和系统的基础内容后进行阅读。
2020春,疫情线上
从我听过的为数不多的课堂里,金老师的逻辑和热情算是很不错的,讲课水平应该算上等,可惜我最开始躺在床上听课到后来躺在床上挂上课后就接着睡了(
课程实验:
在我了解的人里面,貌似没写实验三的也不少,这些大多数都是3.0,写了实验的基本都有3.3和3.7;给分应该还算不错。
关于课程材料,除了金老师的ppt以外,本课程有几个教材/参考书:
本课程材料最大的问题(但不一定是老师的问题)在于材料论述与概念的矛盾、迷惑与不清;我考前异步预习了以上三本所有教材+ppt,所以应该还算有发言权:
或许在我看来,这是一门粗略地学起来(看ppt)比较轻松的课程,因为老师的ppt确实精炼而十分有效。但如果你多看一些材料,试图深挖一步时,或许就感觉困难很多了。
我是优秀率线以下的同学,按照比例算没有调分。金老师上课比较有趣,算是能听得进去的那一档。数据库这门课也比较简单,但是期末最后一大题考了死锁,这个我确实不会写,摆了(
乐,了解了一下身边同学的分数,考的越高调的越多,优秀率线下的直接没调🤣不好评价
不是神,不调分的,比226算出来还低
这学期回归线下教学,不过上课也从未点过名,上课比较有意思,条理也很清晰,注重对数据库的理解,不会要求死抠概念(虽然最后期末考还是考了一些概念题)。
作业除了某一次要求用MySQL语句实现要求的十来个查询外,其他时候都不算太多。实验3特别坑,要求实现一个银行数据管理系统。虽然有Lab 2做的数据库设计做铺垫,但据观察大多数人用PD生成的物理模型都在MySQL上跑不通,最后被迫推倒重来。这学期软工实验没了,两门课交同一份大作业来水实验的计划大失败。众所周知,中科大计科从大一到大三都基本没有讲过图形界面、网络通信等相关的编程,许多同学都是临时抱佛脚速成的。虽然实验是五月份布置的,直到考完试的七月六号才布置,但还是有不少同学无法完成,最后TA在群内公布未提交名单时可以看到长长的一列学号。这实验一定要注意提前开始写,不要做DDL战士,它的工程量真的不小!
附上Lab 3实验:
前端:https://github.com/guch8017/BankDBFrontend
后端:https://github.com/guch8017/BankDBBackend
考试中规中矩,今年据说与隔壁(传闻喜欢抠概念的)老师分开出卷了,自信满满的以为今年不再考概念选择判断,结果卷子到手就是30分的概念题(悲)。
附上不知道哪里流出的2020年的期末卷子,今年的卷子与去年还挺像的,建议考前把往年卷子做一遍,肯定有好处。
卷子:https://github.com/guch8017/USTC_CS_EXAM/blob/master/Database%202020%20Spring.pdf
给分不知道怎么样,因为有同学想查分时TA说老师禁止透露卷面分,具体如何计算分数和调分的就不得而知了
好评,金老师讲课水平和给分情况可以参考其他答案,我就随便唠点其他的。
- 这学期线上上课,而且是两节早课,每次课前金老师都会在课程群里面发红包,但我每次都是在睡梦中的,完美错亿
- 老师不仅会在课前发红包,还会在课前放歌,虽然大部分放歌的时候我还在睡梦中,但就我听过的为数不多的几次,金老师的90年代歌单跟我的个人喜好完美符合,尤其是最后一次课放的是李宗盛的《山丘》,这是我最喜欢的歌之一,放完后老师还借这首歌鼓励我们翻越人生中的山丘
金老师的PPT非常清晰,作业和实验也非常轻松,和课程内容高度关联,给分也是无敌,上课还会讲各种段子,
这门课考不好完全是我自己的问题,不过感觉学得并不差,但是并不妨碍期末卷面46,不过这都能捞到72,orz
~~虽然只用了3h复习(1h+晚9点大数据算法考完后2h),SQL基本查询一定要认真再看一下呀,小测都会以为不用看了,~~
~~然后考试以为select * from tb1,tb2会自动匹配相等的项没加S.B=T.B,然后助教非常公正,一路送了20多分。~~
PS:其实个性化同学的GPA和非个性化同学的GPA一般是不能相提并论的,因为通常你没有队友,而非个性化的同学的实验大多数都是ctrl+c,ctrl+v的,因此复习时间会比科班的少不少,尤其是课程多的情况下,你考试周开始前终于完成了所有实验,考前一个晚上开始复习,人家考前一个月开始复习~~,
还有有些人喜欢寒暑假预习来卷GPA(中科大这种明明是靠卷出来的“大佬"不少,还非常优越),我不是不知道预习能提高成绩,只是没有时间也不愿意预习
金老师的这门课是我上大学后第一门每一节都想听的课,因为老师用腾讯课堂上直播课,没有回放,我作息黑白颠倒,所以还是漏了好几次课。金老师声音很好听,PPT做的也很好,讲课思路也清晰,作业不多,每次只有两三道题。课件和作业实验在这里自取。数据库系统及应用课件.zip
关于考试,试卷大部分内容和https://github.com/Lyncien/USTC-CS-Exam中2019春的差不多,今年最后一题换成了用E-R模型设计数据库,和实验2类似给出了一个用户需求。我复习时忽略了这一块,导致我连E-R图的符号都忘记了(不过我前面写的慢,也没多少时间写了)。如果只想考试拿个好分数的话,考前好好复习PPT完全足够了。
好评的地方:
必须吐槽的地方:
给各位的提示:
金老师的PPT是我认为大三下学期的所有课中做的最清楚,条理最清晰的。老师上课讲的非常的详细,而且也会补充一些例子,虽然最终考试好像并没有怎么涉及23333。讲课的风格个人感觉也很好,不是那种纯念ppt搞得你听都不想听的那种。
开学的时候说会有两次小测,结果最后只测了一次,然后点了一次还是两次名。小测是在刚讲完SQL语法测的(开卷),结果四道题三道都是写SQL查询语句,剩下一道概念题。期末复习时再看小测题好像也没觉得有多么难,当时觉得爆炸大概只是因为作业也还没写,实验也还没做,所以对SQL太陌生了。这种东西理解了就应该都能会写了。
这学期的期末考试画风稍有不同,概念大题多考了一道,总体题型为选择题,判断题,概念简答题,综合题(SQL,范式,还有一个忘了),最后考了一道莫名其妙的题,关系数据库有什么缺点(这个大概是最后一章涉及的内容,然而考前明确说了最后一章不考hhhh,所以都在瞎扯)。选择题、判断题、概念题都会考的比较细,所以概念一定要非常清晰,最好能有往年试卷作为参考,题型和考点非常相似,范式那道题甚至是原题(其实作业也做过基本一致的题,只不过变化了一点,但不细心的话找超码还是会被坑的)。
本学期的实验总共三次,第四次是一个额外实验(没有布置也没有人打算去做),第一个是一个常规的写各种SQL和Py/SQL;第二个使用PowerDesigner设计数据库画E-R图并导出物理模型;第三个则是在第二个设计的数据库的基础上(稍有改动,改的简单了点),写前端,讲道理有点和课程内容脱节,反倒有点像软工该干的活,然而软工则天天在那里写文档。最后的实验报告也是写一份和软工类似的设计文档(严重重合,再次要求删除软工23333)。实验三是最多3人一组组队完成,我在的组仨人也没啥前端经验,最终用的PyQt做的废柴前端。有时间一定要提前开始做,挺费时间的,要不是这学期助教心慈手软把原定的在考试前的DDL延后到考试后,就凉透了~
可能是因为卷面比较高吧,最终总评挺高的,这波给分很满意。至于另一边DLF的数据库,他们的习题课的课件给的答案都一坨错,我也不想说啥了,讲个往年考试题结果把答案快给错了1/3 hhhhh
实验
SAP专用软件对除了Windows都不太友好。
Lab3后端半小时,前端十小时。
上课
有几次点名和小测,有提前通知
老师上课挺好的,可惜我不听。
给分
中规中矩的3.7
上课:jpq老师上课水平还是很在线的,能把概念解释得十分透彻,上课也很幽默风趣。但是可能是因为这门课的课程容量不是非常大,总感觉老师上课节奏有点过于舒缓,以至于上课经常开小差,一学期的课没有完整地听下来(也有可能是因为上学期神仙老师太多了听课口味变刁钻了~)
作业:5次作业,还是有一定难度的,尤其是MySQL查询语句那次。和往年作业大同小异(可能会改题目细节,如果抄要看清再抄~)改的好像不是特别严?作业占比30%
考试:一次随堂小测+期末考试。随堂小测是全开卷,在MySQL上完之后,大概6-7周的样子(会在前一节课通知)就是5个MySQL查询语句,还是有一定难度的。期末考试难度感觉小于作业,但是大于隔壁班的考试。本人由于随堂小测考的还可以+lab3才用过,于是没怎么复习MySQL,结果两个not exist的嵌套查询忘了怎么写了www~占比是随堂小测10%,期末考试50%
实验:一共3次,lab1是MySQL+过程化SQL,比作业简单;lab2用powerdesigner画cdm;lab3软工实验:写一个教师科研教学管理系统,很耗时间但是没什么思维含量。吐槽的地方在于每次都有实验报告的模板,而且还及其冗长,不过好像应付一下也不会扣分?实验占比20%
给分:感觉很奶,在公式的基础上总评加了2-3分。不过听说40%附近的调分力度好像不是很大?
老师很负责,上课幽默风趣,ppt质量也很好,是读大学以来体验感最好的一门课。
把卡绩的上调,比较体谅学生。
认真的学的话这门课真的收获不错
大数据是大二春学的数据库,也就是说要跟大三的计科一起卷,导致一开始压力还是蛮大的,再加上一开始就开始讲关系数据模型、各种范式导致根本分不清这是什么学科的课,于是一开始对这门课留下了非常恶心的印象以至于天天(做作业的时候)骂
但其实在认真听课之后,应该还是能理解所有东西的,数据库不像数学课不懂就是不懂,说到底还是文科课
然后对于作业的话主要任务量就在lab3的数据库系统,之前都是团队作业,三个人的工作量今年变成了一个人,于是我就又骂了好久,再加上爆肝,最后也就是一个实验的分。当然,可能你爆肝了之后发现别人copy了一下和你结果一样 哈
当然还是期末考比较重要,个人认为大家的分差应该主要在于前面概念的差距,所以可以的话上课认真听会比较好,当然金老师的段子应该不会让大家太困
其实这课也没什么好推荐的,也没人会去隔壁班吧
2021春季学期上课,总体体验很好,评课社区说的优点金老师全都有,上课也经常讲一些工程实践方面的扩展(虽然没去上过几节课,但我还是知道的)。PPT是老师自己做的,期末复习起来很快(当然本身也没多少东西),一些细节上的问题去年zjx大佬也总结过了。我主要说说缺点吧:
从作业到实验到考试,这几年重复度都很高。作业只有sql那次额外加了两道小问,ER图多加了一道题,索引改了一道题,其它都一样。实验完全一样。考试唯一的亮点可能就是模式设计那道题,求最小函数依赖稍微改动了一下就有不少人写错;判断选择一堆原题,sql和ER图完全照搬往年题;最后一大题出了15分关于索引的知识,反正最后也没标准答案不知道写的对不对(我主要对B+树的并发插入性能进行了分析)。这样搞对我来讲是很省事,随便都能找到各种往年参考。我在这门课上只花了很少的精力,对关系型数据库有了一个初步但是全面的认识,最后成绩海星。如果以后还按照这种方法上课的话,对学生而言是很轻松的
因为上面几个我感知到的缺点,所以只打8分吧(其实也都不是什么大问题,比如比这更离谱的助教多了去了)如果对比隔壁班,那金老师班的含金量可远不止8分
来说说其它答案没有提到的地方:
很棒的课程,只跷课过一节课,金老师讲课很有吸引力,助教也很nice,这学期体验最好的课程之一。
课程实验也锻炼了动手能力,虽然很简陋,但收获很多,相当于是做一个最基础的开发小demo吧。
至于评分请看下图:
如果严格按照226算分的话,我是77分,但被调分至85,what can i say?
我的评价是,选了金老师的课,你就偷着乐吧 :`)
一学期上课没听过,作业实验全交,签到到了一次,期末一边看比赛一边复习,期末卷面不及格,总评爽拿3.0。爽 这才是摸鱼
金老师的PPT是这学期所有上过的课程中最好的,条理清晰,重点突出,特别适合我这样的异步学习者。
讲课也很有意思(虽然没怎么听),偶尔也会讲一些段子。
有往年卷子的不要放过,每年的题型都非常相似,甚至有原题。今年就有一个去年的原题大题,甚至在考前那个晚上还有人在课程群里问老师这道题,老师还给解答了(hhh)
今年是实验作业考试2:2:6给分,根据群友的反馈,有人说比算出来的少了一两分,但是我反而多出了两三分。。总之多给我分了在我这金老师就是yyds!
还可以的课,没点名,老师上课讲的各种小故事是上过的课中质量最高、数量最多的,听课很有趣。
作业不多,给分一般,实验检查很水。
对这门课无感,如果必须要上的话还是很推荐金老师的。
老师很认真,在数据库方向上非常专业。讲课很清楚,PPT质量也很高,很适合自学。
课程内容不难,不过有点点文科的感觉。实验就是祖传的银行系统,其实没什么意思。
因为老师不错所以班上竞争比较激烈,-2分。
老师讲的非常好,ppt做的也很好,很适合复习。
这门课有一个助教确实有点奇怪,但总体不影响这门课的质量。实验可以加大的比例吧,毕竟实验三还是要花很长时间的。
老师水平很高(感觉能在上大学以来遇到的老师里排前三),上课讲的内容也很扎实,PPT做的相当好(复习时极其舒适,对比这学期其他几门课的PPT)。
助教人数比较多,大部分是正常操作。有个助教比较离谱,实验检查当面给你10分,下次你去检查实验时,会发现你上次实验被扣了0.5分或者1分,私下交流很多人都遇到了,然后其他助教检查时,这位助教就要过去指点江山,嫌给分太高,要求多扣点。
最后一个实验工作量很大(尤其之前没有做过完整的项目开发,需要学些东西),但是占比不高,全靠期末考试成绩决定总评,有人最后一个实验没做也能拿到82,建议以后可以适当提高实验占比。
很好的一门课,基本掌握了SQL语句和数据库原理,实验也比较简单,第一个是搞几个sql语句,第二个是用sap powerdesigner设计数据库的logic model,这个稍稍有点奇葩,不过可以胡乱糊弄过去。 第三个实验要实现一个银行管理系统,这是最麻烦的,我在win10上开发,用了sqlserver+wpf,全部用存储过程,结果参数传递比较麻烦,最麻烦的是UI的设计,费了老半天设计了一个合理的界面,结果跟我说要实现所有的“增删改查”功能,还不如一开始就用最简单的填表的UI,坑死了,扣了2分 最后有个加分实验(+5分),就是实现S,X锁以及update操作,需要注意顺序的一些问题。 考试比较基础,结果当时居然忘了“两阶段锁”含义 最后给了4.0
老师可以说是特别好了!ppt做的好,讲课也很赞,实验检查略水。。还有平时两次小测要好好准备下,有个附加实验大部分人都会写,不建议在附加实验耗时很多,最后给了90
感觉数据库真的挺有意思的,挺喜欢老师上课风格的。作业不多,实验就三次加一个附加。意想不到的收获是通过这门课的实验入门了网页前端,不过最后一次实验写了好久啊,导致附加实验都没来得及写(其实是因为仗着ddl在期末就拖延QAQ),其实不算难,主要还是比较麻烦吧。
课程包括两次小测(小测分数很关键,不是很难,建议认真复习),三次实验(一次基本的SQL语句,一次powerdisigner设计模型,一次GUI的数据库系统,还有一次附加的实验是用C++模拟锁系统,附加实验据说可以直接加分),还有期末考试,金老师讲课讲得非常好,人也很耐心,经常耐心解答我很傻逼的问题。上课最好还是去一下,我每次迟到都很后悔,因为自己去理解那些ppt比听他上课讲效率低太多了。考试感觉不难,考的就是最基本的ppt上面的知识,基本上如果把PPT好好理解一遍分数都应该OK。但是最后期末莫名其妙地炸了,拿了个84真难受。