【鲲鹏经典直播征文】基于openGauss数据库的教学探索与实践
前言
这是本人输出的第一篇直播整理文章。
素材来自于 < HDC.Cloud > 华为开发者大会2021 的演讲嘉宾:西安电子科技大学副教授王小兵,所做的演讲《基于openGauss数据库的教学探索与实践》。
内容概述
在本科课程里面,怎么来做数据库教学和实验,以及如何构造openGauss数据库的教育生态。
学院专业介绍
西安电子科技大学于1931年建校,到今年(2021年)是成立90周年。计算机专业起源于1958年,2001年成为首批国家示范性软件学院,2018年计算机学院和软件学院合并成立计算机科学与技术学院。
数据库课程历史
在1979年开设“数据库系统原理”的课程,当时选用的教材是国外的《数据库系统概念》。在1981年加入了数据库应用的课程,教材自编,使用的dBASE数据库。1995年研究生开这个课程,从1996年开始选用人大的《数据库系统概论》,2011年软件工程专业也是选用这个教材,2019年成为陕西省线上线下混合式一流本科课程。
王小兵老师在2004年开始讲数据库课程,当时对他印象深刻的是,各大公司找到高校要来推广自己的数据库,他本人也被培训过很多数据库,但实际上最后用的最多的是SQLServer,为什么呢?因为资料比较多,然后机房里面安装的都是SQLServer(安装方便,一路回车)。
在数据库教学里面存在相当多的问题,一个很大的问题就是数据库理论是讲了,但在实操时学生会出现一些啼笑皆非的错误。
数据库实验这一块,高校老师一般不会强行规定必须要用哪个数据库,那么学生选用的都是非国产数据库,将华为的openGauss融入到这个数据库的实验课程里面,可以让学生能够提前的了解到国内数据库的一些发展的情况,将来他从事这个行业能够有一个很高的基础。
openGauss 改革实验
西电积极参与华为“智能基座”产教融合协同育人基地建设,加快新工科建设。在进行线上培训、华为来校交流并赠送Taishan服务器给计算机科学与技术学院,做好充分的实验准备后,西电的openGauss数据库改革在2020年的秋季,大三的上学期启动。
华为提供了openGauss松鼠会的交流社团,号召老师和同学加入,里面确实还是有很多华为技术大拿,一些比较琐碎的技术问题他们也会进行解答。
在2020年2月份的时候教材还没有出来,当时我们是有一些课件和手册,然后经过长期的一个发展,清华大学的老师有出openGauss的专门的书了。
我们建立了一个SPOC,因为是第一年开始做,所以没有把它向全国公开,只是仅限在西电范围内使用。
我们开发了一个自主学习和自动评判的系统,然后将它从SQLServer迁移到openGauss上面,看着好像很简单但实际上里面牵涉到很多细节的东西,底层实现啊、函数啊、存储过程啊等等,要把它放到openGauss里面的话,不是说把数据倒过去然后代码改几个参数就行了,绝对不是这样的,因为有一些特性还不是太一样。
通过这个做完以后呢,让学生也确实能体会到:现在的商业数据库能做的,我们也能做到,没有任何的问题。
学过数据库的尤其是关系数据库的大家都知道,规范化理论是最麻烦的事情。学生在做实验的时候老搞不清楚,数据库一范式到底是啥意思?这个就需要我们除了学习理论,在实践当中还要加以使用,我们可以去给定另一个关系范式,然后自主学习去判断它是几范式,所有教材上讲到的范式都已经全部都实现了,这样的学生能够自动的去做一些评判,也能够降低老师的工作强度。
老师要花费很多时间来找到合适的实验题目,这样的题目对于学生来说会觉得非常的实际,能够理解,比如一个公交系统的安全管理系统。
在做数据库实验的时候一定要注意到的事项,由易到难的我列了六条,比如说要用到的规范化理论、一些插入异常,删除异常,还有一些完整性约束等等。
openGauss提供了两种语言的接入方式,一个是C语言,一个是JAVA语言,将来的话肯定还会增加其他的语言。
其实每个数据库都有一个发展的历史,很多数据库在早期商业化的时候,连外码(外键)都没有,这很正常对吧?像mysql以前都没有,慢慢的把它加上来。openGauss也会有一个发展的历史过程。
实验改革成效
开始的时候,学生用到ERwin来设计数据库,这个工具不能直接和openGauss相连,所以它生成出来SQL语句后,要去检测是否存在问题,然后到DataStudio里运行来创建数据库。
举一个例子来说明什么叫一范式,比如有一条公交线路5号线,要经过10个站点,那么这个信息我们怎么来放?
学生直观的会想到就是用一行记录来表示5号线,然后把10个站点放成一个字段里面;或者每个字段对应一个站点。
我明确告诉你这不是一范式。怎么来做呢?一行代表这个线路经过的一个站点。
类似于这样的一些概念一定要传递给学生。
未来发展方向
未来要扩大实验的范围,以openGauss数据库为基础,通过校企联合,结合市场的需求,找到人才培养和社会需求之间存在的差距,尽最大的努力去提高高校学生的工程实践能力,促进科研成果的转化。
我列了三本书,因为开发一个数据库管理系统(DBMS),会牵涉到与这三门课有关。很多年以前有一些课程就要做一个DBMS,发现了有一些问题,比如学生说我可以去做词法、语法分析,我也可以去用这个数据库,但是底层怎么实现呢?只有百分之十几的学生能够按照我的要求,自己能做出来,就是说输入一个SQL,然后有结果返回,底层的话他可以用文件管理系统。
怎么扩大这个教学的效果呢?要把这个系统划分好:SQL引擎这一块呢,有词法语法,语法指导翻译,可以放到编译里面做;存储引擎呢,可以放到操作系统里面做,简单的处理方式是把每一个表作为一个文件,复杂的处理方式是按照商业数据库实现的方式来做。
我们可以做一个原型DBMS出来,在此基础上还可以裁剪,然后当中有一些像编译呀、操作系统啊这样一些相关功能,我们把它挖空,然后让学生去填空,采用这种方式去提高他的能力。
总结:数据库是一种非常重要的一种技术软件,我们选择数据库不太恰当的话呢就会存在一些风险问题。目前国家希望高校和企业以超常规的方式加快培养一批紧缺的人才,要解决这个卡脖子的问题。高校的教师最重要的任务就是立德树人,我们希望在华为“智能基座”项目支持下,对相应的一些实验进行改革,然后去推广openGauss数据库,从教育层面打造这个生态圈,然后进一步去打造基础软件生态圈。
(完)
- 点赞
- 收藏
- 关注作者
评论(0)