oracle 在处理大型应用程序方面享有盛誉,并且可以灵活地扩展到集群环境。为什么每个人都想要 NOSQL?
因为nosql db便宜得多?为什么不切换面向对象的数据库?
首先,并不是每个人都想要 NoSQL。打包软件(例如 ERP)几乎都是主流 RDBMS 的东西。不要将开发工作量与使用量混淆。
发生的事情是,NoSQL 开辟了一系列根本不适合关系技术的应用程序,因此可以开发的应用程序激增。大多数可以在 RDBMS 平台上开发的东西已经并且正处于维护/升级阶段。由于整个全球金融环境,升级可能比平时少。
所以在 10 年或 15 年内,随着那些 NoSQL 应用程序进入同样成熟的水平,狂热将会平息,兴奋也会减少。
Oracle 也有 NoSQL 解决方案:http ://www.oracle.com/technetwork/database/nosqldb/overview/index.html
无论规模如何,SQL 解决方案都不一定是您想要的。在某些情况下,您无法轻松预测模型的模式,或者最糟糕的是,您的数据仍然是无模式的。在这些情况下,您需要一个不会限制您的数据模型,而是为您提供发展数据所需的灵活性,同时仍保持快速索引等核心能力。
另一个原因是 SQL 并不代表您想要查看数据的自然方式,主要是诸如 Neo4J 或 GraphDB 之类的图形数据库允许开发人员或用户以更直观的方式处理链接的图形模型。
当然,有一种方法可以解决 Oracle RDBMS 中的所有这些问题,但感觉更像是破解数据库以满足您的需求,而不是使用适合您的数据库。这听起来像是一个额外的好处,但实际上它在简化应用程序的开发和分析方面有很长的路要走。
现在,如果我们谈论规模,Oracle 可能会击败基于列的数据库,例如 HBase 或 Hypertable,但重要的是要注意 Oracle RDBMS 不仅更贵,而且更贵。在当今世界,即使是小型初创公司也拥有每天需要分析的 TB 级数据。即使是小公司也可以在云中使用由 100 台机器组成的集群来存储他们的数据,在这样的公司中,甲骨文不是一个可行的选择,每年的许可成本和 DBA 的雇佣将阻止初创公司使用它。
最后,你开始使用 NoSQL 的最后一个原因是速度,启动 MongoDB 并开始开发可以在 5 分钟内完成,有时你想在问题出现时处理并避免过早优化
如果您愿意放弃一致性,那么您可以在多大程度上扩展一些 NoSQL 解决方案没有理论上的限制。
一些 RDBMS 可以扩展很多,Oracle 是其中最好的,但是没有 RDBMS 可以让你降低一致性,因此即使是最好的也有一个非常明确的理论限制,它可以扩展多少,更不用说现实世界的限制了.
网络上的一些大牌已经不能只依赖RDBMS了,还有很多其他的只是为了跟大牌一样。最后,一些解决方案确实最适合无scheam 结构,但我猜这些不占NoSQL 用户的大部分。重点是扩展 web 2.0。
这是您要问的一个非常普遍的问题。您是在比较关系数据库和 NOSQL 数据库,还是比较商业或开源数据库?我们需要弄清楚,我们似乎在比较苹果和橙子,你不会得到一个直接的答案。
以下是从我的角度来看的细分。
DB 类型:如果您要比较关系数据库与 NOSQL 数据库,则应参考此链接 。
成本:如果您从成本角度进行比较,每个都有自己的成本。Oracle 将收取许可费用,而 NOSQL db(以 MongoDB 为例)是开源的,您无需支付许可费用。但是你需要一个对 NOSQL 有很好理解的人来管理和维护这个站点,这很难找到。
应用程序:你在写什么样的应用程序?您需要了解应用程序的数据库要求。如果需要将大量非结构化数据存储为键值条目,则最好使用 NOSQL。另一方面,如果您要连接很多表并执行复杂的 SQL,您会更喜欢 SQL db。
您提到了面向对象的数据库,这是 NoSQL 或关系数据库的另一种类型的数据库。最后,这取决于您的需求。为了扩大视野的选择,有些人可能听说过分层数据库,它主要存在于大型机环境中。:-)