MongoDB数据库
A.教学目的
通过本知识点的学习,使学生了解MongoDB的特点和应用场景,知道MongoDB和关系数据的区别。掌握MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持。学生学习本知识点后将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。
B.教学内容
【知识与技能】
1. MongoDB的优缺点、应用场景、安装和部署
2. MongoDB的CRUD操作函数使用、MongoDB索引的使用
3. MapReduce操作实现、用户管理、Java对MongoDB的操作支持
【课程思政】
讲解过程中,引入优秀数据库华为GaussDB(for MongoDB)作为具体MongoDB产品。GaussDB(for MongoDB)是一款基于华为自研的计算存储分离架构,兼容MongoDB生态的云原生NoSQL数据库,在华为云高性能、高可用、高可靠、高安全、可弹性伸缩的基础上,提供了一键部署、快速备份恢复、计算存储独立扩容、监控告警等服务能力,其性能优于大部分国内外同类数据库。基于此款产品介绍MongoDB,能提升学生民族自豪感,结合中美芯片事件,说明正因为有一批国内优秀基础软件的崛起,中国数据库市场才没有被国外卡脖子。鼓励学生永攀高峰,成为国内基础软件的开拓者和奠基者,为中华民族的伟大复兴做出自己的贡献。
C.教学思想
1.场景创建及问题引导:展示某个特定场景下,关系数据库数据模式存在的问题。
2.问题分析:在上述需求下,关系数据库如何解决特定问题,MongoDB如何解决该问题。
3.解决问题:介绍MongoDB的主要特点和使用场景。
4.思维拓展:介绍华为GaussDB的主要特点和优缺点,培养学生的民族自豪感。
D.教学资源
1.MOOC https://www.icourse163.org/course/UESTC-1458643166
2.华为云服务器 https://auth.huaweicloud.com/
3.GaussDB 官方社区 http://www.opengauss.org
E.教学重点
1.关系数据库在某些应用场景的缺陷。
2.MongoDB的主要语法和适用场景。
F.教学难点
事务隔离机制及其解决的问题
G.教学方法与工具
1. 问题导向法、情景创造法、案例分析法和探究讨论法
2. SPOC线上学习平台
3. 雨课堂
H.教学设计
1.提出问题(创设情景,导入新课)
【案例1】假设存在一个关系数据库,用来维护词典信息。需要存储的信息包括该英文单词的拼写、发音、词性、词意和衍生词,如单词china,包含以下信息:
China
英 [ˈtʃaɪnə] 美 [ˈtʃaɪnə]
- n. 中国
- adj.中国的
衍生词:
Chinese adj.中国的,中国人的;n.中国人
china adj.瓷器的,瓷制的;n.瓷器
需要如何设计该关系型数据库?
表1:单词表(单词编号,单词拼写)
表2:词音表(单词编号,英音/美英,读音)
表3:词意表(单词编号,词性,词意)
表4:衍生词表(单词编号,衍生词编号)
2.升级问题(创设第二情景)
【案例2】在上述数据库设计模式下,如何查询某个单词的所有信息?
答:以单词编号未连接字段对四个表进行连接,查询出该单词的拼写、发音、词意和衍生词编号;再以衍生词编号为连接字段,与单词表、词意表进行连接,查询出衍生词的单词拼写、词性与词意。
如何查询出所有的无任何衍生词的单词?
MongoDB设计该数据库:
假设集合名为dictionary,通过如下语句存储China单词:
3.分析问题
(1) 什么是MangoDB:
MongoDB是高度可伸缩的操作文档数据库,可在开源版本和商业企业版本中使用,它可以在本地运行或作为托管云服务运行。它的文档数据模型为开发人员提供了极大的灵活性,而其分布式体系结构则提供了很好的可伸缩性。
(2) 分析MangoDB的应用场景:
适用场景:
a) 表结构不明确且数据不断变大:MongoDB是非结构化文档数据库,扩展字段很容易且不会影响原有数据。内容管理或者博客平台等,例如圈子系统,存储用户评论之类的。
b) 更高的写入负载:MongoDB侧重高数据写入的性能,而非事务安全,适合业务系统中有大量“低价值”数据的场景。本身存的就是json格式数据。例如做日志系统。
c) 数据量很大或者将来会变得很大:Mysql单表数据量达到5-10G时会出现明细的性能降级,需要做数据的水平和垂直拆分、库的拆分完成扩展,MongoDB内建了sharding、很多数据分片的特性,容易水平扩展,比较好的适应大数据量增长的需求。
不适用场景:
a) MongoDB不支持事务操作,需要用到事务的应用建议不用MongoDB。
b) MongoDB目前不支持join操作,需要复杂查询的应用也不建议使用MongoDB。
4.拓展延伸(课程思政)
讲解华为数据库GaussDB的发展历程与性能等,培养学生的民族自豪感。
华为的主要用户当以金融银行企业最具有代表性。从信息安全角度,国产数据库对于中国整个行业意义重大。目前,GaussDB数据库已经在工商银行、招商银行广泛使用,能很好地满足金融行业对数据可靠性和数据处理速度的需求。
GaussDB具有高性能、高可用、高安全、易运维和全开放等特性。尽管与Oracle、SQL Server等其他知名国外数据库产品比,GaussDB还很稚嫩,但已经具有了一些自己独有的优势。
l GaussDB产品可以支持X86、ARM、GPU、NPU等异构架构。可以看出,未来的目标市场不只是国产服务器市场,可能还包括未来5G带来更多的计算应用场景。
l GaussDB是业界首个AI-Native(人工智能原生态)数据库,首次将人工智能技术融入分布式数据库的全生命周期,实现自运维、自管理、自调优、故障自诊断和自愈。首创基于深度强化学习的自调优算法,调优性能比业界提升60%以上。
l GaussDB可以完成建立在华为IT架构的底层生态之上,包括网络设备、芯片、操作系统、云计算、人工智能等,这些在华为IT体系内部是高度耦合的。
GaussDB客户案例:
GaussDB在金融、航天等关键领域的应用,对国家的信息安全与数据安全具有重大意义,能够防止西方国家在关键技术领域对中国的卡脖子行为,有利于中国信息产业生态的构建。基于此款产品介绍MongoDB,能提升学生民族自豪感,结合中美芯片事件,说明正因为有一批国内优秀基础软件的崛起,中国数据库市场才没有被国外卡脖子。鼓励学生成为国内基础软件的开拓者和奠基者,为中华民族的伟大复兴做出自己的贡献。
同时,在华为GaussDB发布中有一行文字:向数学致敬、向科学家致敬。前人的积累必将影响我们现在的科技。GaussDB,不仅蕴含着华为对数学和科学的敬畏,也承载着华为对基础软件的坚持和梦想,以及我们中国人对国产数据库乃至信息产业的未来与希望。鼓励学生永攀高峰,学习科学家用于探索的精神。
I. 作业
完成购物场景下MongoDB数据库的设计。