究竟什么是NoSQL?[英] What exactly is NoSQL?

本文是小编为大家收集整理的关于究竟什么是NoSQL?的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

NOSQL到底是什么?是仅与{key:value}对的数据库系统?

据我所知,MemCache是这样的数据库系统之一,我对吗?

还有哪些其他流行的NOSQL数据库,它们到底在哪里有用?

谢谢,Boda Cydo.

推荐答案

来自Wikipedia:

nosql是一个宽松定义的非关联数据存储类别的伞项,这些数据存储与关系数据库和酸保证的悠久历史悠久.属于此术语的数据存储可能不需要固定的表模式,并且通常避免加入操作.该术语首先在2009年初普及.

这种体系结构的动机是很高的可扩展性,支持Facebook,Advertising.com等网站...

其他推荐答案

我不同意我看到的答案,尽管NOSQL解决方案确实倾向于打破酸性规则,而不是从该方法中创建的所有内容.

我认为首先您应该定义什么是SQL解决方案,然后您可以将"不仅"放在其前面,这将更准确地定义NOSQL解决方案.

考虑到这种方法:

sql数据库是一种使用结构化查询语言作为主要(仅在大多数情况下)与它们进行通信的所有数据存储的方法对于那些诸如"表","列","行","关系"等系统的共同点

现在,将"不仅"放在最后一句话的前面,您将获得一个含义" nosql"的定义. NOSQL组创建的所有商店都是为了解决无法适应表/列/行结构甚至在SQL语句中的问题,在大多数情况下,这些数据库将不支持关系,他们只是放弃知名的结构因为这些问题自构想以来发生了变化.

如果您有文本文件,并且创建一个API来存储/检索/组织此信息,则您的手中有一个NOSQL数据库.

所有这些意味着有多种解决方案可以以传统SQL系统不允许实现更好的性能,灵活性等的方式存储信息.每个NOSQL提供商都试图解决另一个问题,这就是为什么您不会能够比较两种不同的解决方案,例如:

  • djondb 是创建的文档商店 NOSQL企业解决方案支持交易,一致性等. 但是牺牲其对手的表现.
  • mongodb 是一家文档商店(类似于 DJONDB),完成了出色的性能,但交易了一些 实现这一目标的酸性.
  • couchdb 是另一个文档商店 解决查询略有不同的查询,提供视图以检索 信息无需每次进行完整查询.
  • ...

您可能已经注意到我只谈论了文档商店,这是因为我想向您展示3个不同的文档商店实现方法不同,因此您应该记住NOSQL商店的黄金法则"使用正确的工具为了正确的工作.

我是DJONDB的创建者,甚至在尝试启动自己的NOSQL实现之前,我一直在做很多研究,但这是一个概念将不断改变我们看到信息存储方式的领域./p>

其他推荐答案

要快速获取NOSQL系统的处理,请参阅我写的这篇博客文章: NOSQL系统的视觉指南.本质上,NOSQL系统牺牲了一致性或可用性,以支持对网络分区的容忍度.

本文地址:https://www.itbaoku.cn/post/597484.html

问题描述

What exactly is NoSQL? Is it database systems that only work with {key:value} pairs?

As far as I know MemCache is one of such database systems, am I right?

What other popular NoSQL databases are there and where exactly are they useful?

Thanks, Boda Cydo.

推荐答案

From wikipedia:

NoSQL is an umbrella term for a loosely defined class of non-relational data stores that break with a long history of relational databases and ACID guarantees. Data stores that fall under this term may not require fixed table schemas, and usually avoid join operations. The term was first popularised in early 2009.

The motivation for such an architecture was high scalability, to support sites such as Facebook, advertising.com, etc...

其他推荐答案

I'm not agree with the answers I'm seeing, although it's true that NoSQL solutions tends to break the ACID rules, not all are created from that approach.

I think first you should define what is a SQL Solution and then you can put the "Not Only" in front of it, that will be more accurate definition of what is a NoSQL solution.

With this approach in mind:

SQL databases are a way to group all the data stores that are accessible using Structured Query Language as the main (and most of the time only) way to communicate with them, this means it requires that the database support the structures that are common to those systems like "tables", "columns", "rows", "relationships", etc.

Now, put the "Not Only" in front of the last sentence and you will get a definition of what means "NoSQL". NoSQL groups all the stores created as an attempt to solve problems which cannot fit into the table/column/rows structures or even in SQL Statements, in most of the cases these databases will not support relationships, they're abandoning the well known structures just because the problems have changed since their conception.

If you have a text file, and you create an API to store/retrieve/organize this information, then you have a NoSQL database in your hands.

All of these means that there are several solutions to store the information in a way that traditional SQL systems will not allow to achieve better performance, flexibility, etc etc. Every NoSQL provider tries to solve a different problem and that's why you wont be able to compare two different solutions, for example:

  • djondb is a document store created to be used as NoSQL enterprise solution supporting transactions, consistency, etc. but sacrifice performance of its counterparts.
  • MongoDB is a document store (similar to djondb) which accomplish great performance but trades some of the ACID properties to achieve this.
  • CouchDB is another document store which solves the queries slightly different providing views to retrieve the information without doing a full query every time.
  • ...

As you may have noticed I only talked about the document stores, that's because I wanted to show you that 3 different document stores implementations have different approach, therefore you should keep in mind the golden rule of NoSQL stores "Use the right tool for the right job".

I'm the creator of djondb and I've been doing a lot of research even before trying to start my own NoSQL implementation, but this is a field where the concepts will keep changing the way we see the information storage.

其他推荐答案

To quickly get a handle on NoSQL systems, see this blog post I wrote: Visual Guide to NoSQL Systems. Essentially, NoSQL systems sacrifice either consistency or availability in favor of tolerance to network partitions.