银行系统NoSQL数据库[已关闭]

问题描述 投票:0回答:3

在银行系统中使用 NoSQL 数据库而不是 RDBMS 是一个好的决定吗?

如果是,银行系统推荐使用哪些 NoSQL 数据库?

database security nosql rdbms
3个回答
10
投票

Nathan Hurst 有一篇关于 NoSQL 数据库背后的想法的非常好的博客文章。 我会尽力解释:

数据库的选择通常基于一致性、可用性和分区容错性(CAP 定理)的属性。 当然,CAP 定理指出数据库实际上只能关注其中的两个。 NoSQL 数据库需要分区容错性才能正确扩展,因此它们最终会牺牲可用性或一致性。 RDBMS 通过选择一致性和可用性来解决这个问题,并利用其他方法来保持数据分区的容忍性(例如:复制)。

您通常可以在交易级别看到其影响。 在 RDBMS 领域,所有事务都应该是 ACID(原子性、一致性、隔离性和持久性)。 NoSQL 数据库通常没有严格的 ACID 要求。 这样,通过事务更新的数据可能是原子的,也可能不是原子的(事务要么完成到所有更新位置,要么回滚),如果断电可能不持久,并且可能在“最终”的假设下运行一致性。”

因此“不”,NoSQL 数据库对于银行解决方案来说绝对不是一个好主意。

您还应该注意,“NoSQL”数据库架构因品牌而异。 我在这里所说的是对 NoSQL 数据库的概括。 这当然不是包罗万象的。

编辑20241022

自从我写下这个答案以来,12 年来发生了很多变化。我看到这里仍然有参与度,所以我觉得有必要做一个快速的附录。

银行绝对需要 ACID 的论点已被挫败。如今,几乎所有主要银行(美国)都使用一个或多个 NoSQL 数据库。虽然一些 NoSQL 数据库(如 Apache Cassandra®)已经找到了实现 ACID 事务的方法,但大多数 RDBMS 已采用支持网络分区容错的方法(通过故障转移或 HA)。

因此,虽然 2010 年代的 NoSQL 技术可能不适合传统的银行级交易,但在当今世界:

  1. 所有主要银行都使用 NoSQL 数据库(尽管并非唯一)。
  2. 许多 NoSQL 数据库现在可以支持事务。

8
投票

在回答这个问题之前我想先举个例子: GT.M是一个提供极限事务的NoSQL数据库。用于全球最大的核心银行系统FIS核心银行系统inntron排名第一)

所以理论上,只要你的NoSQL引擎支持事务,在核心银行系统中使用NoSQL是可行的。

来源:http://www.slideshare.net/fachrybafadal/nosql-technology


4
投票

曾在银行业工作过,除了用于核心银行目的(账户、SOR、GL 等)的经过充分测试的“传统”RDBMS 系统或大型机之外,我会谨慎实施任何其他系统。对于外围系统,如营销、分析数据库等,NoSQL 很好,但您需要更具体地了解您的用例,才能获得此问题的良好答案。

每个工具都有其正确的用例。 银行业极其厌恶风险且保守。

© www.soinside.com 2019 - 2024. All rights reserved.