¿Dónde debe ocurrir la validación de datos?

He leído filosofías contradictorias sobre dónde debería ocurrir la validación de datos y eso me confunde aún más. Algunos dicen que solo debería estar en la base de datos. Otros dicen que las reglas de validación deben reflejarse en otras capas como bll o ui.

¿Dónde debería vivir la validación de datos? ¿Deben dividirse las reglas en varias capas? ¿Cuáles son algunas de las mejores prácticas reales?(a diferencia de la teoría, la cabeza en las nubes escribe cosas) con respecto a cuándo y dónde validar datos en una aplicación que se ejecuta sobre una base de datos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta