APP下载

新工科背景下NoSQL数据库技术课程建设探索与实践

2022-07-14袁燕妮

软件导刊 2022年7期
关键词:键值区块数据库

袁燕妮,吴 斌,王 柏

(北京邮电大学计算机学院(国家示范性软件学院),北京 100876)

0 引言

新工科(Emerging Engineering Education,3E)是基于国家战略发展新需求、国际竞争新形势、立德树人新要求而提出的我国工程教育改革方向。人们对未来美好智能化生活的向往激发了各个领域对新工科人才的巨大需求,使得云计算、大数据、物联网、人工智能、区块链等新兴工科专业方向人才培养成为当前高等教育的焦点,因此对高校人才培养提出了更高要求。

面向产出的教育理念(Outcome Based Education,OBE)强调的成果产出是指学生最终取得的学习结果,也即学生通过系列课程学习、专业培养后所能达到的最大能力。OBE 理念是我国工程教育专业认证的核心思想。

数据科学与大数据技术专业是重要的新工科特色专业。科技强国之路必然伴随着国民经济生产生活的高度信息化发展,数据存储技术是大数据复杂应用系统中的关键技术,传统关系型数据库在面对社交网络图结构数据存储、高并发电子商务、物联网动态感知数据存储等很多业务场景时显得力不从心。为适应大数据的多样性特点,图类、文档类、列族类、键值类等NoSQL 数据库技术应运而生,且发展迅速,在企业级业务系统中的应用越来越广泛。掌握NoSQL 数据库技术相关基础知识原理与模型设计方法,并能将其用于数据科学与大数据领域复杂工程问题的建模分析及数据存储操作管理,是数据科学与大数据技术人才培养的核心基础能力。

1 课程建设现状与问题

NoSQL 数据库技术泛指非关系型数据库技术。在北京邮电大学数据科学与大数据技术专业培养方案中,NoSQL 数据库技术课程是面向大三学生在第六学期开设的专业基础核心课程。课程在2019-2020 学年春季学期首次开课,设置2 学分,共计32 学时。该课程主要面临以下问题和挑战:

(1)缺乏成熟的教学大纲指引。教育部2016 年批准成立数据科学与大数据技术专业,北京邮电大学属于2017年第二批获准开设该专业的高校。在目前的课程体系中,数据库原理课程主要掌握以关系型数据库为主的相关理论技术基础知识。在大数据时代背景下,为适应社会技术变革的需求,需引入NoSQL 数据库技术教学内容。因此,迫切需要依据专业培养总体目标,基于OBE 理念从多角度设计该课程能力培养目标、教学内容模块及适宜的教学方法。

(2)NoSQL 数据库技术种类多,技术差异大。参考数据库领域知名排名网站db-engines,目前市场上的NoSQL数据库产品有上百种,不同产品适合不同的应用场景。因此,需要探索如何在有限的课时内,针对不同种类NoSQL 数据库的特点,设计适合的案例激发学生的学习兴趣,能让学生在理解主流NoSQL 数据库技术基础理论的前提下,培养其问题分析、抽象建模与知识实际运用能力。

2 相关研究

大数据时代,很多高校紧跟时代发展,对数据库相关原理与应用类课程进行教学改革。在教学内容方面,大多是在关系型数据库课程基础上拓展性学习NoSQL 数据库的基础分类与特点,并选择其中一种或两种NoSQL 数据库进行深入学习,如HBase、MongoDB 或图数据库等。但不同种类的NoSQL 数据库技术存在显著差异,不像关系型数据库知识体系具有很好的迁移性,只需掌握统一的SQL语言就能很好地学习掌握各种关系型数据库。NoSQL 数据库技术课程涵盖的NoSQL 数据库技术类型需要同时兼顾深度和广度,如目前数据库相关课程中普遍缺乏采用对等集群架构的Cassandra 列族数据库与时序数据库技术知识内容;图数据库在社交网络领域、推荐领域、知识图谱领域等应用越来越广泛,但在已有数据库相关课程知识体系中仍处于空缺,或存在内容不够突出与实践不深入的问题。同时,2021 年区块链首次被纳入国家五年规划,在“加快数字发展,建设数字中国”篇章中,区块链被列为“十四五”七大数字经济重点产业之一。然而,目前数据库相关课程知识体系中尚缺乏NoSQL 数据库技术与区块链数据分布式存储技术的衔接。为更好地满足国家对区块链技术人才培养的迫切需求,课程需要探索引入区块链存储技术。

在教学方法方面,围绕课前、课中、课后学习过程各个环节采用线上、线下混合式教学模式,通过案例教学、兴趣驱动、加强互动测试以及时掌握学生学习效果是目前重要的教改研究方向。针对NoSQL 数据库技术课程教学,Zinovieva 等提出直接引入MongoDB 等官方视频课程资源的方法,并将第三方平台学习效果评价引入课程学习效果评价体系;刘雯敏、胡瑞娟等应用BOPPPS 模式对在线教学各个环节进行了探索。各种教学方法给本课程教学研究提供了很好的参考借鉴,因此需要基于本课程设计的NoSQL 数据库技术学习路径,针对课程能力培养目标,综合运用多种教学方法进行探索与实践。

3 学生能力培养目标

依循OBE 理念并参考中国工程教育认证标准,北京邮电大学制定了数据科学与大数据技术专业学生的毕业要求,共包括12 个方面。NoSQL 数据库技术课程主要需要完成课程相关工程知识能力、问题分析能力、解决方案设计与实现能力3 方面培养目标,并具体涉及4 个毕业要求指标点。对应各个指标点设计了以下课程教学目标:

(1)掌握NoSQL 数据库技术基础知识及原理,培养能够将相关专业知识与原理、工程方法及抽象建模方法综合运用于分析和解决NoSQL 数据库数据存储复杂工程问题的能力,以及能够对解决方案进行比较与综合的能力。

(2)培养能够根据NoSQL 数据库技术领域复杂工程问题的需求描述,运用所学相关技术原理及方法进行分析,建立用于解决问题的图类、文档类、键值类、列族类等数据存储抽象模型的能力。

(3)培养能够针对已建立的NoSQL 数据库技术领域复杂工程问题的抽象模型,论证模型的合理性,并通过文献研究对改进的可能性进行分析,寻求可替代的解决方案,获得有效结论的能力。

(4)培养学生了解NoSQL 数据库数据存储应用系统设计开发一般流程,能够基于NoSQL 数据库技术进行系统数据存储建模设计与数据操作开发的能力。

4 课程建设探索与实践

4.1 学习路径探索

在北京邮电大学数据科学与大数据技术专业培养方案中,学生通过学习数据科学导论、数据库系统原理、大数据技术基础课程等先修课程,已对数据科学、大数据处理技术及关系型数据库技术有了整体认知,并对NoSQL 数据库相关概念有了初步理解。NoSQL 数据库技术课程内容学习路径以学生能力培养目标为核心,深入探讨NoSQL 数据库与传统关系型数据库的区别,以及与云计算、区块链的区别与联系,并结合应用场景重点研究主流的四大类NoSQL 数据库学习路线,设计了8 个知识模块共计12 章内容。具体学时计划如图1所示。

Fig.1 Curriculum knowledge module design and class hours arrangement图1 课程知识模块设计及课时安排

学生在学习时,通过第1 章先对NoSQL 数据库技术有个整体认识,特别是常用的最终一致性保障算法;第2-9章每两章为一个模块,分别先掌握某类数据库的基础理论与共性知识,再具体学习某一种数据库的数据存储模型特点与设计方法、集群架构及数据操作管理等细节知识,并通过实践环节进一步加强对理论知识的理解,培养方案设计与实现能力;第10 章学习基于Python、Java 语言的4 类数据库编程访问技术;第11 章主要基于时序数据库、RDF 存储、搜索引擎了解其他类型的NoSQL 数据库技术;第12 章简要介绍区块链存储关键技术。

区块链本质上是一个去中心化的数据库,也是分布式数据存储、共识机制、加密算法、点对点传输等计算机技术的一种新型综合应用模式,可用于验证记录信息的真实性与有效性,在各个领域备受关注。习近平主席在主持中央政治局第十八次集体学习时提出把区块链作为我国核心技术自主创新的重要突破口,但目前还缺乏独立的课程体系以满足迫切的区块链研发人才需求。本专业为更好地满足国家双创型人才培养需求,特别设计了该模块,让学生学习了解区块链相关核心概念、关键技术类型及NoSQL数据库技术在其中发挥的作用。

4.2 混合式教学方法探索

本课程一方面借鉴BOPPPS 模式,在6 个教学环节中,导言(Bridge-in)环节先用思维导图及设问方式吸引学生注意力,激发学生的好奇心及学习兴趣,并明确学习目标(Objective/Outcome);前测(Pre-assessment)环节通过互动沟通了解学生先修课程知识的掌握情况;授课环节采用参与式学习(Participatory Learning)方法及时反馈学生是否已理解难点问题;后测(Post-assessment)环节要求学生及时完成各个章节客观题、主观设计与实践类作业,通过作业及时收集学生学习成效数据;总结(Summary)环节讲解学生作业中存在的突出问题,进一步巩固学习成效。同时,课堂主要采用以下方法达成学生能力培养目标:

(1)理论与实践相结合。与其他课程不同,本文并没有单独将实践部分割裂出来开设设计类课程,而是采用理论与实践并重的方式,对应4 类主流NoSQL 数据库教学模块,每个模块都设计了实践环节,分别基于图类、文档类、键值类、列族类数据存储需求,要求学生在学习相关理论与技术知识基础上,能够灵活运用相关知识进行复杂问题分析,完成存储模型抽象设计,并通过实践验证与优化方案,在理解NoSQL 数据库应用场景基础上掌握基于Python访问4 种数据库的技术方法,为大四阶段Web 开发技术课程学习,以及完成基于NoSQL 数据库进行系统方案设计与实现类毕业设计任务打好基础。

(2)开放式问题分析设计作业。依据OBE 理念,将学生掌握内容的方式从解决有固定答案问题的能力拓展到解决开放问题的能力,平时分析设计题作业没有标准答案,在满足需求的前提下允许学生按照个人风格进行创新性设计。学生针对不同种类NoSQL 数据库存储需求描述,如直接观察大众点评系统网页中呈现的数据并设计其背后的文档数据存储模型,学生可充分发挥自己的创新性思维提出存储方案,并在实践环节对自己设计的方案作进一步验证与优化。

(3)分组研学。学生在学习Neo4j、MongoDB、Redis、Cassandra 4 种NoSQL 数据库技术时,每种数据库技术教学模块虽然内容不同,但学习路径相近。在讲解第11、12 章内容的基础上,会安排学生按各自的兴趣分组自主选题进行调研学习。学生在一定范围内可选择一种国内外优秀的NoSQL 数据库技术,按照调研学习路径模板要求撰写技术分析评价总结报告,该方法可有效培养学生的自主学习能力、沟通协作能力、技术方案综合分析比较能力及技术更新拓展能力。

(4)自定步调的学习。2020学年整个春季学期及2021学年春季学期前三周处于疫情阶段,学生在家主要通过线上方式学习。充分考虑每个学生的学习能力、网络质量、经济条件及学习环境等主客观因素的差异,借鉴SPOCs 教学理念,为学生录制了教学视频。学生可以自定步调,更加弹性地制定个性化的学习计划。其可选择性地针对自己的重难点问题,采用视频快播、慢放或反复研习等方式达成每周学习目标。该方法可使不同学习能力的学生在不同时间、通过多种途径和方式达到同一目标,一定程度上也能缓解疫情带来的学习焦虑问题。

(5)多渠道答疑。通过建立课程QQ 群及时分享学习资源并为学生答疑。课程各个章节作业通过雨课堂平台发布,教师可在系统中对每位学生的作业进行评阅并反馈问题,学生手机终端可随时收阅教师的作业点评。学生也可在课间面对面地与教师进行沟通交流,或者通过邮件方式答疑。

4.3 能力递进案例设计探索

CAP 理论是不同类型NoSQL 数据库技术的理论基础,分别指一致性、可用性、分区容错性或容忍性,不同类型NoSQL 数据库的大数据存储一般采用横向可扩展的集群架构,基于多副本机制及多副本最终一致性算法保障大数据存储的分区容忍性和高可用性。课程重点学习Raft、Quorum 的NWR 策略等最终一致性管理常用算法基础理论知识。4 个教学模块参考db-engines 数据库排名网站,选择当前领先的4 种数据库进行深入迭代式学习,使学生的相关能力螺旋式递进提高。在每个教学模块的最后实践环节中,学生通过实际应用场景案例提升问题分析、模型抽象设计及知识运用能力。教学模块知识要点及实践内容如表1所示。

Table 1 Key knowledge and practical content of teaching module表1 教学模块知识要点及实践内容

4 个教学模块中知识点较多,结合应用场景部分,实践教学案例设计思路如下:

(1)Neo4j 数据库。面向某个应用领域,如教育领域基于大学中课程、学院、专业、教师、选课等日常活动,引导学生抽象出需求描述中的节点标签、关系类型及其属性等图数据库建模要素,形式化表示成对应的属性图模型,并基于所设计的模型完成图数据库实践任务。

(2)MongoDB 文档数据库。直接以某互联网系统平台上呈现的电影、影评、作者、评分等数据,引导学生进行问题分析,灵活运用嵌套文档、大文档分解的思路设计树型结构集合模型,领悟相同集合中不同文档“大同小异”的设计特点。即不同文档在大多数字段相同的基础上,部分字段可根据业务需求进行灵活扩展与差异性设计。

(3)Redis 键值数据库。Redis 数据库提供的数据存储结构分别适用于不同应用问题,以用户列表、产品销量排行、产品HASH 键值结构存储为例,通过将对应关系型数据库一行产品的多个列键值对设计成分散的多个字符串类型键值,以及通过键名称相互有联系的多个字符串类型键值或一个综合的Hash 键值,比较不同方案的差异,让学生深入掌握键值数据存储操作的特点,领悟键名称中哈希键标签设计与集群中slot之间的映射关系。

(4)Cassandra 列族数据库。Cassandra 数据库中CQL数据操作管理语言与SQL 语法比较相似,容易让学生轻视两者的差异,特别是主键设计。Cassandra 数据库中表的主键可包含多列,第一部分是分区列,其他列为聚集列。聚集列可用于相同分区内数据的排序,但排序操作比较受限。通过先给学生一个基本模型,再给出一系列实践操作需求,表面看起来很普通,如果放在关系型数据库中很容易实现,但在Cassandra 数据库中实现时会前后冲突。让学生通过实践发现问题,训练其经过主动探索找到解决方案,然后引入物化视图的概念,探讨优化模型的设计解决方案,进一步基于所设计的模型进行应用实践。

5 探索成效与持续改进

始终围绕如何达成毕业要求的人才能力培养目标问题,针对教学内容、教学方法及评价方法进行两年的探索实践。学生学习效果评价中第一学年的教学效果量化评价如图2 所示,学生的反馈普遍积极正面,评价课程内容组织思路清晰,通过学习使个人能力得到了很好的锻炼和提高,收获较多,大大提升了专业兴趣等。第二学年在期末考试前对学生学习效果开展问卷调查,大部分学生反馈能力得到提高、很有收获,但有部分学生反馈不同类型NoSQL 数据库的数据差异较大,学习负担有些重,希望期末以大作业方式进行考察。但这也是本门课程的挑战所在,作为专业核心课程,需要学生能够主动面对挑战,熟练掌握课程重点知识内容。

Fig.2 Feedback on the first course teaching effect in the 2020 school year图2 2020学年首次课程教学实践效果反馈

总之,通过NoSQL 数据库技术课程教学的探索与实践,进一步明确了本专业通过科学、合理、开放性地设计教学模块及教学内容,采用适合的教学方法和评价方式达成了契合社会需求的能力培养目标。同时,NoSQL 数据库技术作为新专业开设的新课程,涉及的新技术较多且技术发展迅速,授课教师需要与时俱进地对课程教学内容、教学方法进行改进。根据学校教学督导专家及学生们的反馈,后续会考虑将原来部分课堂讲授内容的基础知识放到课外由学生自主学习完成,课堂将采用更丰富的应用实例,利用互动研讨、翻转课堂等方式给学生更多展示能力的机会,并将学生能力展示纳入课程考评体系。

6 结语

NoSQL 数据库技术是大数据存储的关键技术。基于OBE 理念,依据北京邮电大学数据科学与大数据技术专业培养方案对专业基础核心课程“NoSQL 数据库技术”的建设内容进行初步探索与实践。围绕学生毕业要求能力培养目标,提出由8 个知识模块构成的内容学习路径,配套的教材已在北京邮电大学出版社出版,也是本专业的系列教材之一。课程将理论教学与实践有效结合,注重培养学生的问题分析、存储建模、方案设计能力及知识应用实践能力。教学实践结果表明,该教学方案具有创新性,而且合理、可行,后续还需进一步结合NoSQL 数据库应用场景丰富教学案例,并充分利用学校智慧教室提供的先进互动技术手段持续改进教学方法。

猜你喜欢

键值区块数据库
区块链:一个改变未来的幽灵
非请勿进 为注册表的重要键值上把“锁”
区块链:主要角色和衍生应用
区块链+媒体业的N种可能
读懂区块链
一键直达 Windows 10注册表编辑高招
注册表值被删除导致文件夹选项成空白
“扫除”技巧之清除恶意程序