高曙光
摘 要:近年来,随着互联网的深入发展,企业的数据库面临规模日益扩大的海量数据,传统的关系型数据库在性能上的不足逐渐显现,面对这一挑战,互联网领域开始出现了大批针对特定场景,以高性能和使用便利为目的的功能特殊化的数据库产品,这一类数据库被统称为NoSQL。这类数据库近几年发展迅速,企业对相关技术人才的需求也迅速增加,高职院校是培养应用技术人才的主力教育机构,但是在这一技术的应用上几乎没有起步,本文从NoSQL在社会上的应用着手,结合高职院校数据库教学改革,对高职开设NoSQL类数据库课程相关问题进行初步探讨和研究。
关键词:NoSQL;高职;数据库;教学
1 概述
随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求。虽然关系型数据库已经在业界的数据存储方面占据不可动摇的地位,但是其固有的缺点如扩展困难、读写慢、成本高使其在当今时代的某些数据库应用领域力不从心。业界为了解决互联网发展中对数据库的新的要求,推出了各种类型的“NoSQL”数据库。
NoSQL这一概念是由Eric Evans在2009年正式提出,一般被认为是指非关系型的分布式数据库,并且不支持原子性、一致性、隔离性、持久性的数据库设计模式。
总的来说,在设计上,它们非常关注对数据高并发地读写和对海量数据的存储等,与关系型数据库相比,它们在架构和数据模型方面做了一些减少和简化,而在扩展和并发等功能上做了增强。
2 NoSQL的应用和分类
随着大数据时代的到来,现今的计算机体系结构在数据存储方面要求具备庞大的水平擴展性,传统的数据库在解决这一问题上困难重重,许多互联网知名公司只能求助于新兴的NoSQL数据库技术,如Google、Yahoo、Facebook、Twitter、Amazon等都进行了大量的开发工作。而国内的一些知名IT企业,尤其是互联网企业也纷纷采用了一些NoSQL型数据库技术,比如新浪微博就使用了REDIS,淘宝更是开发设计了数据存储系统oceanbase,优酷的在线评论业务则使用MONGODB,运营数据分析及挖掘则使用HBASE。
通过近些年企业对NOSQL数据库的使用,我们发现,NOSQL数据库正在成为数据库领域不可或缺的一部分,它弥补了关系型数据库在某些应用中的不足,所以得到了飞速的发展。根据2014年1月的数据,已经有七种NOSQL类数据库产品跻身数据库的前二十名行列。
NoSQL可以大体上分为4个种类:Key-value、Document-Oriented、Column-Family Databases以及 Graph-Oriented Databases。这些类型的特性如下:
键值(Key-Value)数据库
键值数据库就像在传统语言中使用的哈希表。你可以通过key来添加、查询或者删除数据,鉴于使用主键访问,所以会获得不错的性能及扩展性。
面向文档(Document-Oriented)数据库
面向文档数据库会将数据以文档的形式储存。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。
列存储(Wide Column Store/Column-Family)数据库
列存储数据库将数据储存在列族(column family)中,一个列族存储经常被一起查询的相关数据。
图(Graph-Oriented)数据库
图数据库允许我们将数据以图的方式储存。实体会被作为顶点,而实体之间的关系则会被作为边。
3 NoSQL的特点
NoSQL在使用中体现与传统数据库技术的几个优点:
3.1 灵活的可扩展性
当数据快速增长时,一般的解决方案是使用更大型的服务器来承载增加的负载,达到扩展数据库的目的,这种方法成本较高,实现起来复杂。而使用增加主机数量来减轻负载是成本较低的方案,但在传统数据库中实现起来不是一件容易的事,而这是NoSQL数据库擅长的领域。
3.2 大数据的应用
在过去的十年里,正如交易率发生了翻天覆地的增长一样,需要存储的数据量也发生了急剧地膨胀。为了满足数据量增长的需要,关系型数据库的容量也在日益增加,已经大到技术和成本不能承受的地步。现在,大量的“大数据”可以通过NoSQL系统来处理,它们能够处理的数据量远远超出了最大型的关系型数据库所能处理的极限。
3.3 对数据库管理员要求降低
NoSQL数据库从一开始就是为了降低管理方面的要求而设计的,它采用自动修复,数据分配和简单的数据模型,可以让管理和优化工作要求降低很多。
3.4 成本低
关系型数据库通常需要依靠昂贵的专有服务器和存储系统来进行存储。使用NoSQL,每GB的成本或每秒处理的事务的成本都比使用关系型数据库的成本少得多,可以使企业花费更低的成本来存储和处理更多的数据。
4 NoSQL在高职中的应用
NOSQL在企业的应用时间不太长,而且相应的数据库产品各类繁多,多数没有形成标准,相关的资料书籍也很少,所以影响了它在高职院校的应用,高职院校很少对NOSQL进行研究,也没有学校开设相关的系统课程。NOSQL研究和教学在高职院校发展基本为零,原因有以下几点:
4.1 教师对NOSQL的认知和掌握能力有限
长期以来,普通高校计算机专业的数据库课程以关系数据库为讲授内容。教师认知能力有限,基本很少接触NOSQL方面的内容,研究和学习掌握NOSQL有较大困难。
在讲授数据库课程时,因为关系数据库长期占主导和统治地位,忽略了对其他数据库的研究。当前高校与市场的联系远远不如想象的那样紧密,因此,当前高校教师面对着对NoSQL 技术的认知能力,这里不仅包含对技术的掌握和熟悉,而更重要的是对该新兴技术的认可。在授课的过程中,如何把握NoSQL 技术和关系数据库的之间的关系,巧妙地融合两种技术,使学生有个全面和清晰的认识是数据库课程教师的重要工作之一。
4.2 学生的知识水平有限
高职的学生来源决定了他们在抽象思维能力上和自学能力上都不能达到优秀的程序,成熟的亲和度高的关系型数据库产品对高职学生来说容易接受,对于需要掌握更多低层技术的NoSQL数据库学习起来难度就大的多,而且两种技术原理有很大不同,理解新技术的困难也是要考虑的问题。
4.3 学校的实验条件限制
实验一直是数据库课程教学的重要环节,现有大多数学校的实验条件和环境能够基本满足关系数据库技术的教学需要,但是对于实验和实训的进程设计中如何体现NoSQL技术的优势和特点,如何合理构建实验环境也是教学的一大课题和难点。
5 如何在高职数据库教学中开展NoSQL教学活动
在社会强大的需求面前,在高职开设NoSQL的教学势所必然,在充分研究的基础上,我认为应在以下几个方面来建设这一类课程:
5.1 教学内容选取
数据库课程的学习内容分为三大阶段,利用学习任务的递进实现教学目标。第一,数据库系统基础知识阶段;第二,项目学习阶段;第三,项目实践阶段。
NoSQL数据库系统教学中基础知识阶段的教学主要内容应该有数据库系统基本概念、NoSQL基本概念、NoSQL的类别和原理。通过本阶段学习,学生能掌握NoSQL数据库系统的基本内容和领域内涵,为后面的实际操作技能学习打下理论基础。项目学习阶段:选取一个实际的互联网项目,作為实例贯穿全过程,依据流行的结构和开发过程,将课程内容分为:项目准备,数据库定义,应用开发,数据库安全管理与维护四个学习情景。项目实践阶段是以小型互联网应用为例进行从需求分析到最终系统集成的完整开发过程实践.。学生通过完整的项目的开发,熟悉数据库设计和构建的基本原则,掌握数据库系统的分析和设计方法,提高学生实际编程能力,为今后从事信息系统开发提供必要的技能。
5.2 教学方法的综合应用
NoSQL数据库的教学应该沿用近些年已经成熟的“工学一体”教学方法。以项目导向教学法为主线,将相关的知识点汇集,把整个课程的教学演变程连贯的相关的可实际操作的业务训练。在各教学单元中采用任务驱动教学方法,使“任务”存在于课程教学过程的始终,把一个项目分解为若干个大任务,每一个大任务,又分解为若干个小任务,让学生有目标,有方向。 采用角色扮演教学法,以小型互联网应用开发团队为模拟单位,学生在团队中扮演不同角色,引导学生去发现问题,探索问题和熟悉开发团队的协作关系。
[参考文献]
[1]周双喜.以人为本构建科学有效的高校教师激励机制.中国成人教育,2012.1.
[2]娄颖.浅析NoSQL技术与数据库教学的关系.计算机时代,2013.2.
[3]Eric Redmond.Seven database in seven weeks.人民邮电出版社,2012.4.
[4]佐佐木达也(日).NoSQL数据库入门.人民邮电出版社,2012.5.
[5]陆嘉恒.大数据挑战与NoSQL数据库技术.电子工业出版社,2013.4.
[6]shashank tiwari(印).深入NoSQL.人民邮电出版社,2012.11.
[7]蔡金花.浅析NoSQL及使用.电脑知识与技术,2011.4.
[8]黄贤立.NoSQL非关系型数据库的发展及应用初探.福建电脑,2010.7.
[9]卢冬海,何先波.浅析NoSQL数据库.中国西部科技,2011.2.
[10]沈姝.NoSQL数据库技术及其应用研究.南京信息工程大学,2012.1.
[11]张华强.关系型数据库与NoSQL数据库.电脑知识与技术,2012.6.