Frameworks como Rails han alentado el movimiento de una gran parte de la lógica, incluso cosas como restricciones y claves externas, fuera de la base de datos, en mi opinión. para mejor, ya que es más manejable y fácil de cambiar. Aun así, algunas operaciones son más fáciles más rápido, o simplemente solo es posible en SQL.Integridad de datos referenciales: ¿Necesidad, atractivo o viejo?
La reciente explosión en popularidad de las bases de datos no SQL como MongoDB, Cassandra, etc., ha cambiado el enfoque de las mejores prácticas en el desarrollo de bases de datos de forma aún más radical.
Mi pregunta: ¿La integridad de los datos referenciales ya no es una necesidad?
Me doy cuenta que a menudo se trata de elegir la mejor herramienta para el trabajo, pero excluyamos aplicaciones financieras y aplicaciones similares donde tener transacciones es imprescindible y centrarnos en aplicaciones más típicas que hacen dinero pero no lo hacen requiere integridad a nivel bancario.
¿Cuán necesaria es la integridad de los datos referenciales? ¿Puede alguien enumerar algunos problemas que han tenido cuando no lo están usando?
Está utilizando una base de datos como PostgreSQL para datos más críticos, y MongoDB para datos menos críticos pero muy solicitados, la estrategia inteligente? ¿Cómo sugiere que se defina exactamente qué datos son "críticos" y cuáles "no críticos"?
Si uno tiene un presupuesto de ingeniería de software mil millones de dólares y los requisitos de rendimiento extremo, se puede justificar un montón. La verdad es que el formalismo disponible en el DBMS es de lejos el mejor formalismo para expresar la integridad de los datos porque el [formalismo fue específicamente diseñado para ese propósito y para separar la preocupación de la administración de datos.] (Http: //userweb.cs.utexas .edu/users/EWD/transcriptions/EWD03xx/EWD303.html) La verdadera pregunta es cuál es la mejor forma de distribuir físicamente el formalismo hasta las computadoras cliente para lograr el mejor rendimiento. – bbadour