sql-server - transacciones - introducción a las bases de datos
¿Principios de diseño para diseñar la arquitectura de base de datos del sistema de transacciones financieras? (2)
Algunas cosas particulares de los sistemas financieros incluyen controles internos (este es un término contable crítico, hacer algunas investigaciones para realmente pensar en esto). Cosas como la persona que ingresa el valor del cheque tampoco pueden aprobarlo. Cosas como usar procs almacenados y no el SQL generado desde la aplicación para que pueda restringir los derechos solo a los procs (sin SQL dinámico en ningún momento, en un sistema financiero) y para que los usuarios solo puedan hacer lo que están autorizados a hacer. No hay derechos para nadie, excepto el dba de producción y una alternativa a las tablas. El fraude es lo que intenta proteger el sistema, no solo de ataques externos. La seguridad es fundamental para los sistemas financieros.
También necesita tablas de auditoría para saber quién cambió qué datos y cuándo y cuál era el valor anterior. Esta no es solo una forma adicional de ayudar a encontrar problemas si alguien se saltó los controles internos (o si el sistema olvidó implementar algunos críticos) robó dinero, pero a menudo es crítico poder deshacer un error sin tener que restaurar. En general, los sistemas de contabilidad a menudo tienen campos de datos que el usuario no puede ver y que se generan a través de los valores predeterminados o de una manera que el usuario no los ve.
Otra cosa es que necesita ver las acciones a tiempo, de modo que las cosas que parecen una relación natural pueden necesitar una desnormalización para preservar el costo en el momento en que ocurrió la acción. Entonces, si tiene una tabla de tarifas por hora, la usaría como una búsqueda para obtener la tarifa en el momento de la acción, no unirse a ella para obtener la tarifa cuando realice la consulta.
Los sistemas financieros tienen datos privados, casi siempre, piense cómo va a proteger estos datos. Necesitará cifrar y descifrar datos. Probablemente también quieras una copia de seguridad encriptada.
Estos datos son el elemento vital de una empresa, es fundamental que tenga un buen plan de respaldo y mucha práctica de restauración. Las copias de seguridad fuera del sitio son críticas.
La integridad de los datos es crítica. Necesita los tipos de datos correctos y las relaciones, restricciones y desencadenantes pk / fk para hacer cumplir las reglas. Un sistema financiero no puede permitirse tener registros huérfanos.
Es necesario considerar las eliminaciones con mucho cuidado. Los sistemas financieros a menudo hacen eliminaciones suaves (marca los registros como eliminados para evitar la pérdida de datos históricos. Sí, la empresa XYZ ya no es un cliente, pero no quiere perder el historial financiero de los pedidos que tenían en el pasado. Ni siquiera lo haría. Considere el uso de eliminar en cascada en un sistema financiero.
No solo hable con los contadores para diseñar el sistema, hable con los financieros que administrarán el sistema y los auditores que auditarán los resultados. Lea y conozca a fondo la norma contable publicada para el país que está diseñando. Mira las implicaciones fiscales. Esto es algo complejo.
Piense en el almacenamiento de datos y el archivo de datos. Los sistemas financieros a menudo consultan los datos antiguos para los informes, los informes son grandes, grandes, grandes para los sistemas financieros. Piense cómo hacerlo de manera efectiva sin afectar la entrada diaria de datos.
Quiero diseñar una base de datos que lleve un registro de las transacciones financieras. Quiero diseñarla como un producto para que pueda utilizarse para cualquier tipo de transacción financiera. Existen algunos principios de diseño específicos para el diseño de la base de datos de transacciones financieras que me pueden ayudar. para hacer que la base de datos sea más duradera a largo plazo con cambios mínimos en el nivel de arquitectura. Algunos buenos ejemplos también serán de gran ayuda.
Gracias
Dependiendo de lo que realmente esté tratando de lograr, para que pueda crear un sistema de "transacción financiera" que sea útil, necesitará aprender sobre revistas, libros de contabilidad y otros detalles de contabilidad. No es tan simple como registrar las transacciones reales en una tabla ...
Realmente, no creo que encuentre principios de diseño de base de datos para sistemas financieros que sean tan diferentes de cualquier sistema de base de datos que necesite que su información sea 100% correcta.
Por lo tanto, leer lo siguiente cuando se trabaja con bases de datos nunca hace daño a nadie:
Mejores prácticas de diseño de bases de datos
¿Su fuente controla sus bases de datos?
Errores de desarrollo de bases de datos hechos por desarrolladores de aplicaciones
¿Cuáles son algunos de sus estándares de base de datos más útiles?