zoukankan      html  css  js  c++  java
  • 解读NoSQL数据库的四大家族[转]

    原文地址:http://database.51cto.com/art/201109/291781.htm

    在目前的企业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,比较容易映射复杂值的环境。

  • 相关阅读:
    杭电 Problem
    杭电Problem 5053 the sum of cube 【数学公式】
    杭电 Problem 2089 不要62 【打表】
    杭电 Problem 4548 美素数【打表】
    杭电 Problem 2008 分拆素数和 【打表】
    杭电 Problem 1722 Cake 【gcd】
    杭电 Problem 2187 悼念512汶川大地震遇难同胞——老人是真饿了【贪心】
    杭电Problem 1872 稳定排序
    杭电 Problem 1753 大明A+B
    东北林业大 564 汉诺塔
  • 原文地址:https://www.cnblogs.com/pang1567/p/4101526.html
Copyright © 2011-2022 走看看