Principes de design pour la design de l'architecture de database du système de transactions financières?

Je veux concevoir une database qui gardera l'logging pour la transaction financière. Je veux le concevoir comme produit afin qu'il puisse être employé pour n'importe quel type de transaction financière. Y at-il quelques principes de design spécifiques à la design de database de transaction financière qui peuvent m'aider out pour rendre la database plus durable à long terme avec des changements de niveau architecturaux minimes. Quelques bons exemples seront une aide précieuse aussi.

Merci

Certaines choses particulières aux systèmes financiers include les controls internes (c'est un terme comptable critique, faire des searchs pour penser vraiment celui-ci à travers). Des choses comme la personne qui entre la valeur du chèque ne peuvent pas l'approuver. Des choses comme l'utilisation de procs stockés et pas de SQL généré à partir de l'application afin que vous puissiez limiter les droits aux procs (aucun SQL dynamic du tout – dans un système financier) et ainsi les users ne peuvent faire que ce qu'ils sont autorisés à faire. Aucun droit pour quiconque sauf la production dba et une alternative aux tables. La fraude est ce que vous essayez de protéger le système contre les attaques extérieures. La security est essentielle pour les systèmes financiers.

Vous avez également besoin de tables d'audit pour savoir qui a changé queldatatables et quand et quelle était l'ancienne valeur. Ce n'est pas seulement un moyen supplémentaire d'aider à find des problèmes si quelqu'un a contourné les controls internes (ou le système a oublié de mettre en œuvre certains controls critiques) a volé de l'argent, mais il est souvent essentiel de pouvoir réparer une erreur sans devoir la restaurer. En général, les systèmes de comptabilité ont souvent des champs de données qui ne sont pas visibles par l'user et qui sont générés par des valeurs par défaut ou d'une manière que l'user ne les voit pas.

Une autre chose est que vous devez voir les actions à time afin que les choses qui pourraient ressembler à une relation naturelle peuvent avoir besoin d'être dénormalisées pour préserver ce que le coût était au moment où l'action s'est produite. Donc, si vous avez une table de taux horaire, vous utiliserez cela comme une search pour get le taux au moment de l'action ne pas s'y joindre pour get le taux lorsque vous interrogez.

Les systèmes financiers ont des données privées dans eux, presque toujours, pensent comment vous allez protéger ces données. Vous devrez crypter et décrypter datatables. Vous voulez probablement aussi une sauvegarde cryptée.

Ces données sont la pierre angular d'une entreprise, il est essentiel que vous ayez un bon plan de sauvegarde et beaucoup de pratique de restauration. Les sauvegardes hors site sont critiques.

L'intégrité des données est essentielle. Vous avez besoin des types de données corrects et vous avez besoin de relations, de contraintes et de triggersurs pk / fk pour appliquer les règles. Un système financier ne peut pas se permettre d'avoir des loggings orphelins.

Vous devez considérer les suppressions très attentivement. Les systèmes financiers effectuent souvent des suppressions logicielles (marquent les loggings comme supprimés pour éviter de perdre des données historiques) Oui, la société XYZ n'est plus un client, mais vous ne voulez pas perdre l'historique financier des ordres qu'ils avaient dans le passé. envisager d'utiliser cascade supprimer dans un système financier.

Ne vous contentez pas de parler aux comptables lors de la design du système, parlez aux responsables financiers du système et aux auditeurs qui vont vérifier les résultats. Lisez et connaissez parfaitement la norme comptable publiée pour le pays pour lequel vous concevez. Regardez les implications fiscales. C'est un truc complexe.

Pensez aux données d'entreposage et d'archivage de données. Les systèmes financiers interrogent souvent les anciennes données pour les rapports, les rapports sont gros, gros, gros pour les systèmes financiers. Pensez comment le faire efficacement sans affecter la saisie de données au jour le jour.

En fonction de ce que vous essayez réellement de réaliser, pour que vous puissiez créer un système de «transaction financière» utile, vous devrez vous informer sur les journaux, les grands livres et d'autres détails de la comptabilité. Ce n'est pas aussi simple que de consigner les transactions réelles dans une table …

Vraiment, je ne pense pas que vous findiez des principes de design de database pour les systèmes financiers qui soient très différents de tout système de database qui a besoin d'informations à 100% correctes.

Par conséquent, lire ce qui suit lorsque vous travaillez avec des bases de données ne fait jamais de mal à personne:

Meilleures pratiques de design de database

Avez-vous le contrôle de vos bases de données?

Erreurs de développement de database faites par les développeurs d'applications

Quelles sont certaines de vos normes de database les plus utiles?