在目前的企业IT架构中,系统管理员以及DBA都会考虑使用NoSQL数据库来解决RDBMS所不能解决的问题,特别是互联网行业。传统的关系型数据库主要以表(table)的形式来存储数据,而无法应对非结构化数据的挑战。在进行数据标准化的过程中,关系型数据库性能遭遇了瓶颈。

NoSQL顾名思义就是Not-Only SQL,它可以作为关系型数据库的良好补充。在TechTarget数据库之前的报道中,我们也对NoSQL数据库的应用场景做了详细的介绍。NoSQL不像传统的关系型数据库,其种类繁多,且各有各的优势和缺点,对于DBA来说如何区分彼此的不同是一件比较头痛的工作。在本文中,我们就将进一步为您接受关于NoSQL数据库的分类以及各自的优缺点。

NoSQL数据库的四大家族

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

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

相关数据库

Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB

典型应用

内容缓存,适合混合工作负载并扩展大的数据集

数据模型

一系列键值对

优势

快速查询

劣势

存储的数据缺少结构化

  • 列存储数据库

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

相关数据库

Cassandra, HBase, Riak

典型应用

分布式的文件系统

数据模型

以列簇式存储,将同一列数据存在一起

优势

查找速度快,可扩展性强,更容易进行分布式扩展

劣势

功能相对局限

  • 文档型数据库

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

相关数据库

CouchDB、MongoDB

典型应用

Web应用

数据模型

一系列键值对

优势

数据结构要求不严格

劣势

查询性能不高,而且缺乏统一的查询语法

  • 图形(Graph)数据库

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

相关数据库

Neo4J、InfoGrid、Infinite Graph

典型应用

社交网络,推荐系统等。专注于构建关系图谱

数据模型

图结构

强项

利用图结构相关算法。

弱项

需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

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

解读NoSQL数据库的四大家族的更多相关文章

  1. 转:走近NoSQL数据库的四大家族

    在目前的企业IT架构中,系统管理员以及DBA都会考虑使用NoSQL数据库来解决RDBMS所不能解决的问题,特别是互联网行业.传统的关系型数据库主要以表(table)的形式来存储数据,而无法应对非结构化 ...

  2. Nosql数据库的四大分类及分布式数据库CAP原理

    1. Nosql数据库的四大分类 2. 分布式数据库CAP原理 2.1 关系型数据库事务遵循的ACID规则 首先了解传统关系型数据库事务遵循的ACID规则: 原子性(Atomicity):事务里的所有 ...

  3. NoSQL数据库的四大分类的分析

    分类 Examples举例 典型应用场景 数据模型 优点 缺点 键值(key-value) Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 内容缓 ...

  4. NoSQL数据库的四大分类表格分析

  5. NoSQL数据库种类

    NoSQL数据库的四大分类   键值(Key-Value)存储数据库   这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据.Key/value模型对于IT系统来说的优 ...

  6. 数据库 --> 8种NoSQL数据库对比

    8 种 NoSQL 数据库对比 NoSQL是一项全新的数据库革命性运动,NoSQL的拥护者们提倡运用非关系型的数据存储.现今的计算机体系结构在数据存储方面要求具备庞大的水平扩展性,而NoSQL致力于改 ...

  7. NoSQL数据库的认识

    SQL数据库和NoSQL数据库介绍 什么是SQL数据库? 关系型数据库是依据关系模型来创建的数据库.而所谓的关系模型就是“一对一.一对多.多对多”等关系模型,这是一种二维表格模型,因此一个关系型数据库 ...

  8. NoSQL 数据库概览及其与 SQL 语法的比较

    NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对N ...

  9. NoSQL数据库概览及其与SQL语法的比較

    [文章摘要] HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统.同一时候也是知名的NoSQL数据库之中的一个.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤 ...

随机推荐

  1. linux 拷贝软连接文件

    cp -s sourchfile targetfile 这样拷贝软连接文件时,会将其对应指定路径同步修改,即便原来的软连接是相对路径也不会有问题.

  2. Python接口自动化【requests处理Token请求】

    首先说一下使用python模拟登录或注册时,对于带token的页面怎么登录注册模拟的思路: 1.对于带token的页面,需要先从最开始的页面获取合法token 2.然后使用获取到的合法token进行后 ...

  3. 【Python全栈-后端开发】嵩天老师-Django

    嵩天老师-Python云端系统开发入门教程(Django) 视频地址:https://www.bilibili.com/video/av19801429 课前知识储备: 一.课程介绍: 分久必合.合久 ...

  4. 简述 cookies 和 session 的区别

    1.cookie 和 session 的区别是:cookie数据保存在客户端,session数据保存在服务器端: 2.两个都可以用来存私密的东西,同样也都有有效期的说法,区别在于session是放在服 ...

  5. MongoDB pymongo模块 插入数据

    insert_one(): 对一张不存在表插入数据,他会在插入数据同时自动生成数据表, 例如我要对chat集合插入数据,插入一个空数据 import pymongo mongo_client = py ...

  6. 运行python文件时出错SyntaxError: Non-UTF-8 code starting with '\xb5' in file, but no encoding declared;

    今天ytkah在运行python文件时出现错误,提示如下,很明显这是没有定义python文件编码引起的问题,那么要怎么解决呢?很简单,在文件头部定义一下就可以了. File "hello.p ...

  7. 万恶之源 - Python迭代器

    函数名的使用以及第一类对象 函数名的运用 函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量 1.函数名的内存地址 def func(): print("呵呵" ...

  8. hash值重写,就是以自己定义的规则来显示hash值

    未重写hashCode值 重写hashCode后的值  

  9. jsonServer 造个假的服务器传递数据接口 再用axois来请求数据

  10. git-代码同步至github

    代码同步到github上 Last login: Wed Mar 27 13:53:06 on ttys001localhost:~ ligaijiang$ gitusage: git [--vers ...