NoSQL——非关系型数据库简述

关系型数据库是以行和列的形式存储数据,并以表的形式组成了数据库,其数据查询是用query来检索的。

NoSQL(Not Only SQL),非关系数据库,顾名思义,则不或者不完全遵循该形式。

随着大数据对数据量存储和检索速度的要求越来越高,传统的关系型数据库在应付大规模和高并发的SNS(社交网络服务)类型和web2.0纯动态网站显得很吃力。NoSQL数据库在解决大规模数据和多重数据等方面的问题日益常见。

NoSQL数据库的适用要根据具体项目需求进行考虑。

NoSQL数据库的四大分类:

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

常使用Hash表(key/value)进行存储,简单易部署,但当DBA对部分值查询或者更新时,效率低下。

例:Redis、Oracle BDB、Voldemort

2.列存储数据库

这部分数据库通常用来用来应对分布式存储的海量数据,一个key对应对个列,这些列使用过列家族来安排的。

例:HBase、Riak

3.文档型数据库

与键值存储类似,数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如json。文档型数据库是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:MongDb、CouchDB。国内SequoiaDB

4.图形(Graph)数据库

图形结构的数据库是使用灵活的图形模型,并且能够拓展到多个服务器上。图形数据库查询没有标准的查询语言,因此进行查询需要制定数据模型。许多图形数据库都有Rest式的数据接口或者查询API。例:Neo4J、InfoGrid、Infinite Graph

NoSQL数据库的特征:

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

NoSQL数据库并没有一个统一的架构,两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据库的不同。可以说,NoSQL各有所长,成功的NoSQL必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

使用 NoSQL 数据库分析大规模数据

本文转自IBM的developerWorks,主题是关于使用NoSQL存储和处理大规模数据,文章列举了一些循序渐进的学习资料,包括了视频音频和文字材料,是一个很...

26860
来自专栏张善友的专栏

MongoDB 如何使定制电子商务变得简单

开源电子商务软件市场已经历了众多发展阶段,您可能已经通过 osCommerce、Magento、Zen Cart、PrestaShop、Spree 等流行平台而...

24970
来自专栏前端黑板报

全栈工程师权威指南

根据 Stack Overflow 2016年开发者调查显示,全栈工程师是最受欢迎的开发者职业。毫无疑问现在有许多在线或个人课程来帮助程序员成为全栈开发者,甚至...

258110
来自专栏微信终端开发团队的专栏

微信自研生产级paxos类库PhxPaxos实现原理介绍

微信重磅开源生产级paxos类库PhxPaxos,本文用科普的口吻向大家介绍PhxPaxos背后的实现原理以及一些有意思的细节。 开源地址:https://g...

36570
来自专栏向治洪

仿淘宝收货地址,本地数据库

谁说咱们攻城狮不能写出既幽默又能懂的博客呢,本人想推出一系列博文,可以给刚接触Android开发的做一个参考,也可以与接触Android已久的各路大神比较一下,...

1.4K70
来自专栏张善友的专栏

FileSystemWatcher 导致Mono ASP.NET应用程序CPU使用率比较高

大家都知道ASP.NET 网站应用程序(WebSite)可以自动检测到你的ASP.NET应用的文件修改,其中要使用到的就是监视磁盘上的文件/目录的更改,以便应用...

243100
来自专栏张善友的专栏

MongoDB核心贡献者:不是MongoDB不行,而是你不懂!

近期MongoDB在Hack News上是频繁中枪。许多人更是声称恨上了MongoDB,David mytton就在他的博客中揭露了MongoDB许多现存问题。...

271100
来自专栏哲学驱动设计

OEA 2.11 支持单机版数据库 - SQLite与SQLCE对比

在 OEA 平台 设计中,需要支持多种数据库,这至少包括了 SqlServer、Oracle、一个单机文件数据库。而之前对于这一块,我们一直没有实现,只是预留了...

29870
来自专栏张善友的专栏

SQL Server 2012 Express LocalDB

微软最新推出的 SQL Server 2012 Express LocalDB 是一种 SQL Server Express 的运行模式,特别适合用在开发环境使...

32850
来自专栏张善友的专栏

MongoDB 2.6.2 发布

NoSQL数据库MongoDB推出了全新一代产品MongoDB 2.6.2,该版本全面强化核心服务器,提供全新的自动化工具与重要的企业功能,宣称是MongoDB...

22870

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励