当前位置:380元网站建设 虎网站 > 建站百科 > 正文

NOSQLI数据库是什么?

发布日期:2020-02-04
术语NOSQL包含了范固广泛的数据库,每一种数据库都有自己的长处和不足,而且大多都有非常不同的目标和用例。在观察今天的 NOSOL共生系统时,可以将数据库划分为5大类:纯粹的键/值、数据结构、图、面向文档、高度分布。每种类别的数据库都面向不同的应用情况,而且每个类别也都做了不同的折中。我们将分别考察这些数据库,并看看其中的折中情况。

纯粹的键/值

纯粹的键值数据库实际上已经存在很长时间了。甚至在SQL数据库流行之前,dbm(一个纯粹的键/值数据库)就在世界上的很多UNX系统中使用了。之后是 Berkeley DB,目前仍然是一个维护中的富有生命活力的数据库解决方案。今天,这些纯粹的键值存储库正在重新流行起来,部分原因是所有的 NOSQL数据库都在变得流行起来,但也是因为开发了一些速度更快、更为现代的数据库实现,如 Tokyo Cabinet、 Kyoto Cabinet、 Memcachedb。

NOSQLI数据库是什么?

正是它们的简单性定义了这组数据库。向数据库存入一个键和一个值,然后用同一个键查询数据库,则会得到相同的值。没有结构或类型系统一一通常所处理的只是字节或字符串。因为这种简单性,这些数据库的开销极小,所以非常快。事实上,这些数据库通常都是实现为磁盘上的B树或哈希表。

对一个纯粹的键值数据库进行分片是直截了当的一一简单地选一个哈希算法,以键作为参数运行该算法,输出就是要查询或写入的数据库节点。另一方面,对于复杂查询就完全不是这么简单了。醫如对于这样的查询:年龄大于50的用户,就无法直接查询,不得不维持另外一个键/值对,其中值是一个序列化的用户键列表,这些用户的年龄大于50,每次要创建新用户或更新用户信息,都要更新这个列表。

对于纯料的键/值存储库,可能的应用包括HTTP会话、用户喜好以及URL缩写(shorteners)。我在前面已经描述过HTTP会话,HTTP会话应该以一种非常直接的方式存储在能/值摩中。其中键就是用户的会话关键字( session key),而值是包含用户会话信息的一个序列化了的对象。对于用户喜好,可以这样来实现:键是用户1D连接上用户喜好的名称,值就是用户实际的喜好。对于URL缩写,URL路径就是键,而值就是路径重定向的位置。

数据结构

数据结构数据库对键/值数据库做了些修改。在纯粹键值数据库中,通常只是将键和值作为字符串或字节来存储,而数据结构数据库则将其存储为特定的数据结构,如列表、集合或哈希表。由于有了这些附加的结构,就可以对值执行一些原子操作。对于列表,可以对值进行压入或弹出操作。对于集合,可以执行并集和交集操作。可以对数据库执行在应用程序中对数据结构进行的各种操作。本质上,这些都是应用程序已经在使用的数据结构只不过由外部进程维护而已。

实际上这个领域唯一的竞争者就是Redis。某些实现细节使得Redis很有。Redis默认是在内存中存储其全部内容的,只是周期性地将内容的快照存储到磁盘。这使得Redist出奇得快,但假如数据库崩溃了,就会对数据造成一些损失。同时也意味着必须有足够的内存(RAM)存储整个数据库。值得指出的是,这些默认设置是可以改变的一可以以速度为代价来增加数据的可持续性,还可以使用虚拟内存模式,这样就可以存储比实际内存更多的数据(虽然仍然是有限制的)。

数器、任务队列或趋势分析,是很理想的。想象一下,给每个登录进来的用户一个唯一的鍵,映射到一张空表上,该用户访问的每个页面的每个URL都从尾部压人这张表。然后就可以获取任何用户的这些信息,观察该用户的访问路径,并对该路径进行分析。通过这张表的长度就可以得出该用户的活跃程度。这是一个人为的例子,但仍然展示了极快的内存操作和丰富的数据结构能做什么事情。



图数据库几乎就是数据结构数据库的一个特定实现,因为图本就是一种数据结构。区别是图数据库不再是基于键/值,数据是作为图的节点和边存储的。图数据库不是用键来查询值,而是给出根节点的句柄,然后就可以遍历整个图以找到需要的节点或者边。这会非常有价值,因为很多应用程序都大量使用了图这种数据结构,将这些数据结构映射为图数据库上的操作是相当容易的。就像数据结构数据库一样,数据库的图也跟应用程序使用的图是一样的,只不过是由外部进程维护的而已。

这个领域的主要竞争者是Neo4j,这是是一个嵌入式的ava图数据库,但可以用好几种语言进行访同。除了Neo4之外,其他开源的图数据库包括Hypergraphdb、Infogrid、Vertexdb Hypergraphdb定位在对图的一种更为通用的表示上,其中之一就是边可以指向多个节点。Vertex的有趣之处是呈现了一个RESTFULL的HTTPAPI,通过这个API可以直接访问数据库,而其他几种数据库主要都是通过Java方法来访问的。

图数据库的优势应该正是你所期望的:存储图或树形的数据。例如,假如网站想要维护一个社交图(social graph),则使用图数据库会产生一些有趣的应用。警如,发现或向用户推荐新朋友,传统上实现起来既复杂,速度又慢,而使用图数据库则既简单,效率又高一一仅仅运行一下宽度优先搜索或最短路径遍历,事情就搞定了。

面向文档

面向文档的数据库又类似于键值数据库,但值不再是字节、字符串、列表、集合,而是文档”。什么是文档?在我们要谈到的两个面向文档数据库 COUCHDB和MONGODB中,文档是作为JSON(或类似于JSON)对象存储的,本质上是一种哈希表或字典。这些值都有相同的结构,意味着可以用查询来探测这种结构,并只返回所需要的文档。要记住的是,这种查询能力是建立在通过键来查找文档的能力之上的。

COUCHDB是一个面向文档的数据库,是用 Erlang开发的,有一些有趣的实现细节,警如说是一种只附加(append-only)的数据结构,并且能够在数据库中直接向应用程序提供服务。Mongodb是另一个面向文档的数据库,是用C++开发的,在速度上做了很多优化,提供了一个更加传统的查询层。虽然这两个系统在纸上看起来很像,但目标却是不同的。在我写这些东西的时候,COUCHDB的趋势是作为桌面数据库或浏览器中的数据库,由用户下载安装,而Mongodb则趋向于更多地用在数据中心。

在不能确切地知道能获得什么数据时,如在生活串流应用中那样,面向文档的数据库就非常合适了。在这样的应用中,从一个流行的照片网站上检索的文档应该包含照片属性,而来自微博网站的文档可能有一些地理属性,而来自博客网站的文档将不会有这些信息。面向文档数据库的另一个不错的应用是内容管理系统,在这样的系统中,每个文档都表示一个页面,或页面的一部分。
 
高度分布

高度分布的数据库多少有些不同一一有些本质上更接近于键/值存储,其他则更像大型的多维哈希图。它们的共同点是都为多节点部署优化过。在这些系统中,简单地在集群中增加一个新节点就会增加更多的容量。其中一个节点失效并不会导致数据损失,但会失掉一些容量。多数这种系统都会允许用户牺牲掉一些一致性而保证高可用性和分区容错性。

Hbase是一个高度分布式的数据库,源自于Hadoop-项目,并且受到Big Table(Google专有的高度分布式数据库)的直接影响。 Cassandra是另一个高度分布式数据库,最初是在Facebook开发的,虽然数据模型非常类似于Hbase,但集中在不产生单点故障以及写操作性能上。Hbase和Cassandra都将数据存储为大型的多维哈希图。 Basho公司的Riak是另个高度分布式数据库,使用Erlang开发,可以通过RESTFULL的HTTPAPE来访问,和Hibase与Cassandra比起来,是一个更加简单的键值模型。Voldemort和Hypertable项目是另外两个值得提及的高度分布式数据库。

为什么要使用高度分布的网站建设数据库呢?噢,通常都是没有其他选择的结果。这些数据库都是用在这样的场合,就是其他的数据库(基于SQL的数据库或其他数据库)或者对数据无法处理,或者无法处理那些查询。几乎每个问题领域(problem domain)都可以用这些数据库系统来建模,但有时候会比许多传统数据库更为诡异。

京杭运河内河旅游发展规划打造中国文化旅游胜地

    京杭运河内河旅游发展规划是中国政府为了打造中国文化旅游胜地而制定的一项规划,旨在促进京杭运河内河旅游的发展,提升中国文化旅游的影响力。 二、京杭运河内河旅游发展规划的目标 京杭运河内河旅游发展规划的目标是:通过改善旅游设施、提升旅游服务质量、完善旅游管理体制,打造中国文化旅游胜地,提升中国文化旅游的影响力。 三、京杭运河内河旅游发展规划的措施 1. 优化旅游设施:改善旅游设施,建设更多的旅游景点...

       制作商城网站要谨慎处理的细节 网站是一种新型的平台,借助于网站,各种信息可以迅速地在互联网上传播和共享。可以向公众展示,企业网站可以及时向公众发表企业的新闻、商业信息等内容,已经成为传媒的重要手段。网站的页面是要制作的,倘若需要在互联网上拥有自己的购物网站就需要注意一些细节,那么制作商城网站要谨慎处理的细节有哪些呢? 制作商城网站要谨慎处理的细节   传统企业,尤其是具有优势产品的企业,通过构建商城网站,建立运营系统,进行互联...

       新网站获得流量的创新方法分析 一个新网站在刚刚上线之时,除了希望能够尽快被百度收录之外,就是希望能够拥有更多的流量,从而让网站不断积累人气,最终获得源源不断的利润。然而很多新站在上线之后,往往数个月的时间里,通常只有一百个甚至几十个IP在访问,难以形成规模效应,这样的新站自然会让站长难以看到与出头之日。    由于新网站很难通过搜索引擎来获得流量,因为一方面此时搜索引擎还没有收录网站,另一方面网站的排名也几乎没有,所以用户难以...

       企业网站设计JPEG格式 JPEG格式 ,为图像压缩格式,属于有损压缩,压缩时可承载色彩20多种,此种压缩技术较为先进,不仅可对图像进行调节,还能压缩图像比例。压缩越小,则图像质量随之增高;比例越大,则图像质量随之降低。另外,压缩中图形色彩并不会产生变化,适合色彩较为丰富的图像存储 [3] 。但是此格式不适合文字清晰、线条图片的存储。

       为什么网站建设企业的价格存在差异 由于 网站建设 的普及, 网站建设企业 在市面上的价格跨度也很大,从几十元到几万元甚至几十万的网站都有。对于企业而言,进行网站建设并不是自己的专长,所以就会找多家 网站建设企业 进行对比,价格不一的市场使企业不知道该怎样选择网站建设企业,小编今天就网站建设过程中价格的一些差异做一下说明。   1)建站形式不同,价格也就不同   我们都知道定制的东西跟现成做好的东西价格是有一定的差距的, 网站建设 ...

       网站建设一般都是有哪些标准? 电子商务的发展给人们的生活带去很大的影响,而随着电子电子商务的发展,网站建设也在发生转变,之前花瓶式的网站已经逐渐的互联网淘汰,如果的企业所需求的是可以给企业带来利益的网站,因此网站建设不能在停留在漂亮上面,思考更多的应该是用户体验的问题,可是想要你得网站能够良好的用户体验,最关键的一点就是了解网站建设的标准,那么网站建设一般都有那些标准呐? 1、网站构架:网站在最初制作时候就应该考虑到网页之间...

最新模板
少儿英语培训机构网站建设 培训公司网站建设
成人自考网站建设 成人培训网站制作设计版面
智能家居摆设设计网站建设 智能家居装修企业网站建设
铜螺母,铜螺丝,螺栓,螺钉工厂网站建设
废气处理设备,如活性炭吸附箱、RTO蓄热式氧化处理设备、光氧等离子复合设备 低温等离子设备 光氧催化设备等网企业网站建设
图文阅读