资源描述
NoSQL数据库原理与应用
(含实验)
教 学 大 纲
(2018版)
2018年10月
前 言
一、大纲编写依据
NoSQL泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
本课程系统全面地介绍NoSQL数据库系统的基本原理和实现技术,充分反映该领域的最新研究成果。主要内容包括:NoSQL数据库所用的基本原理、结构特点、重要的算法,及部分系统的实际实现技巧等。
二、课程目的
1、知识目标
掌握NoSQL数据库系统的概念、结构、功能;掌握NoSQL数据库系统设计的原理、方法和技术;掌握NoSQL数据库的优化、可靠性、安全性等知识;掌握设计NoSQL数据库系统的方法,为学生后继课程及实践打下基础。
2、能力目标
(1) 实践能力
通过本课程的学习,努力培养学生良好的NoSQL数据库程序设计风格和严密的逻辑思维能力,提高NoSQL数据库程序设计与实现能力、创新思维和创新能力。为后续课程的学习和今后研制、开发各种计算机软件打下坚实的基础。
(2) 创新能力
通过使用NoSQL数据库语言进行数据库程序设计,从编程能力、软件开发能力等方面,使学生具备一定的NoSQL数据库开发的能力。
三、教学方法
1、课堂教学
(1) 讲授
本课程的教学内容以讲授为主,讲授的主要内容有NoSQL数据库的基本概念、基本原理、NoSQL数据库的分类、Hbase的基本原理、Hbase的基本组件、Hbase的管理与编程、MongoDB基础、MongoDB进阶、其他非关系型数据库技术。根据教学大纲的要求,突出重点和难点。
(2) 教师指导下的学生自学
指导学生自主学习其他非关系型数据库的程序设计技术。教师通过给出一些相关的实例程序帮助学生理解和进行程序设计,并布置相应的上机习题让学生进行练习。
(3) 其它教学方法
采用多媒体辅助教学手段,结合传统教学方法,解决好教学内容多、信息量大与学时少的矛盾;充分利用学校的图书馆的资源优势,查阅与课程相关的资料;通过布置课程设计来提高学生的综合处理问题的能力和软件开发的能力。
2、课外学习
作业1:课外练习。
作业2:上机实验报告。
四、适用对象
计算机科学、软件工程及信息安全专业。
五、先修课程及后续课程(或相关课程)
(一)先修课程:《数据库原理》;
(二)后续课程:《NoSQL数据库程序开发》
六、课程性质
必修。
七、总课时及各章的分配
授课总课时数为64学时,各章的学时具体安排如下:
章 节
教 学 内 容
理论授课学时
实验课时
第一章
绪论4
4
0
第二章
认识HBase4
4
0
第三章
HBase基本原理4
4
4
第四章
HBase管理与编程4
4
0
第五章
MongoDB基础4
4
10
第六章
MongoDB进阶4
4
0
第七章
其他非关系型数据库简介2
2
0
第八章
NewSQL数据库2
2
0
第九章
NoSQL应用案例实战(综合实验)2
2
18
第十章
总结2
2
0
合计
32
32
八、使用教材及主要参考书目
(一)选用教材
自编。
(二) 主要参考书目
1.厄兹叙 (M.Tamer Ozsu) / Patrick Valduriez:《NoSQL数据库系统原理》(第3版),清华大学出版社,2014.5。
九、考核方式及成绩评定标准
1、考核内容与形式
(1) 知识类考核
本课程采用闭卷考试形式。重点考试内容:NoSQL数据库的基本原理、Hbase的基本操作、mongodb的基本操作。
(2) 能力类考核
利用学生平时作业、课堂提问与讨论考查学生的学习能力,理解和掌握相关知识的程度以及实际应用能力。
利用课程设计考查学生的实践动手能力、软件开发能力,促进学生自主性学习和研究性学习,启迪学生的创新思维。
2、课程成绩构成
(1) 平时成绩占百分比
平时成绩(包括平时考勤、作业情况和上机实验情况)占总分40%
(2) 考试成绩占百分比
期末考试成绩占总分60%
第一章 绪论
第一节 数据库原理
理解关系型数据库的基本原理。
第二节 NoSQL数据库的数据管理
了解NoSQL数据库的系统任务、数据处理。理解CAP理论。
第三节 ACID与BASE
理解关系型数据的ACID原则和非关系型数据库的BASE原则。
第四节 NoSQL分类
了解基本的NoSQL数据库分类。
第二章 认识HBase
第一节 HBase 简介
了解HBase的发展过程、特性。
第二节 HDFS原理
理解HDFS的基本架构、工作原理、HDFS的分块机制和副本机制、读写特点、HDFS的特点和适用场景等。
第三节 HBase的组件
了解HBase的基本组件及常用功能。
第四节 HBase的使用场景及案例
重点掌握存HBase的常用场景。
第三章 HBase基本原理式
第一节 HBase数据模型
重点掌握HBase的数据模型及相关概念。
第二节 HBase模式设计
了解HBase表类型设计、复合键设计 、列族定义。
第三节 HBase工作原理
重点掌握HBase的Region定位、数据存储与读取(store,memstore,storeFile等的定义,以及读写工作流程)以及WAL机制(预写机制)。
第四章 HBase管理与编程
第一节 HBase Region管理
重点掌握Region拆分和Region合并。
第二节 HBase集群管理
重点掌握运维管理、数据管理、故障处理。
第三节 HBase编程方法
重点掌握基于Java的编程方法、基于Thrift协议的编程方法、基于MapReduceNoSQL处理、结合Hive的数据处理。
第五章 MongoDB基础
第一节 文档数据库基本概念
重点掌握文档、集合、数据库、数据类型等相关概念。
第二节 MongoDB基本操作
重点掌握插入并保存文档、删除文档 、更新文档等操作
第三节 MongoDB查询
重点掌握find操作、查询条件、特定类型查询、游标。
第四节 索引
了解索引、唯一索引、索引管理。
第六章 MongoDB进阶
第一节 核心组件
了解mongodb的核心组件。
第二节 分片机制
重点掌握分片概念、分片的工作原理 、分片管理次。
第三节 复制
重点掌握复制的目标、复制基础、实现复制集。
第七章 其他非关系型数据库简介
第一节 内存数据库
了解非关系型数据库Memcache 、Redis。
第二节 图数据库
了解非关系型数据库Neo4J。
第八章 NewSQL数据库
第一节 TiDB数据库
了解TiDB架构、TiDB的存储机制、TiDB的查询机制。
第二节 OceanBase
了解OceanBase特性 、OceanBase系统架构。
第九章 NoSQL应用案例实战(综合实验)
重点掌握NoSQL的综合实验。
附:
《NoSQL数据库原理与应用》课程实验教学大纲
课程名称:NoSQL数据库原理与应用 实验学时:32
适用专业:计算机科学、软件工程、信息安全 课程性质:必修
一、课程实验简介
所有实验都是与《NoSQL数据库原理与应用 》课程内容相配套的,共分为三个部分:第一部分HBase的基本实验;第二部分为mongodb的基本实验;第三部分为NoSQL的综合实验。
二、教学目的
“NoSQL数据库原理与应用 ”是计算机各专业一门重要的专业核心课,是必修的核心课程之一,是一门实践性很强的课程。在学习NoSQL数据库原理与应用的过程中,只有多阅读程序、多编写程序、多上机,才能真正掌握NoSQL数据库的方法和技巧。
三、考核方式及成绩评定标准
平时上机的考勤占总分的10%,课程设计占总分的10% 。
四、实验指导书及主要参考书
1. 厄兹叙 (M.Tamer Ozsu) / Patrick Valduriez:《NoSQL数据库系统原理》(第3版),清华大学出版社,2014.5。。
五、实验项目
实验项目一览表
序号
实验项目名称
实验类型
实验学时
必做/选做
实验一
HBase的安装与部署
演示性
0
选做
实验二
HBase的基本操作
验证性
4
必做
实验三
MongoDB数据库的安装与卸载
演示性
0
选做
实验四
MongoDB数据库的基本概念及数据库基本操作
验证性
2
必做
实验五
MongoDB数据库的文档基本操作1
验证性
4
必做
实验六
MongoDB数据库的文档基本操作2
验证性
4
必做
实验七
MongoDB数据库的副本集操作
演示性
0
选做
实验八
MongoDB数据库的分片技术
演示性
0
选做
实验九
综合实验
综合性
18
必做
合计
32
实验类型:演示性、验证性、综合性、设计性、其它
实验一、HBase的安装与部署(0课时)
实验类型:演示性
实验目的:
实现HBase的安装和部署。
实验内容:
在linux环境下完成HBase的安装和部署工作。
实验环境:
实验环境:
(1) OS:CentOS-6.7
(2) JDK:v1.8、Hadoop:v2.7.6、Hbase:v1.2.6
实验二、HBase的基本操作(4课时)
实验类型: 验证性
实验目的:
掌握HBase程序的基本使用方法,为以后的实验打下基础。
实验内容:
使用HBase命令完成Hbase 创建数据库表及删除数据库表工作;掌握Hbase 对数据库表数据的增、删、改、查等命令
实验环境:
实验环境:
OS:CentOS-6.7
JDK:v1.8、Hadoop:v2.7.6、Hbase:v1.2.6
实验三、MongoDB数据库的安装与卸载(0课时)
实验类型:验证性
实验目的:
完成完成MongoDB的安装、卸载。
实验内容:
在linux环境下完成mongodb的安装和卸载工作。
实验环境:
OS:Ubuntu16.04
MongoDB:v3.6。
实验四、MongoDB数据库的基本概念及数据库基本操作(4课时)
实验类型:验证性
实验目的:
掌握mongodb的基本用法,为后面的复杂的程序设计打下基础。
实验内容:
使用mongodb命令完成数据库的创建和删除工作。
实验环境:
OS:Ubuntu16.04
MongoDB:v3.6 from I9000。
实验五、MongoDB数据库的文档基本操作1(4课时)
实验类型:验证性
实验目的:
掌握MongoDB CRUD 基本操作。
实验内容:
使用mongodb基本语法命令完成表的创建、删除;表的增删改查工作。
实验环境:
OS:Ubuntu16.04
MongoDB:v3.6 from I9000。
实验六、MongoDB数据库的文档基本操作2(2课时)
实验类型:验证性
实验目的:
掌握MongoDB CRUD 基本操作。
实验内容:
使用mongodb基本语法命令完成表的增删改查工作;表的聚合操作。
实验环境:
OS:Ubuntu16.04
MongoDB:v3.6 from I9000。
实验七、MongoDB数据库的副本集操作(0课时)
实验类型:演示性
实验目的:
完成MongoDB 副本集复制
实验内容:
完成MongoDB 副本集复制。
实验环境:
OS:Ubuntu16.04
MongoDB:v3.6 from I9000
DBeaver:v4.1.2。
实验八、MongoDB数据库的分片技术(2课时)
实验类型:演示性
实验目的:
(1) 掌握MongoDB 分片。
实验内容:
使用mongodb命令完成分片功能。
实验环境:
OS:Ubuntu16.04
MongoDB:v3.6 from I9000
DBeaver:v4.1.2。
实验九、综合实验(20课时)
实验类型:综合性
实验目的:
(1) 掌握MongoDB 增删改查。
(2) 掌握MongoDB 聚合功能。
(3) 掌握python操作MongoDB数据库
实验内容:
使用python操作mongodb数据库,并完成增删改查和聚合操作。
实验环境:
OS:Ubuntu16.04
MongoDB:v3.6 from I9000
DBeaver:v4.1.2。
展开阅读全文