NoSQL是什么?它是只能处理{键:值}对的数据库系统吗?
据我所知,MemCache
是这样的数据库系统之一,对吗?
还有哪些流行的NoSQL数据库,它们在哪些方面有用呢?
谢谢,Boda Cydo。
NoSQL是什么?它是只能处理{键:值}对的数据库系统吗?
据我所知,MemCache
是这样的数据库系统之一,对吗?
还有哪些流行的NoSQL数据库,它们在哪些方面有用呢?
谢谢,Boda Cydo。
我是djondb的创造者,在尝试开发自己的NoSQL实现之前,我已经进行了大量的研究,但这是一个概念会不断变化的领域,将改变我们看待信息存储的方式。
来自维基百科:
NoSQL是一个笼统的术语,指的是一类非关系型数据存储,与长期以来的关系型数据库和ACID保证有所不同。这个术语涵盖的数据存储可能不需要固定的表格架构,并通常避免联接操作。该术语最初在2009年初得到普及。
采用这种架构的动机是高可扩展性,以支持像Facebook、advertising.com等网站...
什么是NoSQL?
NoSQL是Not Only SQL的缩写。NoSQL数据库的基本特点是无模式、分布式和横向可扩展,可以在普通硬件上实现。NoSQL数据库提供了各种功能来解决不同类型数据的各种问题,其中“blob”曾经是关系型数据库中存储非结构化数据的唯一数据类型。
1 动态模式 NoSQL数据库允许模式灵活。新列可以随时添加。行可能有或没有这些列的值,对于列的数据类型没有严格的强制执行。这种灵活性对于开发人员来说非常方便,特别是当他们预期在产品生命周期内频繁更改时。
2 数据类型多样 NoSQL数据库支持任何类型的数据。它支持结构化、半结构化和非结构化数据的存储。它支持日志、图像文件、视频、图形、JPEGS、JSON、XML等的存储和操作,而无需进行任何预处理。因此,它减少了ETL(提取-转换-加载)的需求。
3 高可用性集群 NoSQL数据库支持使用普通硬件进行分布式存储。它还支持通过横向扩展实现高可用性。这个特性使得NoSQL数据库可以获得云基础设施服务的弹性优势。
4 开源 NoSQL数据库是开源软件。该软件的使用是免费的,大多数都可以在商业产品中免费使用。开放源代码库可以修改以解决业务需求。开源软件许可证存在一些细微差别,用户必须注意许可协议。
5 NoSQL - 不仅仅是SQL NoSQL数据库不仅依赖于SQL来检索数据。它们提供了丰富的API接口来执行DML和CRUD操作。这些API非常友好,支持各种编程语言。
我在十多年前使用过一种叫做Raima Data Manager的东西,它可以被归类为NoSQL。它自称为“集合导向数据库”,不基于表格,也没有查询“语言”,只有一个C API用于请求子集。
它非常快速,在C/C++和SQL中更易于使用,无需构建字符串以传递给查询解释器,数据返回为可枚举对象而不是数组。变量大小的记录是正常的,不会浪费空间。我从未看到过源代码,但界面上有一些提示表明内部代码经常使用指针。
我不确定我使用的产品是否还在销售,但该公司仍然存在。
MongoDB 看起来很有趣,SourceForge 现在正在使用它。
我听了一个团队成员的播客。NoSQL 的想法并不是要取代 SQL,而是为那些传统关系型数据库无法很好解决的问题提供解决方案。正如其他地方所提到的,它们更快,更好地扩展,但可靠性和原子性的代价也更高(不同程度的不同解决方案)。你不会想在金融系统中使用它,但文档型系统将非常适合。
这里是一份全面的NoSQL数据库列表:http://nosql-database.org/。
我很高兴你在使用RDM方面取得了成功,John!我在Raima工作,所以听到反馈感觉很棒。对于那些寻找更多信息的人,这里有一些资源: