《NoSQL数据库技术与应用》
教学设计
课程名称:NoSQL数据库技术与应用
授课年级: 20xx年级
授课学期: 20xx学年第一学期
教师姓名: 某某老师
2020年5月6日
课题
名称 第3章 MongoDB数据库操作 计划学时 14课时
内容
分析 如果说理论知识是宝库,那么开启这个宝库的钥匙是实践操作。如果想要深入学习和掌握MongoDB数据库,除了学习MongoDB数据库的理论知识之外,还得掌握MongoDB数据库的实践操作。本章将针对MongoDB数据库操作的相关知识进行详细讲解。
教学目标及基本要求 1、掌握MongoDB的部署
2、熟悉数据库和集合操作
3、掌握文档的插入、更新、删除以及查询操作
4、掌握使用Java操作MongoDB
5、掌握使用Python操作MongoDB
6、掌握使用Robo 3T操作MongoDB
教学
重点 1、基于Linux平台
2、数据库操作
3、集合操作
4、文档的插入、更新于删除操作
5、文档简单查询
6、聚合操作
7、使用索引优化查询
8、使用Java操作MongoDB
9、使用python操作MongoDB
10、使用Robo 3T操作MongoDB
11、安全与访问控制
教学
难点 1、文档简单查询
2、聚合操作
3、使用索引优化查询
4、使用Java操作MongoDB
5、使用Python操作MongoDB
6、安全与访问控制
教学
方式 教师课堂教学要以PPT讲授为主,并结合多媒体进行教学
教
学
过
程
第一课时
(基于Windows平台、基于Linux平台)
一、情景导入
- 教师通过举例,引出MongoDB的部署
MongoDB是一个开源、跨平台的数据库,它可以运行在Windows和Linux等多个平台上,为我们提供数据库服务。不同的操作系统平台,部署MongoDB也会有所不同。本节课,我们将详细讲解MongoDB数据库基于Windows平台和Linux平台的部署。 - 明确学习目标
(1)了解基于Windows平台
(2)掌握基于Linux平台
二、进行重点知识讲解
1.基于Windows平台
教师可以参考课件以讲演法的方式来讲述基于Windows平台部署MongoDB。
(1)讲解MongoDB安装包32位与64位的区别。
(2)讲解并演示如何在MongoDB官网下载Windows平台的MongoDB安装包。
(3)演示MongoDB在Windows下的安装方式,对MongoDB目录下的内容做简要讲解。
(4)讲解并演示如何在Windows下通过命令行参数和配置文件的方式启动MongoDB。
2.基于Linux平台
(1)讲解并演示如何在Linux下创建MongoDB管理用户user_mongo。
(2)讲解并演示如何在Linux下授权普通用户user_mongo。
(3)讲解并演示如何在MongoDB官网下载Linux平台的MongoDB安装包。
(4)讲解并演示如何修改MongoDB安装包用户权限并安装MongoDB。
(5)讲解并演示如何配置MongoDB。
(6)讲解并演示如何在Linux下通过命令行参数和配置文件的方式启动MongoDB。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述Linux平台下部署MongoDB的流程。
第二课时
(数据库操作、集合操作)
一、回顾上节课内容,讲述MongoDB数据库和集合的操作
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
MongoDB提供了一个交互式JavaScript接口,即mongo shell。mongo shell主要用于操作MongoDB,包括数据库、集合以及文档。本节课,我们将详细讲解使用mongo shell对MongoDB数据库和集合进行操作。
3.明确学习目标
(1)熟悉数据库新建、删除和查询操作
(2)熟悉集合创建、删除操作
二、进行重点知识的讲解
1. 数据库操作
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB数据库的操作。
(1)讲解并操作如何启动Linux下的MongoDB并进入mongo shell。
(2)讲解新建数据库语法并操作新建数据库。
(3)讲解并操作查看所有数据库和当前数据库。
(4)讲解并操作删除数据库
2. 集合操作
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB集合的操作。
(1)讲解并操作创建显式集合和隐式集合
(2)讲解并操作删除集合
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述数据库操作和集合操作的语法。
第三课时
(文档的插入、更新与删除操作)
一、回顾上节课内容,讲述文档的插入、更新与删除操作
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
上一节课,我们使用mongo shell对数据库和集合进行了基本的操作。本节课,我们将详细讲解使用mongo shell对文档进行插入、更新以及删除操作。
3.明确学习目标
(1)掌握文档的插入
(2)掌握文档的更新
(3)掌握文档的删除
二、进行重点知识的讲解
- 文档的插入
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB文档的插入操作。
(1)讲解单文档和多文档插入的语法。
(2)操作单/多文档插入。 - 文档的更新
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB文档的更新操作。
(1)讲解文档更新的语法。
(2)操作更新文档内容。 - 文档的删除
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB文档的删除操作。
(1)讲解单个和所有文档删除的语法。
(2)操作删除单/所有文档。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述文档插入、更新和删除的语法。
第四课时
(文档简单查询)
一、回顾上节课内容,讲述文档简单查询
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
文档的简单查询包括查询所有文档、按条件查询文档以及按特定类型查询文档等多种类型。本节课,我们将详细讲解查询所有文档、按条件查询文档以及按特定类型查询文档的语法格式和操作步骤。
3.明确学习目标
(1)熟悉查询所有文档
(2)掌握按条件查询文档
(3)掌握按特定类型查询文档
二、进行重点知识的讲解
- 查询所有文档
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB查询所有文档操作。
(1)讲解查询所有文档及格式化输出的语法。
(2)操作查询所有文档及格式化输出。 - 按条件查询文档
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB按条件查询操作。
(1)讲解逻辑操作符查询文档和比较操作符查询文档的语法。
(2)操作逻辑操作符和比较操作符查询文档。 - 按特定类型查询文档
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB按条件查询操作。
(1)讲解Null类型查询、正则表达式查询、嵌套文档查询之精确查询和嵌套文档查询之点查询的语法。
(2)操作Null类型查询、正则表达式查询、嵌套文档查询之精确查询和嵌套文档查询之点查询
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述条件查询和特定类型查询的语法。
第五、六课时
(聚合操作)
一、回顾上节课内容,讲述聚合操作
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
MongDB的聚合操作包括聚合管道操作和Map-Reduce操作等。其中,聚合管道操作是将文档在一个管道处理完毕后,把处理的结果传递给下一个管道进行再次处理;Map-Reduce操作是将集合中的批量文档进行分解处理,然后将处理后的各个结果进行合并输出。本节课,将针对聚合管道操作和Map-Reduce操作进行详细讲解。
3.明确学习目标
(1)掌握聚合管道操作
(2)熟悉Map-Reduce操作
二、进行重点知识的讲解
- 聚合管道操作
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB聚合管道操作。
(1)讲解常见管道操作符。
(2)讲解通过常见管道操作符命令来查询文档的语法。
(3)操作通过常见管道操作符命令来查询文档。
(4)讲解常见管道表达式。
(5)讲解执行常见管道表达式命令来查询文档的语法。
(6)操作执行常见管道表达式命令来查询文档。 - Map-Reduce操作
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB中Map-Reduce操作。
(1)讲解MongoDB中的Mapr-Reduce及操作流程。
(2)讲解MongoDB中使用Map-Reduce的语法。
(3)操作MongoDB中的Map-Reduce查询文档。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述聚合管道操作的表达式和语法以及Map-Reduce操作流程。
第七课时
(使用索引优化查询)
一、回顾上节课内容,讲述使用索引优化查询
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
在应用系统中,尤其在联机事务处理系统中,对数据查询及处理的速度已成为衡量应用系统成败的标准。而采用索引来加快查询数据的速度也成为广大数据库用户所接受的优化方法。在良好的数据库设计基础上,有效地使用索引是取得高性能的基础。本节课将针对MongoDB的索引操作进行详细讲解。
3.明确学习目标
(1)掌握索引相关概念
(2)掌握索引操作
二、进行重点知识的讲解
- 索引相关概念
教师可以参考课件讲解MongoDB索引相关概念。
(1)讲解MongoDB数据库中索引概念。
(2)讲解MongoDB数据库中索引的六种类型,包括单字段索引、复合索引、多键索引、地理空间索引、全文本索引以及哈希索引。 - 索引操作
教师可以参考课件以讲演法的方式来讲述基于Linux平台MongoDB索引操作。
(1)讲解查看索引语法并实际操作。
(2)讲解查看索引大小语法并实际操作。
(3)讲解创建索引语法并实际操作。
(4)讲解删除单/多个索引的语法并实际操作。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述索引类型及操作索引的语法。
第七、八课时
(使用Java操作MongoDB)
一、回顾上节课内容,讲述使用Java操作MongoDB
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
前几节课我们讲解通过mongo shell操作MongoDB,本节课讲详细讲解通过Java语言操作MongoDB,目前Java的主流开发工具主要有两种:分别是Eclipse工具和IDEA工具,我们可以在这两个开发工具中编写Java代码来操作MongoDB。由于IDEA工具可以自动识别代码错误和进行简单的修复、以及IDEA工具内置了很多优秀的插件,所以现在大多数的Java开发程序员都会选择IDEA作为开发Java的工具。
3.明确学习目标
(1)熟悉搭建Java开发环境
(2)掌握基于Java API操作MongoDB
二、进行重点知识的讲解
- 搭建Java开发环境
教师可以参考课件以讲演法的方式来讲述基于Windows平台搭建Java开发环境。
(1)JDK的下载安装。
(2)Maven的下载安装。
(3)IDEA工具的下载安装,配置IDEA。 - 基于Java API操作MongoDB
教师可以参考课件以讲演法的方式来讲述在IDEA中基于Java API操作MongoDB。
(1)创建Maven项目。
(2)导入项目依赖并创建资源文件。
(3)创建Java工具类,配置MongoDB的相关参数。
(4)创建Java测试类,连接MongoDB数据库。
(5)在Java测试类中创建方法getDBs(),实现创建数据库操作。
(6)在Java测试类中创建方法getCollection(),实现查看数据库中集合操作。
(7)在Java测试类中创建方法createCollection(),实现创建集合操作。
(8)在Java测试类中创建方法dropCollection(),实现删除集合操作。
(9)在Java测试类中创建方法findDocument(),实现查看集合中文档操作。
(10)在Java测试类中创建方法insertOneDocument(),实现向集合中插入文档。
(11)在Java测试类中创建方法updateDocument(),实现更新集合中的文档。
(12)在Java测试类中创建方法deleteDocument(),实现删除集合中的文档。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述搭建Java开发环境流程,基于Java API操作MongoDB的流程以及操作MongoDB的常用的Java API。
第九、十课时
(使用Python操作MongoDB)
一、回顾上节课内容,讲述使用Python操作MongoDB
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
上节课详细讲解通过Java语言操作MongoDB,本节课详细讲解另一个主流语言Python操作MongoDB,目前Python的主流开发工具主要有三种:分别是Sublinme Text、PyCharm以及Eclipse工具,我们可以在这三个开发工具中编写python代码来操作MongoDB。由于PyCharm可以智能代码补全、直观项目导航、错误检查和修复、遵循PEP8规范的代码质量检查以及智能重构等优势,所以现在大多数的Java开发程序员都会选择PyCharm作为开发Python的工具。
3.明确学习目标
(1)熟悉搭建Python开发环境
(2)掌握基于Python API操作MongoDB
二、进行重点知识的讲解
- 搭建Python开发环境
教师可以参考课件以讲演法的方式来讲述基于Windows平台搭建Python开发环境。
(1)Python的下载安装。
(2)PyCharm工具的下载安装。 - 基于Python API操作MongoDB
教师可以参考课件以讲演法的方式来讲述在PyCharm中基于Pyhton API操作MongoDB。
(1)创建Python项目。
(2)创建Python文件TestMongoDB.py,连接MongoDB数据库。
(3)在文件TestMongoDB.py中创建方法getDBs(),实现获取MongoDB包含的数据库操作。
(4)在文件TestMongoDB.py中创建方法getColl (),实现查看数据库中集合操作。
(5)在文件TestMongoDB.py中创建方法createColl(),实现创建集合操作。
(6)在文件TestMongoDB.py中创建方法dropColl(),实现删除集合操作。
(7)在文件TestMongoDB.py中创建方法findDoc(),实现查看集合中文档操作。
(8)在文件TestMongoDB.py中创建方法insertOneDoc(),实现向集合中插入文档。
(9)在文件TestMongoDB.py中创建方法updateDoc(),实现更新集合中的文档。
(10)在文件TestMongoDB.py中创建方法deleteDoc(),实现删除集合中的文档。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述搭建Python开发环境流程,基于Pyhton API操作MongoDB的流程以及操作MongoDB的常用的Python API。
第十一课时
(使用Robo 3T操作MongoDB)
一、回顾上节课内容,讲述使用Robo 3T操作MongoDB
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
工欲善其事,必先利其器。当我们使用MongoDB数据库时,通常需要各种工具的支持来提高效率。而Robo 3T是一个跨平台的MongoDB GUI客户端管理工具,它以图形化的方式显示操作界面,让用户可以对MongoDB进行可视化操作,并且支持Windows、MacOS、Linux系统,本节课我们将以Windows系统为例,详细讲解如何使用Robo 3T操作MongoDB。
3.明确学习目标
(1)熟悉Robo 3T工具的下载安装。
(2)掌握基于Robo 3T操作MongoDB
二、进行重点知识的讲解
- Robo 3T工具的下载安装
教师可以参考课件以讲演法的方式来讲述基于Windows平台下载和安装Robo 3T工具。 - 基于Robo 3T操作MongoDB
教师可以参考课件以讲演法的方式来讲述在Windows中基于Robo 3T操作MongoDB。
(1)通过Robo 3T工具连接MongoDB。
(2)数据库的创建与删除。
(3)集合的创建与删除。
(4)文档的插入、删除、更新和查询。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述如何利用Robo 3T工具连接并操作MongoDB。
第十二课时
(安全与访问控制)
一、回顾上节课内容,讲述安全与访问控制
1.对上节课留的作业进行答疑
2.回顾上节课内容,引出本节课的主题
默认情况下,MongoDB服务启动运行时是没有启用用户访问权限控制的,也就是说,在MongoDB本机服务器上都可以随意连接MongoDB,从而进行各种操作,并且MongoDB不会对连接的客户端进行用户验证,因此可以想象这是非常危险的。为了提高MongoDB数据库中数据的安全,我们需要开启用户访问控制(即用户验证)。本节课,我们将详细讲解如何开启用户访问控制。
3.明确学习目标
(1)掌握用户访问控制
(2)掌握用户管理操作
二、进行重点知识的讲解
- 用户访问控制
教师可以参考课件以讲演法的方式来讲述MongoDB的用户访问控制。
(1)在MongoDB中创建管理员用户。
(2)讲解MongoDB数据库的内置角色及相关权限。
(3)通过配置文件开启用户访问控制,并重启MongoDB使配置生效。
(4)使用Robo 3T工具通过管理员用户连接MongoDB。 - 用户管理操作
教师可以参考课件以讲演法的方式来讲述MongoDB的用户管理操作。
(1)通过管理员用户创建、删除、添加和查看用户。
(2)通过管理员用用户修改用户拥有权限和密码。
三、归纳总结,随堂练习,布置作业
对课堂上讲解的知识点进行总结,让学生叙述用户访问控制的作用,如何配置用户访问权限及MongoDB内置角色及相关权限。
第十三课时
(上机练习)
上机一:在Windows平台部署MongoDB
请按照教材中3.1.1小节的内容,独立完成。
上机二:在Linux平台部署MongoDB
请按照教材中3.1.2小节的内容,独立完成。
第十四课时
(上机练习)
上机一:使用Java操作MongoDB
请按照教材中3.8小节的内容,独立完成。
上机二:使用Robo 3T操作MongoDB
请按照教材中3.9小节的内容,独立完成。
思考题
和习题
教
学
后
记