阅读更多

0顶
1踩

数据库

原创新闻 NoSQL数据库类型

2016-03-10 10:46 by 副主编 mengyidan1988 评论(0) 有8552人浏览
本文摘自 Introducing Data Science,我们将向您介绍四大NoSQL数据库类型。

有四大NoSQL类型:键值存储(key-value store),文件存储(document store),列导向的数据库(Column-Oriented Database)和图形数据库(graph database)。每种类型都解决了传统关系数据库无法解决的问题。实际的实现往往是这些组合的组合。例如,结合NoSQL类型,Orientdb是一个多模式的数据库。Orientdb是图形数据库,每个节点都是一个文档。

在进入不同的NoSQL数据库之前,让我们看看与关系数据库之间的比较。传统关系数据库正在努力的走向规范化:确保每一个数据都只存储一次。正规化标志着他们的结构设置。举个例子来说,如果你想把一个人和他的爱好存储为数据,那么你就可以建两个表:一个表存储为人,一个表存储他们的爱好。如图1所示,一个附加的表是必要的,因为他们存在着很多关系:一个人可以有多个爱好,然而一个爱好也可以有很多人喜欢。



图1

一个全面的关系数据库可以由许多实体和联系表。现在让我们看看NoSQL不同的类型的数据库之间的比较。

Column databases store列存储数据库
行数据库实际上就是传统的关系数据库,每一行有一行id,并在一个表中存储的行中的每个字段。假设,关于爱好,没有额外的表来存储并且你只有一个表来描述人,如图2所示。注意,在这种情况下,你有轻微的反规范化,因为爱好是可以重复的。如果爱好这个信息是一个额外的信息,但在你使用时并不是必不可少的,添加它作为一个列表内的爱好列是可以接受的方法。但是如果这些信息对一个单独的表来说是不够的,它应该被存储在所有的?



图2

每次你在行存据库中寻找某个数据,进行每行扫描,不管你需要哪列。假设你只需要生日在9月的列表。数据库将在表中从上到下和从左到右扫描所有数据,如图3所示,最终返回生日列表。



图3

索引数据在某些列可以显著提高查询速度,但索引每一列带来额外的开销和数据库仍然是扫描所有列。

Column databases store分别存储每一列,允许更快的扫描时,只涉及一小部分列。见图4。



图4

这个布局看起来很像一个以行为导向的数据库,每一列都有一个索引。一个数据库索引是一种数据结构,允许在存储空间上快速查找数据和额外的写(索引更新)。索引映射到数据的行数,而一个列数据库将数据映射到行数,这样计算变得更快,所以很容易看到有多少人喜欢射箭。例如,单独存储的列也可以优化压缩,因为只有一个数据类型的表。

那么,何时该使用Row-Oriented Database和Column-Oriented Database呢?在Column-Oriented Database中,很容易添加另一个列,因为不受它的影响。但添加整个完整记录需要调整所有的表。这使得Row-Oriented Database更好于Column-Oriented Database在联机事务处理(OLTP)方面,因为他可以不断地添加或更改记录。

Column-Oriented Database在执行分析和报告时的表现: 求和值和计算条目。Row-Oriented Database通常是实际交易的操作数据库(如销售)。夜间批处理作业将用于数据库更新,支持客户快速查找和聚合使用MapReduce算法报告。例如column-family stores are Apache HBase、Facebook的Cassandra、Hypertable和the grandfather of wide-column stores、谷歌的 BigTable。

KEY-VALUE STORES 键值存储
键值存储是最复杂的NoSQL数据库。顾名思义,键值对的集合,如图5所示,这种简单性使得他们成为最可伸缩的NoSQL数据库类型,能够存储大量的数据。



图5

键值存储的值可以是任何东西:一个字符串,一个数字,而且也是一个新的键值对封装在一个对象。如图6显示了一个稍微复杂键值结构。关键值存储的例子有Redis、Voldemort、Riak和Amazon’s Dynamo。
{"internal data":[{"entities":[
         {"customer":[
            {"id:1,"name":"Freddy"},
            {"id:2,"name":"Fritz"}
          }],
          {"legal entities":[
               {"id":1,"company":"Maiton"}
           ]}]
},{"Products":[
     {"furniture":[
         {"id" :1,"name":"Octopus Table","stock":1}
      ]
}]}]}                   

图6

DOCUMENT STORES 文档存储
文档存储是键值存储的复杂性的一个步骤:一个文档存储库确实假定一个特定的文档结构,可以用一个模式来指定。文档存储出现最自然的NoSQL数据库类型中,因为它们用于存储日常文档,并且他们允许复杂的查询和计算,这往往已经成为聚合形式的数据。在关系数据库中存储的方式是从一个正常化的角度来看,所有的一切都应该存储一次,并通过外键连接。文件存储的关心小的正常化,只要数据是在一个结构是有意义的。关系数据模型并不总是适合某些业务案例。

报纸或杂志,例如,包含文章。要把这些存储在关系数据库中,首先要把它们切碎:这篇文章正文在一个表中,作者和作者所有的信息,以及在一个网站上发表的文章的评论。如图7所示,报纸上一篇文章也可以存储为一个单一的实体,这降低了对于习惯看到文章内容所消耗的时间。文档存储以MongoDB和CouchDB为例子。



图7

GRAPH DATABASES 图数据库
最后一个大的NoSQL数据库类型是最复杂的一个,为了高效地存储实体之间的关系。数据是高度互联的,如社会网络,科学论文引用,或资本资产集群,图形数据库的答案。图或网络数据主要有2个组成部分:

节点:实体本身。在社交网络中,这可能是人。

边:实体间的关系。这种关系用一条线来表示,并且有它自己的特性。边可以有一个方向,例如,如果箭头表示谁是谁的老板。

图可以变的非常复杂来给定足够的关系和实体类型。图8已经表明了复杂性,只有有限数量的实体。图数据库像Neo4j还声称坚持ACID,而文档存储和键值存储坚持BASE。



图8

这个可能性是无限的,因为世界正变得越来越互联,Graph databases可能会赢过其他类型的数据库,包括如今仍然占主导地位的关系数据库。排名最受欢迎的数据库和他们是如何进展可以点击:最新数据库排名

原文链接:NoSQL Database Types
  • 大小: 227.7 KB
  • 大小: 170.7 KB
  • 大小: 152 KB
  • 大小: 118.2 KB
  • 大小: 42.9 KB
  • 大小: 253 KB
  • 大小: 186.8 KB
0
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • NoSQL数据库类型简介

    但是,归结起来,可以将典型的 NoSQL 划分为 4 种类型,分别是键值数据库、列式数据库、文档数据库和图形数据库,如图 1 所示。 图 1 4 种类型的 NoSQL 数据库   图 2 键值数据库举例 1. 键值数据库 键值...

  • 请列举一些常见的NoSQL数据库类型和其特点。

    常见的NoSQL数据库类型包括键值存储数据库、文档数据库、列族数据库和图形数据库。下面将分别介绍这些NoSQL数据库类型及其特点,并通过具体的案例和代码示例进行说明。

  • NoSql 数据库类型总结

    NoSql 数据库类型 1、键值数据库 满足: 频繁读写 做内容缓存 存储配置和用户数据信息 做缓冲层解决方案,增加网页响应速度 支持持久化 支持数据恢复 支持更多的数据类型 如 Redis、Amazon Simple...

  • 四种NoSQL数据库类型

    转载别人的csdn http://blog.csdn.net/arthursunbao/article/details/38340637一网打尽当下NoSQL类型、适用场景及使用公司在过去几年,关系型数据库一直是数据持久化的唯一选择,数据工作者考虑的也只是在这些传统...

  • NoSQL数据库的五种分类

    NoSQL数据库分为五种:键值数据库、文档数据库、列式数据库、图数据库、全文搜索引擎数据库。

  • NoSQL数据库PPT.pptx

    二.NoSQL数据库的产生 关系数据库面临挑战 关系数据库面对超大规模和高并发的SNS类型的web2.0纯动态网站显得力不从心,暴露了很多难以克服的问题 A 大数据发展 大规模数据集合,多重数据带来了许多挑战,尤其是...

  • 常见的NoSQL数据库类型

    1.背景介绍 NoSQL数据库是一种非关系型数据库,...NoSQL数据库可以分为五种类型:键值存储(Key-Value Store)、文档型数据库(Document-Oriented Database)、列式数据库(Column-Oriented Database)、图形数据库(Gr...

  • NoSQL数据库简介

    本博客将深入探讨NoSQL数据库的概念、设计原则、常见分类以及主要优缺点,帮助你更好地理解和应用NoSQL数据库技术。NoSQL数据库是一类非关系型的、分布式的、非结构化或半结构化的数据存储系统。

  • 常见的 NoSQL 数据库有哪些?一篇详尽(图表展示)

    常见的 NoSQL 数据库包括键值数据库、列族数据库、文档数据库和图形数据库。

  • NoSQL数据库详细介绍

    NoSQL,意思是"不仅仅是 SQL",指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL 用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

  • Nosql数据库介绍

    NoSQL是非关系型的数据库

  • NoSQL数据库

    NoSQL是一种不同于关系数据库的数据库管理系统...NoSQL数据库没有固定的表结构,通常也不存在连接操作,也没有严格遵守ACID约束。因此,与关系数据库相比,NoSQL具有灵活的水平可扩展性,可以支持海量数据存储。......

  • 【数据库】NoSQL数据库简介

    数据类型 属性类型: Integer, Float, String, Boolean, Point, Date, Time, LocalTime, DateTime, LocalDateTime, Duration. 结构类型: Node, Relationship, Path. 复合类型: List ,Map MERGE merge创建节点 ...

  • NoSQL数据库的介绍、NoSQL的产品、NoSQL数据库的分类等;

    1.3 RDBMS(传统关系型数据库) vs NoSQL:特点对比1.4 NoSQL 简史1.5 NoSQL 产品1.6 NoSQL 数据库分类1.7 目前谁在使用NoSQL1.8 NoSQL 在国内使用的案例 1.1 什么是NoSQL? NoSQL,指的是非关系型的数据库。 NoSQL有时...

  • NoSQL数据库简单介绍

    但是随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的社交网络类型的web2.0纯动态网站,面临着很多诸如在巨大数据量下查询缓慢,单一的关系型数据模型难以应对数据种类复杂...

  • 开源NoSQL数据库介绍

    NoSQL数据库一天天变得越来越流行。以下是最好的,免费,开源NoSQL数据库的一个列表。其中MongoDB是这些开源NoSQL数据库中最好的。这个列表包括:MongoDB, Cassandra, CouchDB, Hypertable, Redis, Riak, Neo4j, ...

  • 【java毕业设计】新冠疫情下的校园出入系统源码(ssm+mysql+说明文档+LW).zip

    功能说明: 本系统主要包括以下功能模块:个人中心,通知公告管理,用户管理,工作人员管理,进门登记管理,出门登记管理,出入统计管理,外来登记管理等模块。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上

  • param-1.5.1-cp34-cp34m-win_amd64.whl.rar

    PartSegCore_compiled_backend-0.12.0a0-cp36-cp36m-win_amd64.whl.rar

  • yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip

    yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip;yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip;yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip;yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip

Global site tag (gtag.js) - Google Analytics