NoSQL数据库简介-程序员宅基地

技术标签: json  数据库  大数据  

一、简介

 

    NoSQL(Not Only SQL),泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

    虽然NoSQL流行语火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动。尽管早期的堆栈代码只能算是一种实验,然而现在的系统已经更加的成熟、稳定。不过现在也面临着一个严酷的事实:技术越来越成熟——以至于原来很好的NoSQL数据存储不得不进行重写,也有少数人认为这就是所谓的2.0版本。这里列出一些比较知名的工具,可以为大数据建立快速、可扩展的存储库。

 

二、NoSQL数据库的四大分类

 

  

1、键值(Key-Value)存储数据库

 

    这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB。

 

2、列存储数据库

 

    这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak。

 

3、文档型数据库

 

    文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。

 

4、图形(Graph)数据库

 

    图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API,如:Neo4J, InfoGrid, Infinite Graph。

 

    因此,我们总结NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。

 

三、共同特征

 

    对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:
    不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。
    无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。
    弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。
    分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。
    异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。
    BASE:相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终一致性和软事务。
    NoSQL数据库并没有一个统一的架构,两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据库的不同。可以说,NoSQL各有所长,成功的NoSQL必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL。

 

适用场景

NoSQL数据库在以下的这几种情况下比较适用:

1、数据模型比较简单;
2、需要灵活性更强的IT系统;
3、对数据库性能要求较高;
4、不需要高度的数据一致性;
5、对于给定key,比较容易映射复杂值的环境。

 

未来与问题

 

    尽管大多数NoSQL数据存储系统都已被部署于实际应用中,但归纳其研究现状,还有许多挑战性问题。
    已有key-value数据库产品大多是面向特定应用自治构建的,缺乏通用性;
    已有产品支持的功能有限(不支持事务特性),导致其应用具有一定的局限性;
    已有一些研究成果和改进的NoSQL数据存储系统,但它们都是针对不同应用需求而提出的相应解决方案,如支持组内事务特性、弹性事务等,很少从全局考虑系统的通用性,也没有形成系列化的研究成果;
    缺乏类似关系数据库所具有的强有力的理论(如armstrong公理系统)、技术(如成熟的基于启发式的优化策略、两段封锁协议等)、标准规范(如SQL语言)的支持。
    目前,HBase数据库时安全特性最完善的NoSQL数据库产品之一,而其他的NoSQL数据库多数没有提供内建的安全机制,但随着NoSQL的发展,越来越多的人开始意识到安全的重要,部分NoSQL产品逐渐开始提供一些安全方面的支持。
    随着云计算、互联网等技术的发展,大数据广泛存在,同时也呈现出了许多云环境下的新型应用,如社交网络网、移动服务、协作编辑等。这些新型应用对海量数据管理或称云数据管理系统也提出了新的需求,如事务的支持、系统的弹性等。同时云计算时代海量数据管理系统的设计目标为可扩展性、弹性、容错性、自管理性和“强一致性”。目前,已有系统通过支持可随意增减节点来满足可扩展性;通过副本策略保证系统的容错性;基于监测的状态消息协调实现系统的自管理性。“弹性”的目标是满足Pay-per-use 模型,以提高系统资源的利用率。该特性是已有典型NoSQL数据库系统所不完善的,但却是云系统应具有的典型特点;“强一致性”主要是新应用的需求。 

















本文转自朱先忠老师51CTO博客,原文链接: http://blog.51cto.com/zhuxianzhong/1614961,如需转载请自行联系原作者




版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33670713/article/details/90066243

智能推荐

Linux的网络适配器_linux 查询网络适配器-程序员宅基地

文章浏览阅读5.3k次,点赞3次,收藏3次。了解一下,省的脑壳痛 桥接模式对应的虚拟网络名称“VMnet0” 桥接模式下,虚拟机通过主机的网卡进行通信,若物理主机有多块网卡(有线的和无线网卡),应选择桥结哪块物理网卡桥接模式下,虚拟机和物理主机同等地位,可以通过物理主机的网卡访问外网(局域网),一个局域网的其他计算机可以访问虚拟机。为虚拟机设置一个与物理网卡在同个网段的IP,则虚拟机就可以与物理主机以及局域..._linux 查询网络适配器

【1+X Web前端等级考证 】 | Web前端开发中级理论 (附答案)_1+xweb前端开发中级-程序员宅基地

文章浏览阅读3.4w次,点赞77次,收藏438次。# 前言2020 12月 1+X Web 前端开发中级 模拟题大致就更这么多,我的重心不在这里,就不花太多时间在这里面了。但是,说说1+X Web前端开发等级考证这个证书,总有人跑到网上问:这个证书有没有用? 这个证书含金量高不高?# 关于考不考因为这个是工信部从2019年才开始实施试点的,目前还在各大院校试点中,就目前情况来看,知名度并不是很高,有没有用现在无法一锤定音,看它以后办的怎么样把,软考以前也是慢慢地才知名起来。能考就考吧,据所知,大部分学校报考,基本不用交什么报考费(小部分学校,个别除._1+xweb前端开发中级

Linux安装mysql8.0(官方教程!)-程序员宅基地

文章浏览阅读2.5w次,点赞46次,收藏345次。Linux安装mysql(官方教程!)_linux安装mysql8.0

win10微软账号登陆报错:0x80190001解决方案_微软账户登录0x8019001-程序员宅基地

文章浏览阅读3.5w次,点赞19次,收藏18次。win10微软账号登陆报错:0x80190001解决方案_微软账户登录0x8019001

从微软AzureDevOps看实施基于DevOps全流程软件交付-程序员宅基地

文章浏览阅读1.5k次。Azure DevOpsAzure DevOps 汇集人员、流程和技术,实现软件交付自动化,为用户提供持续的价值。借助 Azure DevOps 解决方案,帮助您全流程构建你的软件产品,它使流程和产品更可靠。Azure DevOps帮助你用敏捷工具计划项目;用Git管理你的代码;..._azure devops approve

Typora中使用LaTeX:多行公式左对齐_typora对齐公式-程序员宅基地

文章浏览阅读1.4w次,点赞7次,收藏40次。Typora中使用LaTeX:多行公式左对齐有时候公式太长,用=号对齐很难看(有的公式左边很长,右边很短),此时难免需要进行"公式左对齐"。所需要的环境还是"align"(或者是align*,不带公式编号)。语法如下:\begin{align*}\label{2} & X(0) = x(0)W_{N}^{0\cdot0} + x(1)W_{N}^{0\cdot1} + \cdots + x(N-1)W_{N}^{0\cdot(N-1)}\\ & X(1) = x(0)W_{N}_typora对齐公式

随便推点

Openstack 控制台开发体会_openstack console开发-程序员宅基地

文章浏览阅读2.4k次,点赞3次,收藏2次。这段时间进行openstack控制台界面的开发有2个多月,感觉学到了不少东西。1、前端 首先是前端的技术,之前只知道简单的html语法,对CSS,JS,JQUERY等一窍不通。年后,小组开发人手不是很够,果断转行去开发,记得刚开始,搞个练手的界面,搞了两天才实现。而且前提是别人写好的结构,拿过来修改使用。熟读唐诗三百首,不会做诗也会吟的境界。但是一旦碰到没有样例的界面,那就头疼了_openstack console开发

电流检测电路_ina180-程序员宅基地

文章浏览阅读4k次,点赞4次,收藏26次。INA180电流检测电路_ina180

CentOS 7下安装Kafka集群_centos7安装kafka集群-程序员宅基地

文章浏览阅读82次。您将看到之前发布的消息在终端中显示出来在这篇文章中,我们详细介绍了如何在CentOS 7上安装和配置Kafka集群。接下来,我们配置了Kafka集群的各个组件,包括设置节点的唯一标识符、指定监听主机和端口、设置日志文件存储路径以及连接到Zookeeper。最后,我们启动了Kafka集群中的每个节点,并进行了简单的测试来验证集群的功能。解压缩后,您将在当前目录下看到一个名为"kafka_2.13-2.8.0"的文件夹,其中包含Kafka的所有文件。现在,我们将启动Kafka集群中的每个节点。_centos7安装kafka集群

公钥私钥加解密原理_公钥加解密-程序员宅基地

文章浏览阅读4.5k次。一、文章来由网络安全课花了不少篇幅讲解非对称加密技术,做一个整理。二、基本概念 公开密钥加密,也称为非对称加密(asymmetric cryptography)。在這種密碼學方法中,需要一對金鑰,一個是私人金鑰,另一個則是公開金鑰。这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危_公钥加解密

项目管理-概述_项目过程控制 确保 项目 资金-程序员宅基地

文章浏览阅读119次。项目管理的工具虽多,但要记住一点:所有的工具,只有在对的时间,用在对的地方,才能真正指导实际工作。管理是一门大的学问,理论知识只是基础,更多的需要靠实践,从被管理者到管理者的过程,不仅仅只是一个角色的转变,正所谓不在其位,不谋其政,很多东西,也只有走上管理岗位才能慢慢体会了。_项目过程控制 确保 项目 资金

推荐文章

热门文章

相关标签