NoSQL数据库综逑
1引语
回顾数据库的发展历程,数据库技术从上世纪60年代末开始,经历了层次数据库、网状数据库和关系数据库而进入数据库管理系统(DBMS)阶段至今,数据库技术的研究也不断取得进展。传统的关系型数据库已在数据存储方面占据了不可动摇的地位。近年来,随着互联网Web2.0技术的发展,网络数据库应用出现了一些新的变化,对与此相关的数据模型、分布式架构、数据存储等数据库相关的技术指标也提出了新的要求。但由于关系型数据库本身的一些不足,已经越来越无法满足互联网对数据扩展、读写速度、支撑容量以及建设和运营成本的要求。NoSQL是在这种新变化、新要求之下产出的一种非关系型数据库产品的总称。
2NoSOL数据库概述
NoSQL(NotOnlySQL的缩写)数据库是目前比较流行的,不同于传统的关系型数据库的数据库管理系统的统称。Wikipedia上定义:NoSQL是一种打破了关系型数据库长久以来占主导地位的,快速成长起来的非关系松散数据库存储类型,这种数据存储不需要事先设计好的表结构,它也不会出现表之间的连接操作和水平分割,学术界称这种数据库为非结构化存储[2]。
作为新型的下一代数据库,NoSQL数据库系统主要解决以下要点:非关系型,分布式的,开源代码和水平可扩展等。NoSQL数据库往往具有无架构、易于复制、简单的API、最终一致、大数据量等特点。目前有25种以上的NoSQL数据库,各有各自的特点,是基于不同应用场景而开发的,其中MongoDB和Redis最受欢迎。
3NoSOL数据库优势
NoSQL数据库相比其他模型的数据库而言,具有以下优点:
(1)模式自由:目前NoSQL数据库有列存储、文档存储、键值对存储、图存储、对象存储、XML存储等数据存储模式,并且不需要事先为存储的数据建立字段,不需要固定的表结构,可以随时存储自定义的数据格式。
(2)水平扩展:传统的关系型数据库采用向上扩展方式提高性能,而NoSQL数据库则采用水平扩展的方式提高性能,即负载平均地分配到各个主机上。
(3)低廉的成本:NoSQL数据库可以运行在廉价的PC服务器集群上。PC集群扩充起来便宜且成本低;此外轻松地添加新的节点来扩展集群。而且大部分NoSQL数据库都是开源软件,没有昂贵的许可成本。
4NoSOL数据库的缺陷
与传统的关系型数据库相比,NoSQL数据库虽然有很多优势,但也存在着一些缺陷,主要是:
(1)复杂性:因为在NoSQL数据库中不使用SQL查询语言,所以它需要用户自主编写程序来实现查询功能,这种编程查询的方式在完成简单任务时会很快,但对使用者来说会耗费大量的时间。此外,想要通过编写程序来实现复杂的数据库查询也是很困难的。
(2)可靠性:NoSQL数据库本身是不支持ACID事务,因此NoSQL数据库也不具有ACID所提供的可靠性。如果用户想要在NoSQL的一个数据集里应用ACID事务,那么他们必须得通过额外的编程来实现。
(3)-致性:因为NoSQL数据库本身是不支持ACID事务的,除非通过额外的编程才能实现,所以NoSQL的一致性可能会受到威胁。NoSQL不提供一致性,这让它拥有更好的性能和可扩展性,但这使某些应用程序和交易系统存在隐患,比如银行。
(1)成熟度低:大多数企业不熟悉NoSQL数据库,因此没有足够的知识去做NoSQL是最好的数据库的选择。
5NoSOL数据库应用现状
虽然NoSQL数据库一词早出现于1998年,其真正的发展是开始于2007年,先后出现了十多种NoSQL产品,例如:HBase、Cassandra、Hypertable、SimpleDB、MongoDB、CouchDB、DynamoDB、Redis、Neo4J等。从2009开始国内也陆续有公司或团队进行NoSQL数据库的开发,例如:豆瓣开源的BeansDB、新浪的MemcacheDB,淘宝网自主开发的Tair数据库,人人网的Nucbar以及盛大创新院的TCDatabase纷纷发布。NoSQL数据库在短短十几年内得到如此快的发展是因为Web2.0与云计算技术的广泛应用。
表1NoSQL数据库之间的比较
2NoSOL数据库产品
目前市场上出现的NoSQL有二十多种,而它们之间也有一定的关联与继承,同时每个NoSQL数据库有它独到之处。表1是NoSQL数据库产品之间的比较。
7结束语
随着现在网络数据的爆炸式增长,NoSQL数据库得到了广泛的使用,它具有海量数据存储,高性价比,灵活的扩展性等特点,一定程度上是传统数据库的代替品。目前,在某些场景下,可以将NoSQL数据库与关系型数据库结合使用,互相弥补各自的缺陷,这种数据库组合对解决Web2.0所遇到的性能、扩展性等问题具有指导意义。
上一篇:PKI在企业电子商务中的应用研究
下一篇:软件开发下的JAVA语言