浅谈NOSQL技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
时也对当前数据库课程教学产生了深远的影响。探讨了 NoSQL 技术及其主要特点,分析了 NoSQL 技术对数据库教学的
挑战,将关系数据库和 NoSQL 进行对比,指明了使用 NoSQL 的原因,并提出有关 NoSQL 的启发式教学方法。
关键词:关系数据库;NoSQL;海量数据;教学
中图分类号:TP311.13
为了应对这些挑战,我们至少需要弄清楚两个方面的问 题:①为什么要使用 NoSQL;②NoSQL 技术和关系数据库的联 系和区别。 2.1 为什么要使用 NoSQL 技术
NoSQL 技术不是实验室的产物,而是以实际需求推动的, 这里的推动主要指的是互联网的发展在推动。Web2.0 时代,用 户每天使用网络的同时也在制造网络的内容。例如:用户在浏 览微博网站的同时也会发布自己的信息。这种特点改变了对 网站后台数据库的访问方式,从原先频繁的读操作变成了频繁 的读写操作,这时,往往要达到每秒上万次读写请求,关系数据 库还能同时勉强应付上万次的 SQL 查询,但是要同时应付上万 次的 SQL 写数据请求,关系数据库系统就已经无法承受了,对 数据读写操作需求的变化推动了新技术的发展。
现有非关系型数据库采用不同的方式实现了 Key-Value 存储,并且拥有各自的优缺点。然而,性能优良的 Key-Value 存储需要满足下列条件:高可用性,即在 Key-Value 存储模式 下可以提供不间断的服务;可扩展性,海量数据的处理要求存 储模式能够具有可扩展性;故障恢复,要求该存储模式下能够 对故障自动感知并能自动恢复。
从上述分析可知,在互联网环境下处理海量数据时,关系 数据库无法满足实际需求。一方面,关系数据库技术中的种种 约束(事务管理、完整性约束等)对实际需求来说是没有必要的; 另一方面,这种约束的保证影响了数据处理性能。在这种情况 下,NoSQL 技术就自然而然地成为了人们的选择并取得了快速 的发展。 2.2 NoSQL 与关系数据库的对比
在具体的实现上,多数非关系数据库采用单文件进行存 储,虽然单个文件操作具有一定的方便性,但在数据量不断增 大时,会遇到存储瓶颈。为了提高响应速度,Key-Value 存储一 般只支持数据的添加操作,而不是支持数据更新操作。为了实 现故障可恢复,需要对数据进行备份,数据备份操作即从主端 向从端的数据复制,应用系统的性能在备份过程中会受到影
对于一个 Web 应用系统,在用户量和访问量不断增加的时 候,该应用系统需要增加新的服务节点来提高性能和负载能 力,在增加服务节点时,可以通过增加硬件设施在满足 Web 服 务器和应用服务器的需求,而对于数据服务器,关系数据库模 式下很难进行类似增加节点的水平扩展。因此,在关系数据库 的模式下,进行节点增加时需要停机维护和数据迁移,这对于 很多需要提供 24 小时不间断服务的网站来说是不方便的。可 以看出,关系数据库无法满足应用的可扩展性和高可用性,而 NoSQL 技术具有水平扩展性的特点,可满足需求。
0 引言
NoSQL 指的是非关系型的数据库。随着互联网 Web2.0 网 站的兴起,传统的关系数据库在应付 Web2.0 网站,特别是超大 规模和高并发的社交网络类型的 Web2.0 纯动态网站已经显得 力不从心,暴露出了很多难以克服的问题。例如:关系数据库 为了降低数据冗余,保证数据约束性,在数据查询时不得不使 用多个数据表之间的连接操作,这极大地降低了查询效率,不 能够满足当前 Internet 的高实时性的要求。而非关系型数据库 对并发的大规模访问有着效率上的优势,因此,非关系数据库 是在具体应用背景下得到了迅速的发展。
通过上述分析可以看出,NoSQL 数据库和关系数据库是根 本不同的,两种数据库分别适应不同的需求。
关系数据库是以表来存储数据的,表的组织形式严格,表 中的每一行代表一条数据记录,每一列代表特定方面的信息。 在设计好表结构(表的列信息)后,修改的代价巨大,数据库表之 间存在着联系和某种约束关系。所设计的数据操作(查询,添 加,修改,删除)通常涉及对单张表和多个表,在对多个表的操 作时需要使用到表之间定义的范式,消除数据冗余和保证数据
尽管现有的非关系型数据库采用不同的技术实现可扩展 性,但其基本的目标是:在应用不间断的情况下,增加或删除数 据节点,实现水平扩展;利用分布式计算的技术,通过节点之间 的通讯,实现数据分布式处理,满足海量数据的读写性能要求。
2 NoSQL 技术对数据库教学的影响
长期以来,普通高校计算机专业的数据库课程以关系数据 库为讲授内容。作为当前数据库领域不可忽视的力量,NoSQL 技术已经引起了许多高校的关注,它给传统的数据库教学带来 了以下几个方面的挑战:
一致性是关系数据库中主要特点[3],关系数据库为了保证 一致性需要使用约束条件,从而影响了数据的读写效率。而非 关系数据库只要求保证数据的最终一致性,基本思想是:在数 据的读写过程中,对一致性的要求是松散的,而最终完成操作 后的结果是一致的。
假设 A 为对数据库的写操作,而 B 和 C 都代表对数据库的 读操作,且 A,B 和 C 之间是相互独立的。当执行了 A,即向数 据库中写入数据,若数据库系统能够保证随后 B 和 C 的读操作 都能够读到最新的数据,则说明该数据库系统具有强一致性, 关系数据库能够保证强一致性;当执行了 A,B 和 C 不能够立即 读到最新的数据,而是需要经过一段时间才能获取更新的数 据,则说明该数据库系统具备弱一致性,这段时间也叫做不一 致性时间窗口;最终一致性属于弱一致性的特例,当执行了 A, 在该数据没有再被更新的条件下,B 和 C 最终都读取到最新的 数据,这就是最终一致性。
计算机时代 2013 年 第 2 期
· 47 ·
浅析 NoSQL 技术与数据库教学的关系
娄颖
(河南科技大学电子信息工程学院,河南 洛阳 471003)
摘 要:关系数据库在数据库领域长期占有主导地位,一直是高等院校数据库课程的主要内容。而随着 Web2.0 的兴起,
在海量数据的环境下,NoSQL(非关系型的数据库)技术得到了广泛的应用,它对数据库技术的发展产生了强烈的影响,同
文献标志码:A
文章编号:1006-8228(2013)02-47-03
Analyzing the relationship between NoSQL and teaching database
Lou Ying (Electronic Information Engineering College, Henan University of Science and Technology, Luoyang, Henan 471003, China) Abstract: Because of the dominant position in database, the relational database has been always the main content in database curriculum of university. With the rise of Web2.0, in the huge data environment, NoSQL (not relational database) technology is used widely and the current database course teaching has been impacted deeply. NoSQL technology is introduced in this paper and then the challenges of NoSQL database technology to teaching database are analyzed. Finally, the teaching methods of database course are proposed. Key words:relational database;NoSQL;massive data;teaching
最终一致性是在高数据量(十几亿条记录、数 TB 数据)和高 访问量(数千 TPS、数万 QPS)需求下的选择,在缺乏种种约束的 情况下,最终一致性在一致性要求不高的应用场景下能够极大 提高数据访问效率。 1.3 可扩展
这里的扩展性主要指的是水平扩展性,应用无关和容错 性。关系数据通常通过读写分离,更换高性能的服务器来提高 性能[4],而在海量数据的环境下,这些方法仍然无法满足某些应 用需求。非关系数据库具有水平扩展性的特点。
计算机时代 2013 年 第 2 期
· 49 ·
一致性是关系数据库的基本要求。长期以来,关系数据库一直 以简洁、规范和灵活占据着数据库领域的统治地位,现有关系 数据库的产品主要有 SQL Server,DB2,Oracle,MySqL 等,这 些产品都属于关系数据库管理系统,虽然功能有所不同,但基 本思想都属于关系数据库的范畴。正是由于关系数据库的主 导地位,在高校计算机学科数据库教学中,关系数据库也一直 是该课程讲授的重点内容。
其实,NoSQL 概念最早出现在 1998 年,当时的含义是反 SQL 技术革命运动,但并未引起太多的关注。直到 2009 年,NoSQL 概念被来自 Rackspace 的 Eric Evans 再次提出,这时的 NoSQL 已经不是单纯的反 SQL 运动,指的主要是非关系型的分布式数 据库,并且不支持原子性(Atomicity)、一致性(Consistency)、隔离 性(Isolation)、持久性(Durability)的数据库设计模式 。 [1] 在亚特 兰大举行的有关 NoSQL 的讨论会上,学者给出了 NoSQL 较为 普遍的解释,即“非关系型的”。并且指出 Key-Value 存储和文 档数据库是 NoSQL 的主要特点,本文认为 NoSQL 是一项新的 与传统关系数据库有显著区别的新技术。
社交网络是 Web2.0 的一个重要产物,近年来,社交网络用 户的规模日渐增长,2011 年 8 月,Facebook 的活跃用户已经接 近 7 亿,用户对 Web 的要求也逐步的提高,缩短用户操作的响 应时间已成为提高网络质量的基本要求。关系数据库在保证 数据的一致性方面有优势,而在大规模的用户操作下,严格的 一致性对现实的需求来说并不是必须的,高效的数据响应才是 最重要的,NoSQL 在保证最终一致性的情况下能够实现高效的 数据访问。
挑战二,学生的接受水平。对于刚刚接触专业课程的学 生,同时掌握两种具有对立性质的技术也是学生学习过程中的 一个难点。
挑战三,学校的实验环境。实验一直是数据库课程教学的 重要环节,现有大多数学校的实验条件和环境能够基本满足关 系数据库技术的教学需要,对于 NoSQL 技术所在大规模数据 处理下的优势,如何构建实验环境也是教学的一个重要挑战。
收稿日期:2012-10-18 作者简介:娄颖(1980-),男,安徽凤阳人,博士,讲师,主要研究方向:数据管理,信息检索。
· 48 ·
Computer Era No. 2 2013
响,备份策略决定了影响程度。然而,数据可靠性和性能是一 对平衡关系,越是可靠性高的数据保障,其性能相对会下降。 1.2 最终一致性
1 NoSQL 的主要特点
1.1 Key-Value 存储 Key-Value 本身是一种数据结构的模式,其基本思想为:一
个主键下有相应的值,在实现上可以通过哈希表或 B 树等不同 的数据结构完成。Key-Value 存储是以键值对的数据模型存储 数据,并能提供持久化分布式存储系统,查询速度快、存放数据 量大、支持高并发,非常适合通过主键进行查询机ห้องสมุดไป่ตู้和数据同 步等功能[2]。
挑战一,教师的认知和讲授能力。长期以来,在讲授数据 库课程时,往往认为关系数据库占主导和统治地位,忽略了对 其他数据库的研究。当前高校与市场的联系远远不如想象的 那样紧密,因此,当前高校教师面对着对 NoSQL 技术的认知能 力,这里不仅包含对技术的掌握和熟悉,而更重要的是对该新 兴技术的认可。
在授课的过程中,如何把握 NoSQL 技术和关系数据库的 之间的关系,巧妙地融合两种技术,使学生有个全面和清晰的 认识是数据库课程教师的重要工作之一。