设计金融交易系统数据库架构的原则?

Mad*_*hik 16 sql-server database-design financial sql-server-2008

我想设计一个数据库,它将记录金融交易.我想将它设计为产品,以便它可以用于任何类型的金融交易.有一些特定于金融交易数据库设计的设计原则可以帮助我使数据库在长期内更耐用,同时最小化架构级别.一些很好的例子也将是一个很大的帮助.

谢谢

HLG*_*GEM 18

金融系统特有的一些内容包括内部控制(这是一个关键的会计术语,做一些研究才能真正认识到这一点).输入支票价值的人也不能批准.诸如使用存储过程而不是从应用程序生成的SQL这样的事情,这样你就可以只限制权限(根本没有动态SQL - 在金融系统中),因此用户只能做他们有权做的事情.除了生产dba和表的替代之外,没有任何人的权利.欺诈是你试图保护系统免受外部攻击.安全对金融系统至关重要.

您还需要审计表来了解谁更改了哪些数据以及更改旧值的时间和内容.这不仅是帮助发现问题的另一种方法,如果有人绕过内部控制(或系统忘记实施一些关键的)偷了钱,但是能够在不必恢复的情况下撤消错误通常是至关重要的.通常,会计系统通常具有用户不可查看的数据字段,这些数据字段是通过默认值或用户未看到的方式生成的.

另一件事是您需要及时查看操作,以便看起来像自然关系的事物可能需要非规范化以保留操作发生时的成本.因此,如果您有一个小时费率表,您可以将其用作查找,以便在操作时不加入该速率以获取查询时的费率.

金融系统中包含私有数据,几乎总是认为您将如何保护这些数据.您需要加密和解密数据.您可能也想要加密备份.

这些数据是公司的生命线,您必须拥有良好的备份计划并进行大量的实践恢复.异地备份至关重要.

数据完整性至关重要.您需要正确的数据类型,并且需要pk/fk关系,约束和触发器来强制执行规则.金融系统无法承受孤立的记录.

您需要非常仔细地考虑删除.财务系统经常进行软删除(将记录标记为已删除以避免丢失历史数据.是的,XYZ公司不再是客户,但您不想丢失过去订单的财务历史.我甚至都不会考虑在金融系统中使用级联删除.

不要只是在设计系统时与会计师交谈,与将运行系统的财务人员和将审核结果的审计人员交谈.阅读并彻底了解您所设计国家/地区的已发布会计准则.看看税务影响.这是复杂的东西.

考虑数据仓库和归档数据.财务系统通常会查询旧数据以进行报告,报告对于财务系统而言是大的,大的,大的.考虑如何在不影响日常数据输入的情况下有效地进行操作.