Sql 不使用关系数据库的好理由?
您能指出其他数据存储工具并给出使用它们而不是使用好的旧关系数据库的充分理由吗?在我看来,大多数应用程序很少使用SQL的全部功能——看看如何构建一个无SQL的应用程序是很有趣的。文件系统对于存储二进制数据非常方便,而二进制数据在关系数据库中从来没有令人惊讶地好用。G'day 我能想到的一种情况是,您正在建模的数据无法在关系数据库中轻松表示 例如,移动电话运营商用于监测和控制移动电话网络基站的数据库 我知道,几乎所有这些情况下,都会使用an,或者是商业产品,或者是允许对象继承的自滚系统 我为一家大型公司开发了一个3G监控应用程序,该公司将保持匿名,但其徽标是一个红葡萄酒污点(-:),他们使用这样一个OO DB来跟踪网络中各个单元的所有各种属性 对此类数据库的查询是使用专有技术完成的,这些专有技术通常完全不受SQL的影响 嗯 干杯Sql 不使用关系数据库的好理由?,sql,database,nosql,Sql,Database,Nosql,您能指出其他数据存储工具并给出使用它们而不是使用好的旧关系数据库的充分理由吗?在我看来,大多数应用程序很少使用SQL的全部功能——看看如何构建一个无SQL的应用程序是很有趣的。文件系统对于存储二进制数据非常方便,而二进制数据在关系数据库中从来没有令人惊讶地好用。G'day 我能想到的一种情况是,您正在建模的数据无法在关系数据库中轻松表示 例如,移动电话运营商用于监测和控制移动电话网络基站的数据库 我知道,几乎所有这些情况下,都会使用an,或者是商业产品,或者是允许对象继承的自滚系统 我为一家大型
Rob文件系统中的纯文本文件
- 创建和编辑非常简单
- 便于用户使用简单工具(即文本编辑器、grep等)进行操作
- 二进制文件的高效存储
磁盘上的XML或JSON文件
- 如上所述,但具有更大的验证结构的能力
电子表格/CSV文件
- 非常容易让业务用户理解的模型
Subversion(或类似的基于磁盘的版本控制系统)
- 非常好地支持数据的版本控制
(基本上是一个基于磁盘的哈希表)
- 概念上非常简单(只是未键入的键/值)
- 相当快
- 无管理费用
- 支持我相信的交易
- 我相信这很像伯克利DB,但是
- 托管和高度可扩展
- 每文档键值存储(即灵活的数据模型)
- 文档焦点
- 半结构化/基于文档的数据的简单存储
本机语言集合(存储在内存中或在磁盘上序列化)
- 非常紧密的语言集成
自定义(手写)存储引擎
- 在所需的用例中可能具有非常高的性能
我不能说我对它们了解得太多,但你也可能想了解一下。对象数据库不是关系数据库。如果你只想在数据库中填充一些对象,它们会非常方便。它们还支持对数据库中已经存在的对象进行版本控制和修改类。这是第一个注意。仅使用存储在文件系统中的文件可以大有帮助。RDBMS在处理BLOB方面越来越好,但这可能是处理图像数据等的一种自然方式,特别是在查询很简单(枚举和选择单个项)的情况下 其他不太适合RDBMS的东西是分层数据结构,我猜地理空间数据和3D模型也不容易使用 像这样的服务提供了不支持SQL的更简单的存储模型(key->value)。可伸缩性是关键 Excel文件也很有用,特别是如果用户需要能够在熟悉的环境中操作数据,并且构建完整的应用程序来操作数据是不可行的。请尝试Prevayler:
Prewayler是RDBMS的替代品。在该网站中,您可以获得更多信息。存储数据的方法有很多种,甚至“关系数据库”也涵盖了一系列替代品,包括处理本地文件的简单代码库就好像它是一个基于单用户的关系数据库,通过基于文件的系统可以处理多个用户,而不是大量选择基于“服务器”的系统 我们经常使用XML文件——你可以得到结构良好的数据,很好的查询工具,如果合适的话可以进行编辑,这是一种人类可读的东西,你不必担心数据库引擎的工作(或者数据库引擎的工作)。这对于基本上是只读的东西很好(在我们的例子中,通常是从其他地方的数据库生成的),也适用于单用户系统,在这些系统中,您可以根据需要加载数据并将其保存—但如果您希望多用户编辑,则会产生问题—至少是单个文件 对我们来说,这就是问题所在——我们要么使用SQL(MS提供了一套从.DLL运行到enterprise server的单用户工具,它们都使用相同的SQL(低端有限制))要么使用XML作为格式,因为(对我们来说)长篇大论很少成为问题 我们目前不必在应用程序中操纵二进制数据,这样问题就不会出现
MurphMatt Sheppard的答案很好(mod up),但我在考虑主轴时会考虑以下因素: