NoSQL究竟是什么?
NoSQL究竟是什么? 数据库系统是否只能与{key:value}对配合使用?
据我所知MemCache
是这样的数据库系统之一,我说得对吗?
还有哪些stream行的NoSQL数据库在那里,它们究竟有用?
谢谢,Boda Cydo。
从维基百科:
NoSQL是一个泛泛定义的非关系数据存储类的总称,它与关系数据库和ACID保证有着悠久的历史。 在这个术语下的数据存储可能不需要固定的表格模式,并且通常避免了连接操作。 这个词在2009年初首先得到普及。
这样的架构的动机是高度可扩展性,以支持诸如Facebook,advertising.com等网站…
我不同意我所看到的答案,尽pipeNoSQL解决scheme往往会违反ACID规则,但并非所有方法都是从这种方法创build的。
我认为首先你应该定义什么是SQL解决scheme,然后你可以把“不仅”放在它的前面,这将更准确地定义什么是NoSQL解决scheme。
记住这个方法:
SQL数据库是一种将所有可以使用结构化查询语言访问的数据存储区分组为主要(也是大部分时间)与其进行通信的方式,这意味着它要求数据库支持那些通用的结构像“表”,“列”,“行”,“关系”等系统。
现在,把“Not Only”放在最后一句的前面,你会得到“NoSQL”的定义。 NoSQL将创build的所有存储分组,以尝试解决无法放入表/列/行结构甚至SQL语句中的问题,在大多数情况下,这些数据库不支持关系,他们放弃了众所周知的结构因为这些问题自从他们的观念发生了变化。
如果您有一个文本文件,并且您创build了一个API来存储/检索/组织这些信息,那么您手上就有一个NoSQL数据库。
所有这些意味着有几种解决scheme来存储信息的方式,传统的SQL系统将无法实现更好的性能,灵活性等。每个NoSQL提供者都试图解决一个不同的问题,这就是为什么你不能够比较两种不同的解决scheme,例如:
- djondb是创build用作NoSQL企业解决scheme的文档存储,支持交易,一致性等,但牺牲了其对应方的性能。
- MongoDB是一个文件存储(类似于djondb),它完成了很好的性能,但是交换了一些ACID属性来实现这一点。
- CouchDB是另一个文档存储,它解决了查询略有不同,提供视图检索信息,而不是每次都做一个完整的查询。
- …
正如你可能已经注意到的,我只是谈到了文档商店,那是因为我想告诉你,3个不同的文档商店实现有不同的方法,所以你应该记住NoSQL商店的黄金法则“正确使用正确的工具工作”。
我是djondb的创build者,在尝试开始自己的NoSQL实现之前,我已经做了大量的研究工作,但是这个概念将会不断改变我们看到信息存储的方式。
要快速掌握NoSQL系统,请参阅本篇博客文章: NoSQL系统视觉指南 。 从本质上讲,NoSQL系统牺牲了一致性或可用性而偏向于对networking分区的容忍。
看看这些:
http://en.wikipedia.org/wiki/Nosql#List_of_NoSQL_open_source_projects
和这个:
http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB
我在十几年前就使用了一个叫做Raima Data Manager的东西,那就是NoSQL。 它把自己称为“面向数据库”,它不是基于表的查询,并且没有查询“语言”,只是一个用于询问子集的C API。
在C / C ++和SQL中处理速度更快 ,更容易,没有build立string传递给查询解释器,数据以可枚举对象而不是数组的forms返回。 可变大小的logging是正常的,不浪费空间。 我从来没有见过源代码,但在接口上有一些提示,在内部,代码使用了很多指针。
我不确定我使用的产品是否已经售出,但公司还在。
MongoDB看起来很有趣, SourceForge现在正在使用它 。
我和一个团队成员一起听了一个播客。 NoSQL的想法并不是要取代SQL,而是为传统RDBMS解决不了的问题提供解决scheme。 如其他地方所提到的,它们以可靠性和primefaces性为代价(不同程度的不同解决scheme)更快,更好地扩展。 你不想使用一个金融系统,但是一个基于文档的系统会很好。
以下是NoSQL数据库的完整列表: http : //nosql-database.org/ 。
我很高兴你已经和RDM John成功了! 我在Raima工作,所以很高兴听到反馈。 对于那些寻找更多的信息,这里有一些资源:
- RDM通用架构video概述
- 免费评估下载RDM
什么是NoSQL?
NoSQL是Not Only SQL的首字母缩写。 NoSQL数据库的基本特性在商品硬件上是无模式的,分布式的,可以横向扩展的。 NoSQL数据库提供了各种函数来解决各种数据types的各种问题,其中“blob”曾经是RDBMS中存储非结构化数据的唯一数据types。
1dynamic模式NoSQL数据库允许模式灵活。 新的列可以随时添加。 行可能有也可能没有这些列的值,也没有严格执行列的数据types。 这种灵活性对于开发人员来说非常方便,特别是当他们期望在产品生命周期中经常发生变化时。
2各种数据NoSQL数据库支持任何types的数据。 它支持结构化,半结构化和非结构化数据的存储。 它支持日志,图像文件,video,graphics,JPEG,JSON,XML存储和操作,没有任何预处理。 所以它减less了对ETL(提取 – 转换 – 加载)的需求。
3高可用性集群NoSQL数据库支持使用商用硬件的分布式存储。 它还支持横向可伸缩性的高可用性。 这一特性使得NoSQL数据库能够获得云基础架构服务的弹性特性。
4开源NoSQL数据库是开源软件。 软件的使用是免费的,其中大部分是免费使用的商业产品。 开源代码库可以进行修改以解决业务需求。 开源软件许可证有细微的变化,用户必须了解许可协议。
5 NoSQL – 不仅SQL NoSQL数据库不仅依赖于SQL来检索数据。 他们提供丰富的API接口来执行DML和CRUD操作。 这些API是移动开发人员友好和各种编程语言支持。