我们计划创建一个网络应用程序来存储客户的银行交易,例如购买,转账等,并允许他们对每笔交易进行标记/分类。
有人可以为此目的指出我们最好的数据库吗?它需要水平扩展,我们还需要对所有事务进行分析。
由于
答案 0 :(得分:5)
存储银行交易的最佳数据库是银行使用的数据库,DB2 / z。
但是,由于我怀疑你能买得起System z主机,这可能不是一个选择。这当然不会使它成为最好的数据库。
但是,如果您正在讨论为Joe Bloggs或Dodgy Brothers Rug Emporium存储交易(而不是工行的两亿左右客户),那么任何数据库都将是直到任务 - Oracle(尽管它无法区分NULL与空字符串),SQL Server,MySQL PostgreSQL,甚至可能是SQLite。
答案 1 :(得分:2)
我将开始说这几乎不可能推荐一个基于你所描述的系统。它可以用于如此多种用途,包括需要存在且需要准确的关键任务实时财务数据,以及从银行/信用卡对帐单中吮吸财务记录的网络应用程序,并让用户注释它们,在这种情况下它不那么敏感。
如果您要存储关键任务,敏感数据,我会选择包含重要支持的商业选项。 DBA也是一个好主意。
由于其多平台支持,Oracle或MS SQL将成为我的倾向,可能是Oracle而不是MS SQL。如果你很高兴在Windows上运行,那么MS SQL就可以了。
如果您要存储可以标记的现有交易(ala Blippy),那么任何数据库就足够了。如果您正在考虑将其扩展到第n级,您可能会喜欢本月的文档数据库风格之一(MongoDB,Couch等)。
我认为应该从您的应用程序将要执行的操作的上下文中重新考虑该问题,而不是使用财务数据。财务数据可能需要额外的安全性或额外的准确性检查,这是系统将要做的一部分,用户与您的Web应用程序交互的方式等。
答案 2 :(得分:1)
这可能无法直接回答您的问题,但这是我所经历的。
我认为,它实际上是关于如何来保存您的银行交易。大多数数据库供应商提供了足够的数据库性能,因此您所要做的就是选择一个而不是其他数据库。
您剩下的是要保存的实际信息(除了架构)。您可能会考虑使用数据库加密选项,但在您的情况下它不是真的现实;因为你在谈论交易,我假设有很多交易进入,你为你的报告做了大量的读取(除了写入),可能用于挖掘等。
Usually(sql server),使用加密对写入数据库文件的任何数据进行加密。快照和备份也使用加密。事务日志也受到保护,因此它会达到您可能期望的性能。
所以,我认为您的问题真的沸腾到 How to protect sensitive data ?
以下是一些可能有用的文章:
顺便说一句,我已经使用Oracle,SQL Server甚至Sybase作为后端部署了解决方案,其中几个事务倾注来自ATM,除了安全性之外,我真正需要的是性能。除了一个人对其他人的微小限制外,都是一样的。
以下文章可能有所帮助:
Database security: protecting sensitive and critical information Using One-Way Functions to Protect Sensitive Information in SQL Server Databases