第21卷第11期2022年11月
Vol.21No.11
Nov.2022软件导刊
Software Guide
国产化时代的数据库原理教学与实践改革
刘斌,彭煜玮,余琍,彭智勇
(武汉大学计算机学院,湖北武汉430072)
摘要:数据库产业进入到一个新阶段,国产数据库纷纷替代国外数据库,且用户数据库记录的规模都很大。因此,
对数据库原理课程的教学与实践提出了新需求:一是实践环境需要以国产数据库为主;二是必须深入用好国产数据
库;三是必须培养一批掌握数据库内核技术的学生,为国产数据库研发作好人才储备。介绍武汉大学计
算机学院数
据库原理课程教学与实践的具体做法:融合式教学,将部分数据库功能与原理相关联融入到课堂教学中;按照学生特
点,有目的地增加教学深度;多渠道挖掘教学案例,提高课堂学生的参与度;多层次的课程实践活动;增加思政元素。
通过这些方法的综合应用,可有效提升数据库原理课程教学质量。
关键词:融合式教学;多层次教学;数据库内核;课程思政
DOI:10.11907/rjdk.221827开放科学(资源服务)标识码(OSID):
中图分类号:G434文献标识码:A文章编号:1672-7800(2022)011-0172-05 Teaching and Practice Reform of Database Principles in the Era of Localization
数据库应用案例LIU Bin,PENG Yu-wei,YU Li,PENG Zhi-yong
(School of Computer Science,Wuhan University,Wuhan430072,China)
Abstract:The database industry has entered a new stage.Domestic databases have replaced foreign databases,and the scale of user database records is very large.Therefore,new requirements are put forward for the teaching and practice of database principles course:first,the prac⁃tice environment needs to use domestic databases;second,students must make good use of domestic databases;third,a group of students must be cultivated to master the core technology of databases in order to develop domestic databases.Introduce the specific methods of teach⁃ing and practice of database principle course in the School of Computer Science,Wuhan University:integrated teaching,integrating some functions and principles of database into classroom teaching;according to the characteristics of students,purposefully increase the depth of teaching;mine the cases suitable for teaching in life and learning,and improve the participation of students in the classroom;multi-level cur⁃riculum practice activities;and ideological and political elements in teaching.Through the comprehensive application of these methods,the teaching quality of database principle course can be effectively improved.
Key Words:integrated teaching;multi-level teaching;database core;curriculum ideological political teaching
0引言
数据库原理是计算机专业的一门核心课程,数据库技术的快速发展,给该课程教学带来了许多新挑战[1]。例如,随着移动互联网的飞速发展,人们可以使用手机等移动设备快速完成各种交易,与之对应数据库中的各种记录规模都在百万级以上。而且,近几年来企业对数据的安全越来越重视,国产数据库替代国外数据库成为一个很重要的趋势[2]。数据库课程的教学与实践需要适应这些新需求:首先,数据库的实践环境要过渡到使用国产数据库;其次,由于用户数据库中包含大量记录,因此实践环境需要模拟这种场景,才能使学生更深入地理解数据库功能以及各种参数配置,使数据库应用程序的性能满足用户需求[3];最后,国产数据库研发需要大量专业人员,需要培养掌握数据库内核技术的高端人才[4]。近年来,武汉大学数据库课程组在教学与实践中作出与之相适应的改革,通过加深和拓宽原理性知识传授,设计多层次的数据库系统实
收稿日期:2022-07-15
基金项目:产学研合作项目(201902146054);华为高校沃土云创计划项目(2022)
作者简介:刘斌(1975-),男,博士,CCF会员,武汉大学计算机学院讲师,研究方向为数据管理、数据挖掘等;彭煜玮(1980-),男,武汉大学计算机学院副教授、硕士生导师,研究方向为数据管理;余琍(1977-),女,博士,武汉大学计算机学院讲师,研究方向为数据管理;彭智勇(1963-),男,博士,CCF会士,武汉大学计算机学院教授,研究方向为数据库、数据管理。
第11期刘斌,彭煜玮,余琍,等:国产化时代的数据库原理教学与实践改革
践方案,培养了一批适应数据库产业发展的合格人才。
1融合式教学
融合式教学,是指将数据库原理与数据库系统功能进行关联[5]。数据库原理重点介绍关系数据库相关知识,比较抽象。数据库软件给用户呈现的是各种丰富的功能,每一个功能背后都隐藏着数据库原理的核心知识,将两者在课堂教学中进行有机关联可以帮助学生更好地掌握相应的原理知识,使基础理论学习不空洞,实践环节有准备。
在数据库原理知识点与课程实践采用的国产数据库管理系统功能之间建立3种关联:直接关联、内涵关联以及补充关联。
(1)直接关联。数据库课本内容在数据库管理系统(Database Management System,DBMS)中的直接体现,两者之间是一一对应关系[6]。比如结构化查询语言(Structured
Query Language,SQL)的增删改查功能,课本中SQL语法规则使用的是标准的SQL,商用的DBMS都支持兼容。课堂中讲授SQL语句时,学生可以直接在DBMS中练习使用,这些知识点可以很平滑地进行过渡。
(2)内涵关联。分析课本知识点与DBMS功能之间本质上的联系,以及DBMS为什么要这样设置功能,设置的目的是什么。比如数据库原理中的事务内容,事务是数据库原理的重要组成部分,课堂首先讲授其具备的ACID4个特性,其次讲授事务的并发执行会带来的3种不一致性与解决不一致性的方法、事务的串行执行以及两端锁协议,最后讲授事务的显式定义begin transaction语句、事务提交commit语句以及回滚rollback语句。这部分内容非常多,也比较难。
DBMS功能体现在两个方面:一是提供事务的显式定义begin transaction语句、事务提交commit语句以及事务回滚rollback语句,但是最重要的锁对用户是透明的;二是提供事务隔离级别的定义功能,对应语句为set transaction isolation level,并定义了4个隔离级别。数据库原理中讲授了不同的锁协议,每一种锁协议对应事务之间不同的隔离程度,从而清楚地阐述隔离级别和锁之间的内在关联。
在讲述这部分内容时有一个难点:DBMS为什么把隔离级别功能留给用户?这样做的原因是:用户从实际需要出发,定义事务需要的最低隔离级别,以最大限度地提高DBMS的事务吞吐能力。例如,对于一个应用系统来讲,T1、T2两个事务可能理论上存在同时修改同一个数据的情况,因此需要高级别的隔离程度,如read repeatable。但是真实应用中可能T1、T2按顺序执行,根本不可能并发执行,所以可以把这两个事务并发执行的隔离级别设置成read committed,从而最大限度地提高事务并发执行程度。经过以上分析,即能把原理、功能以及目的之间的关系讲解清楚。
(3)补充关联。主要是针对数据库课本中相对比较宏观、不够具体以及DBMS功能相对复杂的一些内容[7],可以利用DBMS的功能细化知识点,使其更加丰富、具体。例如数据库的物理设计,通常课本都是简单几行,但是DBMS 有好几个对应的功能点,比如表空间、块使用百分比(PC⁃
TUSED)等。表空间是一个很抽象的概念,不好理解。数据库中的数据最终都存储在文件中,用户可以设置多个文件。为了管理方便,建立了表空间的概念,多个逻辑上有关联的文件可以划分到一个表空间中,所以一个表空间包含多个数据文件,一个数据文件只能属于一个表空间。经过以上分析,再进一步介绍表空间各种参数设置以及相应含义。最后可以结合数据访问的速度要求,将数据存储在固态硬盘、机械硬盘中。通过逐步深入,讲解物理设计中数据的存储位置、大小、磁盘性能等相关内容,使物理设计更加具体。
2专业特教学方案
武汉大学计算机学院共有计算机科学与技术、软件工程、人工智能3个专业。本科班分为计算机科学与技术班、计算机科学与技术卓工班、软件工程班、软件工程卓工班、弘毅班。针对不同班级,在课堂讲授时有针对性地选择难度不同的案例。
在计算机科学与技术班和计算机科学与技术卓工班的ER图授课中,经典的案例就是大学数据库,包含学生、课程、教师实体,存在选课、授课联系。该案例对学生来说比较易懂,但是也存在明显缺点,就是
太简单。为此,根据武汉大学校运会有学生、教师共同参加的特点,选择了大学运动会案例。案例的ER图如图1所示,组别的含义是学生参加学生组项目,教师参加青年组、中年组项目,转换成关系模型后,数据模式包含了10个关系,有一定的复杂程度,图1中省去了部分属性。
表1展示了ER图知识点和运动会ER图之间的对应关系。通过该案例向学生形象说明了“两个实体之间可以参与多种联系”这个比较难理解的知识点。
Fig.1ER diagram of university sports meeting
图1大学运动会ER图
·
·
173
2022年软件导刊
因为该案例贴近学生生活,经过分析研讨,90%的学生都可以顺利地画出ER图,并且可以得到正确的关系模型。在此基础上进一步联系实际,向学生指出:参与关系
Attend(WNO,PrjNO,Group,Seq)对应比赛用的秩序册,此时,不少学生才恍然大悟,明白了数据库中的表、关系等在实际中的具体对应内容,切实体会到了课程理论知识的现实意义。
软件工程专业学生在软件开发能力上比其他专业的学生更强,因此课程教学对该专业学生的要求也更高。在软件工程专业的数据库课程教学中,除基本的数据库增删改查功能外,重点针对触发器和存储过程开展教学。最后结合高级程序设计语言,让学生能够实现批插入的功能。
软件工程卓工班则结合事务和触发器,让学生掌握事务的不同隔离级别、事务执行过程中触发器的作用以及破坏触发器的约束条件导致的事务回滚等问题。
总之,数据库系统课程教学针对不同专业特点,要求学生对国产DBMS某一个方面的功能有深入了解,学习并掌握该功能更深更难的应用,达到深入用好国产数据库软件的目的,培养学生的钻研精神以及自主学习能力[8]。
3多渠道挖掘教学案例
SQL语言是数据库原理中一个重要的教学内容,也是学生感到比较困难的一个章节。学好SQL语言是用好数据库的基本要求,如果将来从事数据库相关领域的工作,对SQL编程也有较高要求。现在的毕业招聘考试一般都会涉及到SQL语句编程,题目相对复杂,SQL语句复杂意味着业务逻辑复杂,从业务逻辑到SQL脚本是一个转换过程。学生学会复杂的SQL编程意味着其具备较强的转换能力。转换能力培养不是一蹴而就的,需要反复地训练、体会,这就需要在课堂教学环节中进行训练和一定的课后练习。
“学生选课数据库”案例相对来说比较简单,因此也很难提出比较复杂的问题。由于课堂时间有限,在有限的时间内介绍一个复杂且学生不熟悉的业务背景,要求学生理解需求并进行SQL编程训练,效果不一定很好。因此,需要从其他途径挖掘合适的案例,改造成适合于课堂教学的形式[9]。
QQ是学生们经常使用的社交工具,里面许多功能都可以作为课程案例,可以引导学生思考这些功能用SQL语句怎么实现。比如QQ的好友推荐功能,你和谁有几个共同好友,但你们还不是好友。给出这样的查询:列出有4个共同好友但自身不是好友的用户对,每个用户对只出现一次。QQ的好友信息可以用用户表User和好友表Friend 表示,其中uid1和uid2都是外键,参照User表中的uid取值:User(uid,Name);Friend(uid1,uid2)。
虽然表结构比较简单,问题也看似简单,但是答案还是稍显复杂。SQL语句如下:
SELECT f1.uid1,f2.uid1
FROM friend f1,friend f2
WHERE f1.uid2=f2.uid2
AND f1.uid1<f2.uid1
AND f1.uid1NOT IN(SELECT f3.uid1
FROM friend f3
WHERE f3.uid2=f2.uid1)
GROUP BY f1.uid1,f2.uid1
HAVING COUNT(*)>=4
其他课程中也可以发现许多例子。针对人工智能专业学生的特点,选用关系存储稀疏矩阵的案例。对于两个不同矩阵matrix1(row,col,val)和matrix2(row,col,val),要求采用SQL语句实现两个稀疏矩阵的相乘,对应的SQL语句如下:
w,l sum(matrix2.value*matrix2. value)AS val
FROM matrix1,matrix2
w
GROUP w,l
HAVING SUM(matrix2.value*matrix2.value)<>0 ORDER w,l
该案例包含SELECT语句的6个子句,通过该SQL语句,可以完整地说明6个子句的先后执行顺序。
数据库课程组经常展开教学研讨,每位老师根据自己课程内容交流学生感兴趣的问题。针对这些问题,各自提出合适的案例,然后将所有案例进行概括、整理,形成更多可用于教学的案例。
4多层次课程实践
数据库课程实践是数据库教学的一个重要环节[9]。在实践环节,首先要和其他课程做好相互衔接。比如在面向对象的程序设计语言课程中,老师很有可能布置利用JDBC编写Java程序访问数据库的任务,因此在数据库实践中删除这部分内容。在数据库实践环节主要侧重于以下几方面内容:
(1)国产数据库部署。在数据库选型上,讲授几种开源国产数据库,例如PolarDB、OpenGauss、Oceanbase等,提前让学生选择。这样做的原因是国产数据库适配的操作
Table1ER knowledge points and corresponding examples 表1ER图知识点以及对应实例
ER图知识点
实体
实体间1:n联系
实体间n:m联系3个以上的实体
实体内部联系
联系属性
实体与属性的结构冲突
多重联系
运动会ER图
院系、运动员、项目、裁判、组别、工作人员
院系、运动员
运动员、项目
运动员、项目、裁判
工作人员
报名联系中的组号(Group)、顺序号(Seq)
组别和项目
报名、打分均涉及到运动员和项目
··174
第11期刘斌,彭煜玮,余琍,等:国产化时代的数据库原理教学与实践改革
系统不是Windows,需要学生花时间学习与操作系统安装相关的基础知识。
(2)与国产数据库厂商加强联系,邀请工程师进课堂。在授课环节,邀请华为数据库团队的专家走进课堂,讲授高斯数据库的功能与特,对国产数据库起到了很好的宣传推广作用,避免了数据库实践环境言必称MySQL的局面。
(3)针对性地制定实践内容。在软件工程卓工班,侧重于SQL语句编程、触发器以及事务实践内容。在事务实践中,提供脚本模拟两个事务交叉执行,在不同的隔离级别下观察事务执行结果,再反推在此情况下数据库加锁和释放锁的过程,从而让学生更好地掌握各种封锁协议。对于能力突出的学生,鼓励其编写模拟程序,一次性向数据库中插入百万条记录,体会索引在连接查询中的作用。最后使用SSD和机械硬盘存储数据,让学生观察对于同一个
SQL查询语句,磁盘性能对查询性能的影响。
(4)针对弘毅班的学生,开展迷你数据库(miniDB)研制的课程实践。弘毅班是教育部“基础学科拔尖人才试验计划”在武汉大学的具体实施,培养有志于国产数据库研究与开发的专业人才。弘毅班的课堂教学内容与其他班级不一样,增加了数据库系统实现部分的讲解,并且第二学期有专门的数据库系统实践课程。在实践中,每个小组5名学生,分别负责存储、编译、执行、索引和事务。任务基本完成情况如表2,结果表明开发一个演示版的数据库是可行的,相信经过一两年完善,每一个小组均能完成该任务。
5教学环节中的思政元素
思政教学,落实在大处,即引导学生增强爱国主义观点[10]。而从小处看,则是要培养学生做一个健康、热爱生活的人。在数据库教学、实践以及考试环节中,有针对性地、恰到好处地引入思政元素[11]。
例如在数据库引言教学中,加入国产数据库近年来的发展历史以及在各个行业的显著应用。在课堂重点分析
天猫双十一每秒支持58.3万笔交易背后的技术,以及对生活带来的各种影响,让学生明白国产数据库不仅可实现国外先进数据库的功能,甚至可以做得更好;同时介绍阳振坤老师用10年时间搭建Oceanbase数据库的故事,激励年轻有为的大学生们投身到国产数据库研发中。
数据库主要用于管理数据,在考试环节把国家发生的大事,同时也是学生感兴趣的话题用数据库形式表现出来。比如前几年我国海军的万吨驱逐舰服役,在学生们中反响巨大。构建军舰、级别、演习、士兵之间的ER图作为考题,考试结束时,学生们纷纷和老师讨论该题目有哪些地方可以改进。对该题的得分进行统计,90%以上的学生均能拿到满分。另外,将核酸检测场景引入考试中,在学生解决问题的同时,也提醒其时时刻刻要遵循防疫规定。
6教学与实践效果
学期结束后,通过调查问卷的形式,针对教学、实践和考试环节让学生进行评价,结果如表3所示。通过调查问卷可以发现,学生们对数据库的课程改革基本比较满意,相关知识点均掌握较好。
通过融合式教学,80%以上的学生都能掌握事务隔离级别的设置,并能很好地理解掌握表空间的概念。在实践环节利用表空间概念建立数据库的步骤中,78%的学生都能建立表空间,再建立数据库相应的表,而不是利用缺省的参数直接建表,从而加深了对物理设计的理解;10%的学生经过提醒后,能正确地理解表空间概念;10%左右的学生还是不太理解表空间的概念,经过打比方和目录等概念的比较说明,在其他学生的帮助下才基本能够理解。根据学生的专业特设置不同教学方案,结果表明,85%以上的学生能较好地完成相应任务,其余15%的学生在参考了比较好的学生作业后,可以理解并进行修改,从而基本完成作业,表明其确实在程序编写方面存在欠缺,利用计算机程序思维解决问题的能力需要提高,需要其他课程(例如高级程序设计)配合,通过多练习才能提升相关能力。在SQL语句编写课堂教学中,所有学生均能够理解业务场景,15%左右的学生除缺少一个条件外,其余均能正确书写。在课后作业中,80%的学生能编写正确的SQL语句。在以后的教学与实践中,通过及时发现学习能力稍弱的学生,开展有针对性的帮助,可以进一步提高教学质量。
Table3Questionnaire of teaching and practice reform
表3教学与实践效果调查问卷
内容
表空间概念的运用
事务隔离级别
触发器与存储过程编写
SQL语句(QQ)编写
国产数据库安装
基于国产数据库的数据库开发
数据库设计大题(军舰)完成情况
掌握程度(满意度)/%
78
80
80
82
90
83
84
Table2Analysis and strategy of the results of database system devel⁃
opment practice
表2数据库系统开发实践完成结果分析与对策
功能
存储编译
执行索引事务完成情况/%
95
100
80
50
20
原因分析及对策
完成基本的磁盘按块读写,功能相对简单,完成情况较好
利用JavaCC,完成情况很好
原因:主要功能是两个表的连接,功能稍微复杂
对策:帮助学生掌握连接的算法细节,协调好与存储的接
口
原因:B树的生成算法细节掌握不好
对策:课堂讲解B树的生成、合并、分裂等算法更细致
原因:对事务在每一个环节起的作用不清楚
对策:简化事务模型
·
·175
2022年软件导刊
7结语
国产数据库已经应用于各行各业,数据库技术也随着其他软硬件发展和用户需求的变化而快速发展。数据库教学与实践必须时刻关注、适应这种变化,才能使数据库原理课程教学与实践与时俱进,培养出的学生才能紧跟数据库发展的潮流。
参考文献:
[1]PENG Y C,JIN B H,YU X C.Teaching reform of database principle cur⁃riculum under the background of engineering education certification[J].
Computer Education,2021(11):128-133.
彭义春,金宝慧,喻学才.工程教育认证背景下的数据库原理课程教
学改革[J].计算机教育,2021(11):128-133.
[2]DAI M H.Database system design curriculum teaching based on OBE con⁃cept[J].Computer Education,2022(2):143-147,152.
戴牡红.基于OBE理念的数据库系统设计课程教学[J].计算机教育,2022(2):143-147,152.
[3]ZOU W Q,MAO Y G.Online and offline hybrid database principles course teaching practice[J].Computer Education,2022(4):133-137.
邹卫琴,毛宇光.线上线下混合式数据库原理课程教学实践[J].计算
机教育,2022(4):133-137.
[4]LIU Z X,KUI X Y,LIU W G.Exploration on teaching reform of database technology and application course based on OBE concept[J].Software
Guide,2019,18(9):221-224.
刘泽星,奎晓燕,刘卫国.基于OBE理念的《数据库技术与应用》课程
教学改革探索[J].软件导刊,2019,18(9):221-224.
[5]YAN H,KUI X Y,LIU W G.Research on the teaching mode of intersec⁃tion and integration of database technology and application courses under
the background of new engineering courses[J].Software Guide(Educa⁃
tional Technology),2018,11(12):23-25.
严晖,奎晓燕,刘卫国.新工科背景下数据库技术与应用课程交叉融合
教学模式研究[J].软件导刊(教育技术),2018,11(12):23-25.
[6]DOU L,XU F,GU L T.Teaching reform of database system practice course under the backgrou
nd of big data[J].Computer Education,2018(4):117-120.
窦亮,徐飞,谷林涛.大数据背景下数据库系统实践课程的教学改革[J].计算机教育,2018(4):117-120.
[7]ZHOU A Y,ZHOU X.Data professional talent training plan and core cur⁃riculum system construction[J].Chinese University Teaching,2020(6):15-21,33.
周傲英,周烜.数据专业人才培养方案与核心课程体系建设[J].中国
大学教学,2020(6):15-21,33.
[8]YUAN Y N,WU B,WANG B.Exploration and practice of NoSQL database technology course construction under the background of new engineering [J].Software Guide,2022,21(7):21-26.
袁燕妮,吴斌,王柏.新工科背景下NoSQL数据库技术课程建设探索与
实践[J].软件导刊,2022,21(7):21-26.
[9]WANG S W,LI G L,WEI J S,et al.Computer courses practical research integrating multiple teaching modes[J].Software Guide,2022,21(7):53-57.
王圣伟,李桂林,魏江谡,等.多种教学模式融合的计算机课程实践研
究[J].软件导刊,2022,21(7):53-57.
[10]QI H,WANG Y X,GE H W,et al.Four key points of ideological and political construction of computer major courses[J].Computer Educa⁃
tion,2021(8):50-53.
齐恒,王宇新,葛宏伟,等.计算机专业课程思政建设的4个关键点
[J].计算机教育,2021(8):50-53.
[11]YAN R.Ideological and political studies on database courses[J].Com⁃puter Education,2021(8):54-56,60.
闫蓉.数据库类专业核心课程思政研究[J].计算机教育,2021(8):
54-56,60.
(责任编辑:黄健谢文利)
··176
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论